UNPKG

deep-equality-data-structures

Version:

Javascript data structures (e.g., Map, Set) that support deep object equality

35 lines (34 loc) 1.4 kB
import { NormalOption as ObjectHashOptions } from 'object-hash'; import { TransformFunction } from './transformers'; import { Require } from './utils'; /** * Library options */ interface DeepEqualityDataStructuresOptions<K, V, TxK, TxV> { /** * A function that transforms Map keys or Set values prior to normalization. * * NOTE: The caller is responsible for not mutating object inputs. */ transformer?: TransformFunction<K, TxK>; /** * A function that transforms Map values prior to normalization. * * NOTE: The caller is responsible for not mutating object inputs. */ mapValueTransformer?: TransformFunction<V, TxV>; /** * If true, objects will be JSON-serialized/deserialized into "plain" objects prior to hashing. */ useToJsonTransform?: boolean; /** * If true, all string values (including keys/values within objects and arrays) will use case-insensitive equality comparisons. */ caseInsensitive?: boolean; } export type Options<K, V, TxK, TxV> = ObjectHashOptions & DeepEqualityDataStructuresOptions<K, V, TxK, TxV>; /** * Given the specified options, resolve default values as appropriate. */ export declare function getOptionsWithDefaults<K, V, TxK, TxV>(options: Options<K, V, TxK, TxV>): Require<Options<K, V, TxK, TxV>, keyof DeepEqualityDataStructuresOptions<K, V, TxK, TxV>>; export {};