UNPKG

composite.js

Version:

A polyfill for the TC39 Composites proposal: structured immutable objects with well-defined equality.

39 lines (32 loc) 940 B
export interface CompositeObject { readonly [key: string]: any; }; export interface Composite { /** * Create a new composite object from a plain object. * @param object A plain object */ (object: object): CompositeObject; /** * Create a new composite from a list of values (ordinal composite) * @param args Values for the composite */ of(...args: any[]): CompositeObject; /** * Check if two composites are equal * @param a First composite * @param b Second composite */ equal(a: CompositeObject, b: CompositeObject): boolean; /** * Check if a value is a composite * @param value Value to check */ isComposite(value: any): value is CompositeObject; /** * Restore the native behavior of Map and Set, disabling structural equality for composites. */ unpatch(): void; }; declare const Composite: Composite; export default Composite;