@nxara/olio-codegen 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,287 @@
1
+ import { isAbstractType, isEnumType, isListType, isNonNullType, isObjectType, isScalarType, Kind, print, typeFromAST, validate, visit } from "graphql";
2
+ import { BUILTIN_SCALARS, HEADER } from "./types.js";
3
+ const location = (error) => {
4
+ const at = error.locations?.[0];
5
+ const file = error.source?.name;
6
+ return at ? `${file ? `${file}:` : ""}${at.line}:${at.column}: ` : "";
7
+ };
8
+ const at = (node) => {
9
+ const token = node.loc?.startToken;
10
+ return token
11
+ ? `${node.loc?.source.name}:${token.line}:${token.column}: `
12
+ : "";
13
+ };
14
+ function takeTransports(definitions) {
15
+ const transports = new Map();
16
+ const stripped = definitions.map((definition) => {
17
+ if (definition.kind !== Kind.OPERATION_DEFINITION)
18
+ return definition;
19
+ const chosen = (definition.directives ?? []).filter((d) => d.name.value === "ws" || d.name.value === "sse");
20
+ for (const directive of chosen) {
21
+ if (definition.operation !== "subscription") {
22
+ throw new Error(`${at(directive)}@${directive.name.value} only applies to subscriptions: queries and mutations go over HTTP`);
23
+ }
24
+ if (directive.arguments?.length) {
25
+ throw new Error(`${at(directive)}@${directive.name.value} takes no arguments`);
26
+ }
27
+ }
28
+ if (chosen.length > 1) {
29
+ throw new Error(`${at(chosen[1])}A subscription takes one of @ws or @sse`);
30
+ }
31
+ const operation = {
32
+ ...definition,
33
+ directives: definition.directives?.filter((d) => !chosen.includes(d))
34
+ };
35
+ if (operation.operation === "subscription") {
36
+ transports.set(operation, (chosen[0]?.name.value ?? "ws"));
37
+ }
38
+ return operation;
39
+ });
40
+ return { definitions: stripped, transports };
41
+ }
42
+ const conditional = (directives = []) => directives.some((d) => d.name.value === "include" || d.name.value === "skip");
43
+ const lowerFirst = (word) => `${word[0]?.toLowerCase() ?? ""}${word.slice(1)}`;
44
+ const capitalize = (word) => `${word[0]?.toUpperCase() ?? ""}${word.slice(1)}`;
45
+ function applies(schema, condition, type) {
46
+ if (condition === undefined || condition === type.name)
47
+ return true;
48
+ const target = schema.getType(condition);
49
+ return isAbstractType(target) && schema.isSubType(target, type);
50
+ }
51
+ function collect(ctx, type, { set, optional }, fields) {
52
+ for (const selection of set.selections) {
53
+ const maybe = optional || conditional(selection.directives);
54
+ if (selection.kind === Kind.FIELD) {
55
+ const key = selection.alias?.value ?? selection.name.value;
56
+ fields.set(key, [
57
+ ...(fields.get(key) ?? []),
58
+ { node: selection, optional: maybe }
59
+ ]);
60
+ continue;
61
+ }
62
+ const fragment = selection.kind === Kind.INLINE_FRAGMENT
63
+ ? selection
64
+ : ctx.fragments.get(selection.name.value);
65
+ if (fragment &&
66
+ applies(ctx.schema, fragment.typeCondition?.name.value, type)) {
67
+ collect(ctx, type, { set: fragment.selectionSet, optional: maybe }, fields);
68
+ }
69
+ }
70
+ }
71
+ function objectShape(ctx, type, sets, indent) {
72
+ const fields = new Map();
73
+ for (const set of sets)
74
+ collect(ctx, type, set, fields);
75
+ const lines = [];
76
+ for (const [key, nodes] of fields) {
77
+ const name = nodes[0]?.node.name.value ?? key;
78
+ const optional = nodes.every((n) => n.optional) ? "?" : "";
79
+ if (name === "__typename") {
80
+ lines.push(`${key}${optional}: "${type.name}";`);
81
+ continue;
82
+ }
83
+ const field = type.getFields()[name];
84
+ if (!field)
85
+ continue;
86
+ const children = nodes.flatMap((n) => n.node.selectionSet ? [{ set: n.node.selectionSet, optional: false }] : []);
87
+ lines.push(`${key}${optional}: ${outputType(ctx, field.type, children, `${indent} `)};`);
88
+ }
89
+ return lines.length
90
+ ? `{\n${lines.map((l) => `${indent} ${l}`).join("\n")}\n${indent}}`
91
+ : "{}";
92
+ }
93
+ function compositeType(ctx, type, sets, indent) {
94
+ const members = isObjectType(type)
95
+ ? [type]
96
+ : [...ctx.schema.getPossibleTypes(type)].sort((a, b) => a.name.localeCompare(b.name));
97
+ const shapes = [
98
+ ...new Set(members.map((m) => objectShape(ctx, m, sets, indent)))
99
+ ];
100
+ return shapes.length > 1 ? `(${shapes.join(" | ")})` : (shapes[0] ?? "never");
101
+ }
102
+ function outputType(ctx, type, sets, indent, nullable = true) {
103
+ if (isNonNullType(type)) {
104
+ return outputType(ctx, type.ofType, sets, indent, false);
105
+ }
106
+ let base;
107
+ if (isListType(type)) {
108
+ base = `${outputType(ctx, type.ofType, sets, indent)}[]`;
109
+ }
110
+ else if (isScalarType(type)) {
111
+ base = `Scalar<"${type.name}">`;
112
+ }
113
+ else if (isEnumType(type)) {
114
+ ctx.enums.add(type);
115
+ base = type.name;
116
+ }
117
+ else {
118
+ base = compositeType(ctx, type, sets, indent);
119
+ }
120
+ return nullable ? `Maybe<${base}>` : base;
121
+ }
122
+ function inputType(ctx, type, nullable = true) {
123
+ if (isNonNullType(type))
124
+ return inputType(ctx, type.ofType, false);
125
+ let base;
126
+ if (isListType(type)) {
127
+ base = `${inputType(ctx, type.ofType)}[]`;
128
+ }
129
+ else if (isScalarType(type)) {
130
+ base = `Scalar<"${type.name}", "input">`;
131
+ }
132
+ else {
133
+ if (isEnumType(type))
134
+ ctx.enums.add(type);
135
+ else
136
+ ctx.inputs.add(type);
137
+ base = type.name;
138
+ }
139
+ return nullable ? `Maybe<${base}>` : base;
140
+ }
141
+ function usedFragments(ctx, node, seen = new Set()) {
142
+ visit(node, {
143
+ FragmentSpread(spread) {
144
+ const name = spread.name.value;
145
+ const fragment = ctx.fragments.get(name);
146
+ if (seen.has(name) || !fragment)
147
+ return;
148
+ seen.add(name);
149
+ usedFragments(ctx, fragment, seen);
150
+ }
151
+ });
152
+ return seen;
153
+ }
154
+ function typeName(operation) {
155
+ const name = operation.name?.value ?? "";
156
+ const suffix = capitalize(operation.operation);
157
+ return name.endsWith(suffix) ? name : `${name}${suffix}`;
158
+ }
159
+ function emitOperation(ctx, operation) {
160
+ const name = operation.name?.value;
161
+ if (!name) {
162
+ throw new Error(`${at(operation)}An operation needs a name: its types are named after it`);
163
+ }
164
+ const base = typeName(operation);
165
+ const transport = ctx.transports.get(operation);
166
+ const root = ctx.schema.getRootType(operation.operation);
167
+ const result = objectShape(ctx, root, [{ set: operation.selectionSet, optional: false }], "");
168
+ const variables = (operation.variableDefinitions ?? []).map((v) => {
169
+ const type = typeFromAST(ctx.schema, v.type);
170
+ const optional = !isNonNullType(type) || v.defaultValue !== undefined;
171
+ return ` ${v.variable.name.value}${optional ? "?" : ""}: ${inputType(ctx, type)};`;
172
+ });
173
+ const fragments = [...usedFragments(ctx, operation)]
174
+ .sort()
175
+ .map((f) => print(ctx.fragments.get(f)));
176
+ const query = [print(operation), ...fragments].join("\n\n");
177
+ return [
178
+ `export type ${base} = ${result};`,
179
+ `export type ${base}Variables = ${variables.length ? `{\n${variables.join("\n")}\n}` : "{}"};`,
180
+ `export const ${name}Document: TypedDocument<${base}, ${base}Variables, "${operation.operation}"> = {\n operation: "${operation.operation}",\n name: "${name}",\n query: ${JSON.stringify(query)}${transport ? `,\n transport: "${transport}"` : ""}\n};`
181
+ ].join("\n\n");
182
+ }
183
+ function emitInputs(ctx) {
184
+ const emitted = new Map();
185
+ for (let pending = [...ctx.inputs]; pending.length;) {
186
+ for (const type of pending) {
187
+ const fields = Object.values(type.getFields()).map((f) => {
188
+ const optional = !isNonNullType(f.type) || f.defaultValue !== undefined;
189
+ return ` ${f.name}${optional ? "?" : ""}: ${inputType(ctx, f.type)};`;
190
+ });
191
+ emitted.set(type.name, `export type ${type.name} = {\n${fields.join("\n")}\n};`);
192
+ }
193
+ pending = [...ctx.inputs].filter((t) => !emitted.has(t.name));
194
+ }
195
+ return [...emitted]
196
+ .sort(([a], [b]) => a.localeCompare(b))
197
+ .map(([, code]) => code);
198
+ }
199
+ export function emitClient(schema, documents) {
200
+ const { definitions, transports } = takeTransports(documents.flatMap((d) => d.definitions));
201
+ const document = { kind: Kind.DOCUMENT, definitions };
202
+ const errors = validate(schema, document);
203
+ if (errors.length) {
204
+ throw new Error(`Invalid operations:\n${errors.map((e) => ` ${location(e)}${e.message}`).join("\n")}`);
205
+ }
206
+ const fragments = new Map();
207
+ const operations = [];
208
+ for (const definition of document.definitions) {
209
+ if (definition.kind === Kind.FRAGMENT_DEFINITION) {
210
+ fragments.set(definition.name.value, definition);
211
+ }
212
+ else if (definition.kind === Kind.OPERATION_DEFINITION) {
213
+ operations.push(definition);
214
+ }
215
+ }
216
+ const ctx = {
217
+ schema,
218
+ transports,
219
+ fragments,
220
+ enums: new Set(),
221
+ inputs: new Set()
222
+ };
223
+ const typeNames = new Map();
224
+ const calls = new Map();
225
+ for (const operation of operations) {
226
+ const name = operation.name?.value;
227
+ if (!name)
228
+ continue;
229
+ const type = typeName(operation);
230
+ const other = typeNames.get(type);
231
+ if (other) {
232
+ throw new Error(`Operations "${other}" and "${name}" both name their result type ${type}; rename one`);
233
+ }
234
+ typeNames.set(type, name);
235
+ const call = `${operation.operation}.${lowerFirst(name)}`;
236
+ const clash = calls.get(call);
237
+ if (clash) {
238
+ throw new Error(`Operations "${clash}" and "${name}" are both client.${call}; rename one`);
239
+ }
240
+ calls.set(call, name);
241
+ }
242
+ const emitted = operations.map((o) => emitOperation(ctx, o));
243
+ const byRoot = new Map();
244
+ for (const operation of operations) {
245
+ const name = operation.name?.value ?? "";
246
+ const calls = byRoot.get(operation.operation) ?? [];
247
+ calls.push(` ${lowerFirst(name)}: ${name}Document`);
248
+ byRoot.set(operation.operation, calls);
249
+ }
250
+ const used = [...new Set(transports.values())].sort();
251
+ const map = [
252
+ ...[...byRoot].map(([root, calls]) => ` ${root}: {\n${calls.join(",\n")}\n }`),
253
+ ...(used.length
254
+ ? [` transports: [${used.map((kind) => `"${kind}"`).join(", ")}]`]
255
+ : [])
256
+ ].join(",\n");
257
+ const inputs = emitInputs(ctx);
258
+ const enums = [...ctx.enums]
259
+ .sort((a, b) => a.name.localeCompare(b.name))
260
+ .map((e) => `export type ${e.name} = ${e
261
+ .getValues()
262
+ .map((v) => `"${v.name}"`)
263
+ .join(" | ")};`);
264
+ const custom = Object.values(schema.getTypeMap())
265
+ .filter((t) => isScalarType(t) && !t.name.startsWith("__"))
266
+ .map((t) => t.name)
267
+ .filter((name) => !BUILTIN_SCALARS.has(name));
268
+ return `${[
269
+ HEADER,
270
+ 'import type { Scalar, TypedDocument } from "@nxara/olio-client";',
271
+ "type Maybe<T> = T | null;",
272
+ custom.length
273
+ ? [
274
+ `// Custom scalars (${custom.join(", ")}) are \`unknown\` unless registered in ClientScalars`,
275
+ "// (in a .ts file, or a .d.ts with an import or `export {}`):",
276
+ `// declare module "@nxara/olio-client" { interface ClientScalars { ${custom[0]}: string } }`
277
+ ].join("\n")
278
+ : "",
279
+ ...enums,
280
+ ...inputs,
281
+ ...emitted,
282
+ `/** For createClient(operations, { url }): \`client.mutation.login(variables)\`. */\nexport const operations = {\n${map}\n} as const;`
283
+ ]
284
+ .filter(Boolean)
285
+ .join("\n\n")}\n`;
286
+ }
287
+ //# sourceMappingURL=emit-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-client.js","sourceRoot":"","sources":["../src/emit-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EAgBN,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAwBrD,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAU,EAAE;IAC/C,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;IAChC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,EAAE,GAAG,CAAC,IAKX,EAAU,EAAE;IACX,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC;IACnC,OAAO,KAAK;QACV,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI;QAC5D,CAAC,CAAC,EAAE,CAAC;AACT,CAAC,CAAC;AAIF,SAAS,cAAc,CAAC,WAAsC;IAI5D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0C,CAAC;IACrE,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAC9C,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB;YAAE,OAAO,UAAU,CAAC;QACrE,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CACvD,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;YAC/B,IAAI,UAAU,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,oEAAoE,CAC7G,CAAC;YACJ,CAAC;YACD,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,qBAAqB,CAC9D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAkB,CAAC,yCAAyC,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAA4B;YACzC,GAAG,UAAU;YACb,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;SACtE,CAAC;QACF,IAAI,SAAS,CAAC,SAAS,KAAK,cAAc,EAAE,CAAC;YAC3C,UAAU,CAAC,GAAG,CACZ,SAAS,EACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAkB,CACjD,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,UAAU,GAA6B,EAAE,EAAW,EAAE,CACzE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;AAEhF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAC1C,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAEpD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAC1C,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAEpD,SAAS,OAAO,CACd,MAAqB,EACrB,SAA6B,EAC7B,IAAuB;IAEvB,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAID,SAAS,OAAO,CACd,GAAY,EACZ,IAAuB,EACvB,EAAE,GAAG,EAAE,QAAQ,EAAY,EAC3B,MAAqC;IAErC,KAAK,MAAM,SAAS,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,IAAI,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3D,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;gBACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC1B,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;aACrC,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GACZ,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,eAAe;YACrC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,IACE,QAAQ;YACR,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAC7D,CAAC;YACD,OAAO,CACL,GAAG,EACH,IAAI,EACJ,EAAE,GAAG,EAAE,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC/C,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAClB,GAAY,EACZ,IAAuB,EACvB,IAAyB,EACzB,MAAc;IAEd,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,QAAQ,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CACnC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAC3E,CAAC;QACF,KAAK,CAAC,IAAI,CACR,GAAG,GAAG,GAAG,QAAQ,KAAK,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAC9E,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,MAAM;QACjB,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG;QACpE,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAID,SAAS,aAAa,CACpB,GAAY,EACZ,IAA0B,EAC1B,IAAyB,EACzB,MAAc;IAEd,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC;QAChC,CAAC,CAAC,CAAC,IAAI,CAAC;QACR,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7B,CAAC;IACN,MAAM,MAAM,GAAG;QACb,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KAClE,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,UAAU,CACjB,GAAY,EACZ,IAAuB,EACvB,IAAyB,EACzB,MAAc,EACd,QAAQ,GAAG,IAAI;IAEf,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,IAAY,CAAC;IACjB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;IAC3D,CAAC;SAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,IAAI,GAAG,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC;IAClC,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED,SAAS,SAAS,CAChB,GAAY,EACZ,IAAsB,EACtB,QAAQ,GAAG,IAAI;IAEf,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnE,IAAI,IAAY,CAAC;IACjB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC5C,CAAC;SAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,IAAI,GAAG,WAAW,IAAI,CAAC,IAAI,aAAa,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;YACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED,SAAS,aAAa,CACpB,GAAY,EACZ,IAAsD,EACtD,IAAI,GAAG,IAAI,GAAG,EAAU;IAExB,KAAK,CAAC,IAAI,EAAE;QACV,cAAc,CAAC,MAAM;YACnB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;KACF,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAID,SAAS,QAAQ,CAAC,SAAkC;IAClD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,aAAa,CACpB,GAAY,EACZ,SAAkC;IAElC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;IACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,GAAG,EAAE,CAAC,SAAS,CAAC,yDAAyD,CAC1E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAsB,CAAC;IAC9E,MAAM,MAAM,GAAG,WAAW,CACxB,GAAG,EACH,IAAI,EACJ,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAClD,EAAE,CACH,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAqB,CAAC;QACjE,MAAM,QAAQ,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC;QACtE,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;IACtF,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;SACjD,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAA2B,CAAC,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5D,OAAO;QACL,eAAe,IAAI,MAAM,MAAM,GAAG;QAClC,eAAe,IAAI,eAAe,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG;QAC9F,gBAAgB,IAAI,2BAA2B,IAAI,KAAK,IAAI,eAAe,SAAS,CAAC,SAAS,yBAAyB,SAAS,CAAC,SAAS,gBAAgB,IAAI,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM;KAC9P,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,GAAY;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,KAAK,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvD,MAAM,QAAQ,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC;gBACxE,OAAO,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACzE,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,IAAI,EACT,eAAe,IAAI,CAAC,IAAI,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CACzD,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC;SAChB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAOD,MAAM,UAAU,UAAU,CACxB,MAAqB,EACrB,SAAkC;IAElC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,cAAc,CAChD,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CACxC,CAAC;IACF,MAAM,QAAQ,GAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,wBAAwB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC5D,MAAM,UAAU,GAA8B,EAAE,CAAC;IACjD,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjD,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACzD,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAY;QACnB,MAAM;QACN,UAAU;QACV,SAAS;QACT,KAAK,EAAE,IAAI,GAAG,EAAE;QAChB,MAAM,EAAE,IAAI,GAAG,EAAE;KAClB,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,eAAe,KAAK,UAAU,IAAI,iCAAiC,IAAI,cAAc,CACtF,CAAC;QACJ,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACb,eAAe,KAAK,UAAU,IAAI,qBAAqB,IAAI,cAAc,CAC1E,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,GAAG,GAAG;QACV,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAChB,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAC7D;QACD,GAAG,CAAC,IAAI,CAAC,MAAM;YACb,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACnE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;SACzB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SAC5C,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC;SACzB,SAAS,EAAE;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC;SACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CACpB,CAAC;IACJ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;SAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,OAAO,GAAG;QACR,MAAM;QACN,kEAAkE;QAClE,2BAA2B;QAC3B,MAAM,CAAC,MAAM;YACX,CAAC,CAAC;gBACE,sBAAsB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD;gBAC7F,+DAA+D;gBAC/D,sEAAsE,MAAM,CAAC,CAAC,CAAC,cAAc;aAC9F,CAAC,IAAI,CAAC,IAAI,CAAC;YACd,CAAC,CAAC,EAAE;QACN,GAAG,KAAK;QACR,GAAG,MAAM;QACT,GAAG,OAAO;QACV,qHAAqH,GAAG,eAAe;KACxI;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACtB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { GraphQLEnumType, GraphQLInputObjectType, GraphQLInterfaceType, GraphQLObjectType, GraphQLUnionType } from "graphql";
2
+ export declare function region(name: string, declarations: readonly string[]): string;
3
+ export declare function emitEnum(type: GraphQLEnumType): string;
4
+ export declare function emitObject(type: GraphQLObjectType): string;
5
+ export declare function emitInterface(type: GraphQLInterfaceType): string;
6
+ export declare function emitInput(type: GraphQLInputObjectType): string;
7
+ export declare function emitUnion(type: GraphQLUnionType): string;
8
+ //# sourceMappingURL=emit-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-type.d.ts","sourceRoot":"","sources":["../src/emit-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAIjB,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAK5E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAStD;AAGD,wBAAgB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAQ1D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAKhE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAK9D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAMxD"}
@@ -0,0 +1,38 @@
1
+ import { inputMember, typeToTS } from "./type-map.js";
2
+ export function region(name, declarations) {
3
+ const body = declarations.length
4
+ ? `\n\n${declarations.join("\n\n")}\n\n`
5
+ : "\n\n";
6
+ return `/* #region ${name} */${body}/* #endregion ${name} */`;
7
+ }
8
+ export function emitEnum(type) {
9
+ const values = type
10
+ .getValues()
11
+ .map((v) => ` ${v.name}: "${v.name}"`)
12
+ .join(",\n");
13
+ return (`export const ${type.name} = {\n${values}\n} as const;\n` +
14
+ `export type ${type.name} = ResolveEnum<"${type.name}", (typeof ${type.name})[keyof typeof ${type.name}]>;`);
15
+ }
16
+ export function emitObject(type) {
17
+ const lines = [
18
+ ` __typename?: "${type.name}";`,
19
+ ...Object.values(type.getFields()).map((f) => ` ${f.name}: ${typeToTS(f.type, "output")};`)
20
+ ];
21
+ return `export type ${type.name} = {\n${lines.join("\n")}\n};`;
22
+ }
23
+ export function emitInterface(type) {
24
+ const lines = Object.values(type.getFields()).map((f) => ` ${f.name}: ${typeToTS(f.type, "output")};`);
25
+ return `export type ${type.name} = {\n${lines.join("\n")}\n};`;
26
+ }
27
+ export function emitInput(type) {
28
+ const lines = Object.values(type.getFields()).map((f) => ` ${inputMember(f)};`);
29
+ return `export type ${type.name} = {\n${lines.join("\n")}\n};`;
30
+ }
31
+ export function emitUnion(type) {
32
+ const members = type
33
+ .getTypes()
34
+ .map((t) => t.name)
35
+ .join(" | ");
36
+ return `export type ${type.name} = ${members};`;
37
+ }
38
+ //# sourceMappingURL=emit-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-type.js","sourceRoot":"","sources":["../src/emit-type.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,YAA+B;IAClE,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM;QAC9B,CAAC,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;QACxC,CAAC,CAAC,MAAM,CAAC;IACX,OAAO,cAAc,IAAI,MAAM,IAAI,iBAAiB,IAAI,KAAK,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAqB;IAC5C,MAAM,MAAM,GAAG,IAAI;SAChB,SAAS,EAAE;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,GAAG,CAAC;SACtC,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,OAAO,CACL,gBAAgB,IAAI,CAAC,IAAI,SAAS,MAAM,iBAAiB;QACzD,eAAe,IAAI,CAAC,IAAI,mBAAmB,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,IAAI,kBAAkB,IAAI,CAAC,IAAI,KAAK,CAC5G,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,UAAU,CAAC,IAAuB;IAChD,MAAM,KAAK,GAAG;QACZ,mBAAmB,IAAI,CAAC,IAAI,IAAI;QAChC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CACrD;KACF,CAAC;IACF,OAAO,eAAe,IAAI,CAAC,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAA0B;IACtD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CACrD,CAAC;IACF,OAAO,eAAe,IAAI,CAAC,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAA4B;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,CAC9B,CAAC;IACF,OAAO,eAAe,IAAI,CAAC,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAsB;IAC9C,MAAM,OAAO,GAAG,IAAI;SACjB,QAAQ,EAAE;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,OAAO,eAAe,IAAI,CAAC,IAAI,MAAM,OAAO,GAAG,CAAC;AAClD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ClientCodegenOptions, type CodegenOptions } from "./types.js";
2
+ export declare function codegen(options: CodegenOptions): Promise<void>;
3
+ export declare function codegenClient(options: ClientCodegenOptions): Promise<void>;
4
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAyBA,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAkLpB,wBAAsB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFpE;AA4CD,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkCf"}
package/dist/files.js ADDED
@@ -0,0 +1,226 @@
1
+ import { existsSync, watch as fsWatch } from "node:fs";
2
+ import { glob, mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
3
+ import { dirname, join, resolve } from "node:path";
4
+ import { loadGraphQLFile, matchFiles } from "@nxara/olio-core/files";
5
+ import { buildASTSchema, buildClientSchema, getIntrospectionQuery, printSchema } from "graphql";
6
+ import { compile } from "./codegen.js";
7
+ import { emitClient } from "./emit-client.js";
8
+ import { bold, count, cyan, dim, green, red, row, shortPath } from "./log.js";
9
+ import { BUILTIN_SCALARS } from "./types.js";
10
+ async function filesIn(moduleDir, patterns) {
11
+ const seen = new Set();
12
+ const files = [];
13
+ for (const pattern of patterns) {
14
+ for await (const file of glob(join(moduleDir, pattern))) {
15
+ const absolute = resolve(file);
16
+ if (seen.has(absolute))
17
+ continue;
18
+ seen.add(absolute);
19
+ files.push(file);
20
+ }
21
+ }
22
+ return files.sort();
23
+ }
24
+ async function discoverModules(modulesDir, typeDefs, onSkip) {
25
+ const root = resolve(modulesDir);
26
+ if (!existsSync(root)) {
27
+ throw new Error(`Modules directory does not exist: ${root}`);
28
+ }
29
+ const entries = await readdir(root, { withFileTypes: true });
30
+ const childDirs = entries
31
+ .filter((entry) => entry.isDirectory())
32
+ .map((entry) => entry.name)
33
+ .sort();
34
+ if (childDirs.length === 0) {
35
+ throw new Error(`No module directories found in ${root}`);
36
+ }
37
+ const patterns = Array.isArray(typeDefs) ? typeDefs : [typeDefs];
38
+ const modules = [];
39
+ const load = async (id, files) => {
40
+ const part = { id, files: [], typeDefs: [] };
41
+ for (const file of files) {
42
+ const document = await loadGraphQLFile(file);
43
+ if (!document) {
44
+ onSkip(file);
45
+ continue;
46
+ }
47
+ part.files.push(file);
48
+ part.typeDefs.push(document);
49
+ }
50
+ return part;
51
+ };
52
+ for (const id of childDirs) {
53
+ const directory = join(root, id);
54
+ const files = await filesIn(directory, patterns);
55
+ if (files.length === 0) {
56
+ throw new Error(`Module "${id}" contains no matching typeDefs for "${patterns.join('", "')}"`);
57
+ }
58
+ const subdirs = (await readdir(directory, { withFileTypes: true }))
59
+ .filter((entry) => entry.isDirectory())
60
+ .map((entry) => entry.name)
61
+ .sort();
62
+ const features = [];
63
+ for (const name of subdirs) {
64
+ const own = await filesIn(join(directory, name), patterns);
65
+ if (own.length > 0)
66
+ features.push({ name, files: own });
67
+ }
68
+ const inFeature = new Set(features.flatMap((f) => f.files.map((file) => resolve(file))));
69
+ const rootFiles = files.filter((file) => !inFeature.has(resolve(file)));
70
+ modules.push({
71
+ id,
72
+ parts: [
73
+ await load(id, rootFiles),
74
+ ...(await Promise.all(features.map((f) => load(`${id}/${f.name}`, f.files))))
75
+ ],
76
+ features: features.map((f) => f.name)
77
+ });
78
+ }
79
+ return modules;
80
+ }
81
+ async function writeOutput(output, content, clear) {
82
+ const current = await readFile(output, "utf8").catch(() => undefined);
83
+ if (current === content)
84
+ return false;
85
+ if (clear)
86
+ await rm(output, { force: true });
87
+ await mkdir(dirname(output), { recursive: true });
88
+ await writeFile(output, content);
89
+ return true;
90
+ }
91
+ function rerunOnChange(targets, skip, run, log) {
92
+ let timer;
93
+ const changed = (path) => {
94
+ clearTimeout(timer);
95
+ timer = setTimeout(async () => {
96
+ log(`\n${cyan("↻")} ${shortPath(path)}`);
97
+ try {
98
+ await run();
99
+ }
100
+ catch (error) {
101
+ console.error(` ${red("✗")} ${error instanceof Error ? error.message : String(error)}`);
102
+ }
103
+ }, 50);
104
+ };
105
+ for (const { dir, recursive, only } of targets) {
106
+ fsWatch(dir, { recursive }, (_event, filename) => {
107
+ const path = filename ? join(dir, filename) : dir;
108
+ if (skip.has(path) || (only && path !== only))
109
+ return;
110
+ changed(path);
111
+ });
112
+ }
113
+ log(dim(`\n watching ${targets.map((t) => shortPath(t.only ?? t.dir)).join(", ")} for changes`));
114
+ return new Promise(() => {
115
+ });
116
+ }
117
+ function globBase(pattern) {
118
+ const parts = pattern.split("/");
119
+ const wild = parts.findIndex((part) => /[*?[{]/.test(part));
120
+ return wild === -1 ? dirname(pattern) : parts.slice(0, wild).join("/") || "/";
121
+ }
122
+ export async function codegen(options) {
123
+ const { typeDefs, directives = [], watch = false, clear = false } = options;
124
+ const { logs = true } = options;
125
+ const at = (path) => resolve(options.root ?? "", path);
126
+ const modulesDir = at(options.modules);
127
+ const output = at(options.output);
128
+ const schemaOutput = options.schemaOutput && at(options.schemaOutput);
129
+ const log = logs
130
+ ? (message) => {
131
+ console.log(message);
132
+ }
133
+ : (_message) => { };
134
+ const written = (path, changed, detail = "") => log(changed
135
+ ? ` ${green("✓")} ${shortPath(path)}${detail && ` ${dim(detail)}`}`
136
+ : ` ${dim("·")} ${shortPath(path)} ${dim("unchanged")}`);
137
+ const run = async () => {
138
+ const started = performance.now();
139
+ const modules = await discoverModules(modulesDir, typeDefs, (file) => log(row("skipped", dim(`${shortPath(file)} (empty)`))));
140
+ log(row("modules", modules
141
+ .map((m) => {
142
+ const files = m.parts.reduce((sum, p) => sum + p.files.length, 0);
143
+ const features = m.features.length
144
+ ? dim(` [${m.features.join(", ")}]`)
145
+ : "";
146
+ return `${m.id}${features} ${dim(count(files, "file"))}`;
147
+ })
148
+ .join(dim(" · "))));
149
+ if (directives.length > 0) {
150
+ log(row("directives", directives.map((d) => `@${d.name}`).join(" ")));
151
+ }
152
+ const codegenModules = modules.flatMap((m) => m.parts.map((p) => ({ id: p.id, typeDefs: p.typeDefs })));
153
+ const compiled = compile(codegenModules, { directives });
154
+ const types = Object.keys(compiled.schema.getTypeMap()).filter((name) => !name.startsWith("__") && !BUILTIN_SCALARS.has(name)).length;
155
+ written(output, await writeOutput(output, compiled.code, clear), `${count(types, "type")} · ${count(modules.length, "module")}`);
156
+ if (schemaOutput) {
157
+ written(schemaOutput, await writeOutput(schemaOutput, `${printSchema(compiled.schema)}\n`, clear));
158
+ }
159
+ log(dim(` done in ${Math.round(performance.now() - started)}ms`));
160
+ };
161
+ log(`${bold("@nxara/olio-codegen")} ${dim(watch ? "watch" : "generate")}`);
162
+ await run();
163
+ if (!watch)
164
+ return;
165
+ await rerunOnChange([{ dir: modulesDir, recursive: true }], new Set([output, ...(schemaOutput ? [schemaOutput] : [])]), run, log);
166
+ }
167
+ async function loadSchema(source, headers = {}) {
168
+ if (!/^https?:\/\//.test(source)) {
169
+ const document = await loadGraphQLFile(source);
170
+ if (!document)
171
+ throw new Error(`Schema file "${source}" is empty`);
172
+ return buildASTSchema(document);
173
+ }
174
+ const response = await fetch(source, {
175
+ method: "POST",
176
+ headers: {
177
+ "content-type": "application/json",
178
+ accept: "application/json",
179
+ ...headers
180
+ },
181
+ body: JSON.stringify({ query: getIntrospectionQuery() })
182
+ });
183
+ const body = (await response.json().catch(() => undefined));
184
+ if (!body?.data) {
185
+ const reason = body?.errors?.map((e) => e.message).join("; ") ??
186
+ `HTTP ${response.status}`;
187
+ throw new Error(`Couldn't introspect ${source}: ${reason}`);
188
+ }
189
+ return buildClientSchema(body.data);
190
+ }
191
+ async function loadDocuments(patterns) {
192
+ const files = await matchFiles([patterns].flat());
193
+ const documents = await Promise.all(files.map(loadGraphQLFile));
194
+ return documents.filter((d) => d !== undefined);
195
+ }
196
+ export async function codegenClient(options) {
197
+ const { logs = true, watch = false } = options;
198
+ const at = (path) => resolve(options.root ?? "", path);
199
+ const output = at(options.output);
200
+ const remote = /^https?:\/\//.test(options.schema);
201
+ const schema = remote ? options.schema : at(options.schema);
202
+ const documents = [options.documents].flat().map(at);
203
+ const log = logs
204
+ ? (message) => {
205
+ console.log(message);
206
+ }
207
+ : (_message) => { };
208
+ const run = async () => {
209
+ const loaded = await loadSchema(schema, options.headers);
210
+ const code = emitClient(loaded, await loadDocuments(documents));
211
+ const changed = await writeOutput(output, code, false);
212
+ log(` ${changed ? green("✓") : dim("·")} ${shortPath(output)}${changed ? "" : ` ${dim("unchanged")}`}`);
213
+ };
214
+ log(`${bold("@nxara/olio-codegen")} ${dim(watch ? "client watch" : "client")}`);
215
+ await run();
216
+ if (!watch)
217
+ return;
218
+ const targets = documents.map((pattern) => ({
219
+ dir: globBase(pattern),
220
+ recursive: true
221
+ }));
222
+ if (!remote)
223
+ targets.push({ dir: dirname(schema), recursive: false, only: schema });
224
+ await rerunOnChange(targets, new Set([output]), run, log);
225
+ }
226
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { codegen, codegenClient } from "./files.js";
2
+ export type { ClientCodegenOptions, CodegenOptions } from "./types.js";
3
+ export type { CustomEnums, CustomScalars, ResolveEnum, ResolveScalar, Scalars } from "./scalars.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACvE,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,aAAa,EACb,OAAO,EACR,MAAM,cAAc,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { codegen, codegenClient } from "./files.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}