UNPKG

@ephemeras/profile

Version:

Profile manager for ephemeras.

49 lines (47 loc) 1.39 kB
type ProfileData = Record<string, any>; type ProfileTransformer = (text: string, ...args: any[]) => any; type ProfileSerializer = (data: any, ...args: any[]) => string; type ProfileOptions = { path: string; base?: string; data?: ProfileData; serializer?: ProfileSerializer; transformer?: ProfileTransformer; }; /** * Easy to manage a profile * * @examples * ``` * import { Profile } from '@ephemeras/profile' * * const file = new Profile({ path: '.white-block/cli/config.json' }) * * // file.getUrl(): get file path * // file.getData(): get file data * // file.get(a.b): get data by propName * // file.set({}): set data by object * // file.set(a.0, data): set data by propName * // file.delete(a.0): delete data by propName * // file.clear(): clear file data * // file.remove(): remove file * ``` */ declare class Profile { private url; private data; private transformer; private serializer; constructor(options: ProfileOptions); private sync; getData(): ProfileData; getUrl(): string; private getParent; get(prop: string): any; set(prop: string, value: any): ProfileData; set(data: ProfileData): ProfileData; delete(prop: string): ProfileData; clear(): ProfileData; remove(): void; } export { Profile, type ProfileData, type ProfileOptions, type ProfileSerializer, type ProfileTransformer };