/opt/canhelp/node_modules/gel/dist/reflection
Edit: /opt/canhelp/node_modules/gel/dist/reflection/analyzeQuery.d.ts (2440B)
import type { ICodec } from "../codecs/ifaces";
import { ScalarCodec } from "../codecs/ifaces";
import type { Client } from "../baseClient";
import { Cardinality } from "./enums";
type QueryType = {
args: string;
result: string;
cardinality: Cardinality;
capabilities: number;
query: string;
importMap: ImportMap;
imports: Set
;
};
export type AnalyzeQueryOptions = {
useResolvedCodecType?: boolean;
};
export declare function analyzeQuery(client: Client, query: string, { useResolvedCodecType }?: AnalyzeQueryOptions): Promise;
type AbstractClass = (abstract new (...arguments_: any[]) => T) & {
prototype: T;
};
type CodecLike = ICodec | ScalarCodec;
export type CodecGenerator = (codec: Codec, context: CodecGeneratorContext) => string;
type CodecGeneratorMap = ReadonlyMap, CodecGenerator>;
export type CodecGeneratorContext = {
indent: string;
optionalNulls: boolean;
readonly: boolean;
imports: ImportMap;
walk: (codec: CodecLike, context?: CodecGeneratorContext) => string;
generators: CodecGeneratorMap;
applyCardinality: (type: string, cardinality: Cardinality) => string;
};
export type CodecGenerationOptions = Partial>;
export declare const generateTSTypeFromCodec: (codec: ICodec, cardinality?: Cardinality, options?: CodecGenerationOptions) => {
type: string;
imports: ImportMap;
};
declare const genDef: (codecType: AbstractClass, generator: CodecGenerator) => readonly [AbstractClass, CodecGenerator];
export { genDef as defineCodecGeneratorTuple };
type FieldDef = {
name: string;
cardinality: Cardinality;
codec: ICodec;
};
export declare const defaultCodecGenerators: CodecGeneratorMap;
export declare const generateTsObject: (fields: FieldDef[], ctx: CodecGeneratorContext) => string;
export declare const generateTsObjectField: (field: FieldDef, ctx: CodecGeneratorContext) => string;
export declare const defaultApplyCardinalityToTsType: (ctx: Pick) => (type: string, cardinality: Cardinality) => string;
export declare class ImportMap extends Map> {
add(module: string, specifier: string): this;
merge(map: ImportMap): ImportMap;
}