GoScrobble/web/node_modules/@reduxjs/toolkit/dist/serializableStateInvariantMiddleware.d.ts

75 lines
2.5 KiB
TypeScript
Raw Permalink Normal View History

2022-04-25 02:47:15 +00:00
import type { Middleware } from 'redux';
/**
* Returns true if the passed value is "plain", i.e. a value that is either
* directly JSON-serializable (boolean, number, string, array, plain object)
* or `undefined`.
*
* @param val The value to check.
*
* @public
*/
export declare function isPlain(val: any): boolean;
interface NonSerializableValue {
keyPath: string;
value: unknown;
}
/**
* @public
*/
export declare function findNonSerializableValue(value: unknown, path?: string, isSerializable?: (value: unknown) => boolean, getEntries?: (value: unknown) => [string, any][], ignoredPaths?: readonly string[]): NonSerializableValue | false;
/**
* Options for `createSerializableStateInvariantMiddleware()`.
*
* @public
*/
export interface SerializableStateInvariantMiddlewareOptions {
/**
* The function to check if a value is considered serializable. This
* function is applied recursively to every value contained in the
* state. Defaults to `isPlain()`.
*/
isSerializable?: (value: any) => boolean;
/**
* The function that will be used to retrieve entries from each
* value. If unspecified, `Object.entries` will be used. Defaults
* to `undefined`.
*/
getEntries?: (value: any) => [string, any][];
/**
* An array of action types to ignore when checking for serializability.
* Defaults to []
*/
ignoredActions?: string[];
/**
* An array of dot-separated path strings to ignore when checking
* for serializability, Defaults to ['meta.arg']
*/
ignoredActionPaths?: string[];
/**
* An array of dot-separated path strings to ignore when checking
* for serializability, Defaults to []
*/
ignoredPaths?: string[];
/**
* Execution time warning threshold. If the middleware takes longer
* than `warnAfter` ms, a warning will be displayed in the console.
* Defaults to 32ms.
*/
warnAfter?: number;
/**
* Opt out of checking state, but continue checking actions
*/
ignoreState?: boolean;
}
/**
* Creates a middleware that, after every state change, checks if the new
* state is serializable. If a non-serializable value is found within the
* state, an error is printed to the console.
*
* @param options Middleware options.
*
* @public
*/
export declare function createSerializableStateInvariantMiddleware(options?: SerializableStateInvariantMiddlewareOptions): Middleware;
export {};