UNPKG

trusted

Version:

⚖️ Trustworthy localStorage. Validate against a schema, set default values.

62 lines (61 loc) 3.07 kB
export interface TrustedOptions { namespace?: string; } export interface TrustedAccessorOptions<T> { key: string; defaultValue?: T; yupSchema?: any; validate?: (value: T) => boolean; skipRegistration?: boolean; unmarshal?: (localValue: string) => T; marshal?: (value: T) => string; } export declare type TrustedTypeAccessorOptions<T> = Omit<TrustedAccessorOptions<T>, 'marshal' | 'unmarshal'>; export interface TrustedAccessor<T> { get: () => T; set: (value: T) => void; remove: () => void; unregister: () => void; getKey: () => string; getDefaultValue: () => T; } export declare class Trusted { private namespace; private registeredKeys; constructor(options?: TrustedOptions); registerKey(key: string): void; unregisterKey(key: string): void; accessor<T>(options: TrustedAccessorOptions<T> & { defaultValue: T; }): TrustedAccessor<T>; accessor<T>(options: TrustedAccessorOptions<T>): TrustedAccessor<T | undefined>; string<T extends string = string>(accessorOptions: TrustedTypeAccessorOptions<T> & { defaultValue: T; }): TrustedAccessor<T>; string<T extends string = string>(accessorOptions: TrustedTypeAccessorOptions<T>): TrustedAccessor<T | undefined>; boolean<T extends boolean = boolean>(accessorOptions: TrustedTypeAccessorOptions<T> & { defaultValue: T; }): TrustedAccessor<T>; boolean<T extends boolean = boolean>(accessorOptions: TrustedTypeAccessorOptions<T>): TrustedAccessor<T | undefined>; object<T extends Record<any, any>>(accessorOptions: TrustedTypeAccessorOptions<T> & { defaultValue: T; }): TrustedAccessor<T>; object<T extends Record<any, any>>(accessorOptions: TrustedTypeAccessorOptions<T>): TrustedAccessor<T | undefined>; number<T extends number = number>(accessorOptions: TrustedTypeAccessorOptions<T> & { defaultValue: T; }): TrustedAccessor<T>; number<T extends number = number>(accessorOptions: TrustedTypeAccessorOptions<T>): TrustedAccessor<T | undefined>; array<T, A extends T[] = T[]>(accessorOptions: TrustedTypeAccessorOptions<A> & { defaultValue: A; }): TrustedAccessor<A>; array<T, A extends T[] = T[]>(accessorOptions: TrustedTypeAccessorOptions<A>): TrustedAccessor<A | undefined>; map<K extends string | number | symbol, T, M extends Map<K, T> = Map<K, T>>(accessorOptions: TrustedTypeAccessorOptions<M> & { defaultValue: M; }): TrustedAccessor<M>; map<K extends string | number | symbol, T, M extends Map<K, T> = Map<K, T>>(accessorOptions: TrustedTypeAccessorOptions<M>): TrustedAccessor<M | undefined>; set<T, S extends Set<T> = Set<T>>(accessorOptions: TrustedAccessorOptions<S>): TrustedAccessor<S | undefined>; date<T extends Date>(accessorOptions: TrustedAccessorOptions<T> & { defaultValue: T; }): TrustedAccessor<T>; date<T extends Date>(accessorOptions: TrustedAccessorOptions<T>): TrustedAccessor<T | undefined>; }