@ephemeras/profile
Version:
Profile manager for ephemeras.
49 lines (47 loc) • 1.39 kB
TypeScript
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 };