@wordpress/preferences
Version:
Utilities for managing WordPress preferences.
30 lines (26 loc) • 661 B
text/typescript
export type StoreState = {
preferences: { [ k in string ]: { [ p in string ]: any } };
defaults: { [ k in string ]: { [ p in string ]: any } };
};
export type OmitFirstArg< F > = F extends (
x: any,
...args: infer P
) => infer R
? ( ...args: P ) => R
: never;
export interface WPPreferencesPersistenceLayer< D extends Object > {
/**
* An async function that gets data from the persistence layer.
*/
get: () => Promise< D >;
/**
* A function that sets data in the persistence layer.
*/
set: ( value: D ) => void;
}
export type ActionObject<
T extends string,
D extends Record< Exclude< string, 'type' >, any > = {},
> = {
type: T;
} & D;