@themineway/smart-storage-js
Version:
A TS/JS library that provides a smart and easy way to store data
33 lines • 1 kB
JavaScript
import { AConnector } from "./connector.abstract";
/**
* Abstract class for string-based connectors.
* Acts as a mapper from string-based storage to object-based storage.
*/
export class AStringConnector extends AConnector {
constructor(name, allowsObjectStorage = true) {
super(name, allowsObjectStorage);
this.name = name;
this.allowsObjectStorage = allowsObjectStorage;
}
/* Accessors */
get(key, schema) {
const raw = this.rawGet(key);
if (raw === null)
return null;
const parsed = JSON.parse(raw);
try {
return this.parse(schema, parsed.d);
}
catch {
this.remove(key);
return null;
}
}
set(key, value, schema) {
const parsed = this.parse(schema, value);
const data = { d: parsed };
this.rawSet(key, JSON.stringify(data));
this.triggerOnChange(key);
}
}
//# sourceMappingURL=string-connector.abstract.js.map