BREAKING CHANGE(core): update
This commit is contained in:
@@ -5,11 +5,18 @@ import { Task } from '@push.rocks/taskbuffer';
|
||||
|
||||
export type TKeyValueStore = 'custom' | 'userHomeDir';
|
||||
|
||||
export interface IKvStoreConstructorOptions {
|
||||
typeArg: TKeyValueStore;
|
||||
identityArg: string;
|
||||
customPath?: string;
|
||||
mandatoryKeys?: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* kvStore is a simple key value store to store data about projects between runs
|
||||
*/
|
||||
export class KeyValueStore {
|
||||
private dataObject: any = {};
|
||||
export class KeyValueStore<T = any> {
|
||||
private dataObject: Partial<T> = {};
|
||||
private deletedObject: any = {};
|
||||
private mandatoryKeys: Set<string> = new Set();
|
||||
public changeSubject = new plugins.smartrx.rxjs.Subject();
|
||||
@@ -82,19 +89,19 @@ export class KeyValueStore {
|
||||
* @param identityArg
|
||||
* @param customPath Optional custom path for the keyValue store
|
||||
*/
|
||||
constructor(typeArg: TKeyValueStore, identityArg: string, customPath?: string, mandatoryKeys?: string[]) {
|
||||
if (customPath && typeArg !== 'custom') {
|
||||
constructor(optionsArg: IKvStoreConstructorOptions) {
|
||||
if (optionsArg.customPath && optionsArg.typeArg !== 'custom') {
|
||||
throw new Error('customPath can only be provided if typeArg is custom');
|
||||
}
|
||||
if (typeArg === 'custom' && !customPath) {
|
||||
if (optionsArg.typeArg === 'custom' && !optionsArg.customPath) {
|
||||
throw new Error('customPath must be provided if typeArg is custom');
|
||||
}
|
||||
this.type = typeArg;
|
||||
this.identity = identityArg;
|
||||
this.customPath = customPath; // Store custom path if provided
|
||||
this.type = optionsArg.typeArg;
|
||||
this.identity = optionsArg.identityArg;
|
||||
this.customPath = optionsArg.customPath; // Store custom path if provided
|
||||
this.initFilePath();
|
||||
if (mandatoryKeys) {
|
||||
this.setMandatoryKeys(mandatoryKeys);
|
||||
if (optionsArg.mandatoryKeys) {
|
||||
this.setMandatoryKeys(optionsArg.mandatoryKeys);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user