UNPKG

@parischap/pretty-print

Version:
122 lines 3.21 kB
/** * This module implements a type that takes care of filtering properties when printing non-primitive * values. * * With the make function, you can define your own instances if the provided ones don't suit your * needs. */ import { MInspectable, MTypes } from '@parischap/effect-lib'; import { Equal, Equivalence, Pipeable, Predicate } from 'effect'; import type * as PPValues from './Values.js'; /** * Module tag * * @category Models */ export declare const moduleTag = "@parischap/pretty-print/PropertyFilter/"; declare const _TypeId: unique symbol; type _TypeId = typeof _TypeId; /** * Namespace of a PropertyFilter used as an action * * @category Models */ export declare namespace Action { /** * Type of the action * * @category Models */ interface Type extends MTypes.OneArgFunction<PPValues.Type> { } } /** * Type that represents a PropertyFilter. * * @category Models */ export interface Type extends Action.Type, Equal.Equal, MInspectable.Inspectable, Pipeable.Pipeable { /** Id of this PropertyFilter instance. Useful for equality and debugging */ readonly id: string; /** @internal */ readonly [_TypeId]: _TypeId; } /** * Type guard * * @category Guards */ export declare const has: (u: unknown) => u is Type; /** * Equivalence * * @category Equivalences */ export declare const equivalence: Equivalence.Equivalence<Type>; /** * Constructor * * @category Constructors */ export declare const make: ({ id, action }: { readonly id: string; readonly action: Action.Type; }) => Type; /** * Returns the `id` property of `self` * * @category Destructors */ export declare const id: MTypes.OneArgFunction<Type, string>; /** * PropertyFilter instance that removes properties of non-primitive values whose value is not a * function * * @category Instances */ export declare const removeNonFunctions: Type; /** * PropertyFilter instance that removes properties of non-primitive values whose value is a function * * @category Instances */ export declare const removeFunctions: Type; /** * PropertyFilter instance that removes non-enumerable properties of non-primitive values * * @category Instances */ export declare const removeNonEnumerables: Type; /** * PropertyFilter instance that removes enumerable properties of non-primitive values * * @category Instances */ export declare const removeEnumerables: Type; /** * PropertyFilter instance that removes properties of non-primitive values with a string key * * @category Instances */ export declare const removeStringKeys: Type; /** * PropertyFilter instance that removes properties of non-primitive values with a symbolic key * * @category Instances */ export declare const removeSymbolicKeys: Type; /** * Constructor of a propertyFilter instance that removes properties of non-primitive values whose * key is: * * - A string that does not fulfill `predicate` * - A symbol * * @category Constructors */ export declare const removeNotFulfillingKeyPredicateMaker: ({ id, predicate }: { readonly id: string; readonly predicate: Predicate.Predicate<string>; }) => Type; export {}; //# sourceMappingURL=PropertyFilter.d.ts.map