@quenk/preconditions
Version:
Make data satisfy constraints before using.
29 lines (28 loc) • 1.37 kB
TypeScript
import * as baseAsync from '.';
import { Record } from '@quenk/noni/lib/data/record';
import { Value, Object } from '@quenk/noni/lib/data/jsonx';
import { Precondition, Preconditions } from './';
/**
* restrict (async version).
*/
export declare const restrict: <A, B, R extends Record<B>>(tests: baseAsync.AsyncPreconditions<A, B>) => baseAsync.AsyncPrecondition<Record<A>, R>;
/**
* disjoint (async version).
*/
export declare const disjoint: <A, B, R extends Record<B>>(tests: baseAsync.AsyncPreconditions<A, B>) => baseAsync.AsyncPrecondition<Record<A>, R>;
/**
* intersect (async version).
*/
export declare const intersect: <A, B, R extends Record<B>>(tests: baseAsync.AsyncPreconditions<A, B>) => baseAsync.AsyncPrecondition<Record<A>, R>;
/**
* union (async version).
*/
export declare const union: <A, B, R extends Record<B>>(tests: baseAsync.AsyncPreconditions<A, B>) => baseAsync.AsyncPrecondition<Record<A>, R>;
/**
* map (async version).
*/
export declare const map: <A, B, R extends Record<B>>(test: baseAsync.AsyncPrecondition<A, B>) => baseAsync.AsyncPrecondition<Record<A>, R>;
/**
* schemaProperties (async)
*/
export declare const schemaProperties: (propsWrap: (props: Preconditions<Value, Value>) => Precondition<Object, Object>, props: Preconditions<Value, Value>, addPropsPrec?: Precondition<Value, Value>) => Precondition<Value, Value>;