core-types
Version:
Generic type declarations for e.g. TypeScript, GraphQL and JSON Schema
22 lines (21 loc) • 1.13 kB
TypeScript
import type { NamedType, NodeDocument, NodeType } from './types.js';
export interface SimplifyOptions {
/**
* If true, and-types of objects are merged into one type.
* This will also include ref-types that reference objects, they will all be
* merged into one object.
*
* @default false
*/
mergeObjects?: boolean;
}
export declare function simplify<T extends NamedType>(node: T, options?: SimplifyOptions): NamedType;
export declare function simplify<T extends NamedType>(node: Array<T>, options?: SimplifyOptions): Array<NamedType>;
export declare function simplify<T extends NodeType>(node: T, options?: SimplifyOptions): NodeType;
export declare function simplify<T extends NodeType>(node: Array<T>, options?: SimplifyOptions): NodeType;
export declare function simplify<T extends NodeType>(node: NodeDocument<1, T>, options?: SimplifyOptions): NodeDocument<1, NodeType>;
interface SimplifyContext {
refs: Map<string, NodeType>;
}
export declare function simplifyImpl<Type extends NodeType | NamedType>(node: Type, ctx: Required<SimplifyOptions> & SimplifyContext): Type;
export {};