41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
import { DoricPlugin } from "../DoricPlugin";
|
|
|
|
export class StoragePlugin extends DoricPlugin {
|
|
setItem(args: {
|
|
zone?: string,
|
|
key: string,
|
|
value: string
|
|
}) {
|
|
localStorage.setItem(`${args.zone}_${args.key}`, args.value)
|
|
return Promise.resolve()
|
|
}
|
|
getItem(args: {
|
|
zone?: string,
|
|
key: string,
|
|
}) {
|
|
return Promise.resolve(localStorage.getItem(`${args.zone}_${args.key}`))
|
|
}
|
|
|
|
remove(args: {
|
|
zone?: string,
|
|
key: string,
|
|
}) {
|
|
localStorage.removeItem(`${args.zone}_${args.key}`)
|
|
return Promise.resolve()
|
|
}
|
|
clear(args: {
|
|
zone: string,
|
|
}) {
|
|
let removingKeys = []
|
|
for (let i = 0; i < localStorage.length; i++) {
|
|
const key = localStorage.key(i)
|
|
if (key && key.startsWith(`${args.zone}_`)) {
|
|
removingKeys.push(key)
|
|
}
|
|
}
|
|
removingKeys.forEach(e => {
|
|
localStorage.removeItem(e)
|
|
})
|
|
return Promise.resolve()
|
|
}
|
|
} |