@webda/core
Version:
Expose API with Lambda
152 lines (151 loc) • 3.67 kB
TypeScript
import { CoreModel } from "../models/coremodel.js";
import { Store, StoreFindResult, StoreParameters } from "./store.js";
import { WebdaQL } from "./webdaql/query.js";
interface StorageMap {
[key: string]: string;
}
/**
* Memory store
*/
declare class MemoryStoreParameters extends StoreParameters {
/**
* Persist the data in a file
*/
persistence?: {
/**
* File path to save to
*/
path: string;
/**
* Encryption key for AES encryption
*/
key?: string;
/**
* By default only save once every 1s if modified
*
* @default 1000
*/
delay?: number;
/**
* cipher to use
*/
cipher?: string;
/**
* Compression level to use
* @default 9
* @max 9
* @min 0
*/
compressionLevel?: number;
};
constructor(params: any, service: MemoryStore);
}
/**
* Store in Memory
*
* @category CoreServices
* @WebdaModda
*/
declare class MemoryStore<T extends CoreModel = CoreModel, K extends MemoryStoreParameters = MemoryStoreParameters> extends Store<T, K> {
/**
* Inmemory storage
*/
storage: StorageMap;
/**
* Persistence timeout id
*/
private persistenceTimeout;
/**
* Current persistence
*/
persistencePromise: any;
/**
* AES encryption key
*/
private key;
/**
* Persist inmemory storage to file
*
* Called every this.parameters.persistence.delay ms
*/
persist(): Promise<void>;
/**
* Load a persisted memory data
*/
load(): Promise<void>;
/**
* @override
*/
loadParameters(params: any): MemoryStoreParameters;
/**
* @override
*/
init(): Promise<this>;
/**
* Ensure the store is saved if persistence is on
*/
stop(): Promise<void>;
/**
* @override
*/
_exists(uid: any): Promise<boolean>;
/**
* @override
*/
find(query: WebdaQL.Query): Promise<StoreFindResult<T>>;
/**
* @override
*/
_save(object: T): Promise<T>;
/**
* @override
*/
_delete(uid: string): Promise<void>;
/**
* @override
*/
_patch(object: any, uuid: string, writeCondition?: any, writeConditionField?: string): Promise<T>;
/**
* @override
*/
_update(object: any, uid: string, writeCondition?: any, writeConditionField?: string): Promise<T>;
/**
* @override
*/
getAll(uids?: string[]): Promise<any>;
/**
* Retrieve the object as model
*
* @param uid
* @returns
*/
_getSync(uid: string, raiseIfNotFound?: boolean): T;
/**
* @override
*/
_removeAttribute(uuid: string, attribute: string, writeCondition?: any, writeConditionField?: string): Promise<void>;
/**
* @override
*/
_get(uid: any, raiseIfNotFound?: boolean): Promise<T>;
/**
* @override
*/
__clean(): Promise<void>;
/**
* @override
*/
_incrementAttributes(uid: any, params: {
property: string;
value: number;
}[], updateDate: Date): Promise<T>;
/**
* @inheritdoc
*/
_upsertItemToCollection(uid: string, prop: string, item: any, index: number, itemWriteCondition: any, itemWriteConditionField: string, updateDate: Date): Promise<void>;
/**
* @override
*/
_deleteItemFromCollection(uid: any, prop: any, index: any, itemWriteCondition: any, itemWriteConditionField: any, updateDate: Date): Promise<T>;
}
export { MemoryStore, MemoryStore as Plop, StorageMap };