UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

99 lines (98 loc) 3.07 kB
import type { FieldCreators } from './fields/fieldTypes'; declare function getModules(): { readonly graphql: { readonly module: () => typeof import("graphql"); readonly server: true; }; readonly GraphType: { module: () => typeof import("./GraphType/GraphType"); server: boolean; }; readonly fieldInstanceFromDef: { module: () => typeof import("./fieldInstanceFromDef"); server: boolean; }; readonly MetaField: { module: () => typeof import("./fields/MetaFieldField"); server: boolean; }; readonly ObjectType: { module: () => typeof import("./ObjectType"); server: boolean; }; readonly fieldTypes: { module: () => typeof import("./fields/fieldTypes"); server: boolean; }; readonly implementObject: { module: () => typeof import("./implementObject"); server: boolean; }; readonly mockObject: { module: () => typeof import("./mockObject"); server: boolean; }; readonly tsfy: { module: () => typeof import("./tsfy"); server: boolean; }; readonly GraphQLParser: { module: () => typeof import("./GraphType/GraphQLParser"); server: boolean; }; readonly fs: { module: () => typeof import("fs-extra"); server: boolean; }; readonly parsePhoneNumberServerSide: { module: () => typeof import("@backland/utils/lib/parsePhoneNumber"); server: boolean; }; readonly clientUtils: { module: () => typeof import("./GraphType/generateClientUtils"); server: boolean; }; readonly createGraphQLSchema: { module: () => typeof import("./createGraphQLSchema"); server: boolean; }; readonly createResolver: { module: () => typeof import("./Resolver"); server: boolean; }; readonly getQueryTemplates: { module: () => typeof import("./GraphType/getQueryTemplates"); server: boolean; }; readonly objectToTypescript: { module: () => typeof import('./objectToTypescript'); server: boolean; }; readonly prettier: { module: () => typeof import('prettier'); server: boolean; }; readonly typesWriter: { module: () => typeof import('./typesWriter'); server: boolean; }; }; type ModulesMap = ReturnType<typeof getModules>; type Exports = { [K in keyof ModulesMap]: ModulesMap[K] extends { module: () => infer M; } ? M : never; }; type NOK<T> = Exclude<keyof T, 'prototype' | number | symbol | 'default'>; type AllKeys<T> = { [K in NOK<T>]: NOK<T[K]>; }[NOK<T>]; type SubProps<P, K> = { [S in keyof P as K extends keyof P[S] ? K : never]: K extends keyof P[S] ? P[S][K] : never; }; type Caramelo<P> = { [K in AllKeys<P>]: K extends keyof SubProps<P, K> ? SubProps<P, K>[K] : never; }; export type BacklandModules = Exports & Caramelo<Exports> & FieldCreators; export declare const CircularDeps: BacklandModules; export {};