@nxara/olio-codegen 0.0.0-stage → 0.1.0-rc.1

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.
Files changed (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +238 -2
  3. package/dist/codegen.d.ts +10 -0
  4. package/dist/codegen.d.ts.map +1 -0
  5. package/dist/codegen.js +77 -0
  6. package/dist/codegen.js.map +1 -0
  7. package/dist/emit-application.d.ts +4 -0
  8. package/dist/emit-application.d.ts.map +1 -0
  9. package/dist/emit-application.js +66 -0
  10. package/dist/emit-application.js.map +1 -0
  11. package/dist/emit-client.d.ts +3 -0
  12. package/dist/emit-client.d.ts.map +1 -0
  13. package/dist/emit-client.js +287 -0
  14. package/dist/emit-client.js.map +1 -0
  15. package/dist/emit-type.d.ts +8 -0
  16. package/dist/emit-type.d.ts.map +1 -0
  17. package/dist/emit-type.js +38 -0
  18. package/dist/emit-type.js.map +1 -0
  19. package/dist/emit-wiring.d.ts +9 -0
  20. package/dist/emit-wiring.d.ts.map +1 -0
  21. package/dist/emit-wiring.js +65 -0
  22. package/dist/emit-wiring.js.map +1 -0
  23. package/dist/files.d.ts +4 -0
  24. package/dist/files.d.ts.map +1 -0
  25. package/dist/files.js +226 -0
  26. package/dist/files.js.map +1 -0
  27. package/dist/index.d.ts +4 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/log.d.ts +9 -0
  32. package/dist/log.d.ts.map +1 -0
  33. package/dist/log.js +15 -0
  34. package/dist/log.js.map +1 -0
  35. package/dist/scalars.d.ts +41 -0
  36. package/dist/scalars.d.ts.map +1 -0
  37. package/dist/scalars.js +2 -0
  38. package/dist/scalars.js.map +1 -0
  39. package/dist/type-map.d.ts +5 -0
  40. package/dist/type-map.d.ts.map +1 -0
  41. package/dist/type-map.js +16 -0
  42. package/dist/type-map.js.map +1 -0
  43. package/dist/types.d.ts +34 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +16 -0
  46. package/dist/types.js.map +1 -0
  47. package/package.json +47 -4
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"}
package/dist/log.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export declare const bold: (text: string) => string;
2
+ export declare const dim: (text: string) => string;
3
+ export declare const red: (text: string) => string;
4
+ export declare const green: (text: string) => string;
5
+ export declare const cyan: (text: string) => string;
6
+ export declare function shortPath(path: string): string;
7
+ export declare const row: (label: string, value: string) => string;
8
+ export declare const count: (n: number, word: string) => string;
9
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,IAAI,SAHR,MAAM,KAAG,MAGU,CAAC;AAC7B,eAAO,MAAM,GAAG,SAJP,MAAM,KAAG,MAIS,CAAC;AAC5B,eAAO,MAAM,GAAG,SALP,MAAM,KAAG,MAKU,CAAC;AAC7B,eAAO,MAAM,KAAK,SANT,MAAM,KAAG,MAMY,CAAC;AAC/B,eAAO,MAAM,IAAI,SAPR,MAAM,KAAG,MAOW,CAAC;AAE9B,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,eAAO,MAAM,GAAG,UAAW,MAAM,SAAS,MAAM,KAAG,MACb,CAAC;AAEvC,eAAO,MAAM,KAAK,MAAO,MAAM,QAAQ,MAAM,KAAG,MACX,CAAC"}
package/dist/log.js ADDED
@@ -0,0 +1,15 @@
1
+ import { relative } from "node:path";
2
+ const color = process.stdout.isTTY === true && !("NO_COLOR" in process.env);
3
+ const paint = (code) => (text) => color ? `\u001B[${code}m${text}\u001B[0m` : text;
4
+ export const bold = paint(1);
5
+ export const dim = paint(2);
6
+ export const red = paint(31);
7
+ export const green = paint(32);
8
+ export const cyan = paint(36);
9
+ export function shortPath(path) {
10
+ const rel = relative(process.cwd(), path);
11
+ return rel.startsWith("..") ? path : rel;
12
+ }
13
+ export const row = (label, value) => ` ${dim(label.padEnd(11))}${value}`;
14
+ export const count = (n, word) => `${n} ${word}${n === 1 ? "" : "s"}`;
15
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5E,MAAM,KAAK,GACT,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,IAAY,EAAU,EAAE,CACvB,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AAE9B,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1C,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,KAAa,EAAU,EAAE,CAC1D,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;AAEvC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,IAAY,EAAU,EAAE,CACvD,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC"}
@@ -0,0 +1,41 @@
1
+ export interface Scalars {
2
+ ID: {
3
+ input: string;
4
+ output: string;
5
+ };
6
+ String: {
7
+ input: string;
8
+ output: string;
9
+ };
10
+ Int: {
11
+ input: number;
12
+ output: number;
13
+ };
14
+ Float: {
15
+ input: number;
16
+ output: number;
17
+ };
18
+ Boolean: {
19
+ input: boolean;
20
+ output: boolean;
21
+ };
22
+ }
23
+ export interface CustomScalars {
24
+ }
25
+ export type ResolveScalar<Name extends keyof CustomScalars | keyof Scalars | (string & {})> = Name extends keyof CustomScalars ? CustomScalars[Name] extends {
26
+ input: infer Input;
27
+ output: infer Output;
28
+ } ? {
29
+ input: Input;
30
+ output: Output;
31
+ } : {
32
+ input: CustomScalars[Name];
33
+ output: CustomScalars[Name];
34
+ } : Name extends keyof Scalars ? Scalars[Name] : {
35
+ input: unknown;
36
+ output: unknown;
37
+ };
38
+ export interface CustomEnums {
39
+ }
40
+ export type ResolveEnum<Name extends keyof CustomEnums | (string & {}), Names> = Name extends keyof CustomEnums ? CustomEnums[Name] : Names;
41
+ //# sourceMappingURL=scalars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../src/scalars.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,OAAO,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9C;AAGD,MAAM,WAAW,aAAa;CAAG;AAEjC,MAAM,MAAM,aAAa,CACvB,IAAI,SAAS,MAAM,aAAa,GAAG,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IAC9D,IAAI,SAAS,MAAM,aAAa,GAChC,aAAa,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,MAAM,CAAA;CAAE,GACtE;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;CAAE,GAC7D,IAAI,SAAS,MAAM,OAAO,GACxB,OAAO,CAAC,IAAI,CAAC,GACb;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAQ1C,MAAM,WAAW,WAAW;CAAG;AAE/B,MAAM,MAAM,WAAW,CACrB,IAAI,SAAS,MAAM,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC9C,KAAK,IACH,IAAI,SAAS,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=scalars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scalars.js","sourceRoot":"","sources":["../src/scalars.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { type GraphQLArgument, type GraphQLInputField, type GraphQLType } from "graphql";
2
+ export type ScalarDirection = "input" | "output";
3
+ export declare function typeToTS(type: GraphQLType, direction: ScalarDirection, nullable?: boolean): string;
4
+ export declare function inputMember(input: GraphQLArgument | GraphQLInputField): string;
5
+ //# sourceMappingURL=type-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-map.d.ts","sourceRoot":"","sources":["../src/type-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjD,wBAAgB,QAAQ,CACtB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,eAAe,EAC1B,QAAQ,UAAO,GACd,MAAM,CAQR;AAID,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,GAAG,iBAAiB,GACzC,MAAM,CAIR"}
@@ -0,0 +1,16 @@
1
+ import { isListType, isNonNullType, isScalarType } from "graphql";
2
+ export function typeToTS(type, direction, nullable = true) {
3
+ if (isNonNullType(type))
4
+ return typeToTS(type.ofType, direction, false);
5
+ const base = isListType(type)
6
+ ? `${typeToTS(type.ofType, direction)}[]`
7
+ : isScalarType(type)
8
+ ? `Scalars["${type.name}"]["${direction}"]`
9
+ : type.name;
10
+ return nullable ? `Maybe<${base}>` : base;
11
+ }
12
+ export function inputMember(input) {
13
+ const optional = !isNonNullType(input.type) && input.defaultValue === undefined;
14
+ return `${input.name}${optional ? "?" : ""}: ${typeToTS(input.type, "input")}`;
15
+ }
16
+ //# sourceMappingURL=type-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-map.js","sourceRoot":"","sources":["../src/type-map.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EAIb,MAAM,SAAS,CAAC;AAIjB,MAAM,UAAU,QAAQ,CACtB,IAAiB,EACjB,SAA0B,EAC1B,QAAQ,GAAG,IAAI;IAEf,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC3B,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI;QACzC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;YAClB,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,OAAO,SAAS,IAAI;YAC3C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAChB,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAID,MAAM,UAAU,WAAW,CACzB,KAA0C;IAE1C,MAAM,QAAQ,GACZ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC;IACjE,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;AACjF,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { TypeSource } from "@nxara/olio-core";
2
+ import type { SchemaDirective } from "@nxara/olio-schema";
3
+ export type { TypeSource };
4
+ export interface CodegenModule {
5
+ id: string;
6
+ typeDefs: TypeSource | readonly TypeSource[];
7
+ }
8
+ export interface GenerateOptions {
9
+ directives?: readonly SchemaDirective[];
10
+ }
11
+ export interface CodegenOptions {
12
+ root?: string;
13
+ modules: string;
14
+ typeDefs: string | string[];
15
+ output: string;
16
+ schemaOutput?: string;
17
+ watch?: boolean;
18
+ clear?: boolean;
19
+ directives?: readonly SchemaDirective[];
20
+ logs?: boolean;
21
+ }
22
+ export interface ClientCodegenOptions {
23
+ root?: string;
24
+ schema: string;
25
+ documents: string | string[];
26
+ output: string;
27
+ headers?: Record<string, string>;
28
+ watch?: boolean;
29
+ logs?: boolean;
30
+ }
31
+ export declare const BUILTIN_SCALARS: ReadonlySet<string>;
32
+ export declare const RESERVED_NAMES: ReadonlySet<string>;
33
+ export declare const HEADER = "// Generated by @nxara/olio-codegen - do not edit.\n// oxlint-disable no-redeclare";
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,GAAG,SAAS,UAAU,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAK7B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IAKnC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,CAAC;IAEf,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,CAM9C,CAAC;AAGH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAM7C,CAAC;AAEH,eAAO,MAAM,MAAM,uFACmE,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,16 @@
1
+ export const BUILTIN_SCALARS = new Set([
2
+ "ID",
3
+ "String",
4
+ "Int",
5
+ "Float",
6
+ "Boolean"
7
+ ]);
8
+ export const RESERVED_NAMES = new Set([
9
+ "Application",
10
+ "Maybe",
11
+ "ResolveEnum",
12
+ "ResolveScalar",
13
+ "Scalars"
14
+ ]);
15
+ export const HEADER = "// Generated by @nxara/olio-codegen - do not edit.\n// oxlint-disable no-redeclare";
16
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAmDA,MAAM,CAAC,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC;IAC1D,IAAI;IACJ,QAAQ;IACR,KAAK;IACL,OAAO;IACP,SAAS;CACV,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAwB,IAAI,GAAG,CAAC;IACzD,aAAa;IACb,OAAO;IACP,aAAa;IACb,eAAe;IACf,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GACjB,oFAAoF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,49 @@
1
1
  {
2
2
  "name": "@nxara/olio-codegen",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0-rc.1",
4
+ "description": "Generate TypeScript types from GraphQL SDL.",
5
+ "keywords": [
6
+ "codegen",
7
+ "graphql",
8
+ "nxara",
9
+ "typescript"
10
+ ],
11
+ "license": "MIT",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/nxara-hub/olio.git",
15
+ "directory": "packages/codegen"
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "type": "module",
21
+ "sideEffects": false,
22
+ "exports": {
23
+ ".": {
24
+ "types": "./dist/index.d.ts",
25
+ "default": "./dist/index.js"
26
+ }
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "scripts": {
32
+ "build": "tsc",
33
+ "test": "bun test",
34
+ "check-types": "tsc -p tsconfig.test.json"
35
+ },
36
+ "dependencies": {
37
+ "@nxara/olio-core": "0.1.0-rc.1",
38
+ "@nxara/olio-schema": "0.1.0-rc.1"
39
+ },
40
+ "devDependencies": {
41
+ "graphql": "^16.14.2"
42
+ },
43
+ "peerDependencies": {
44
+ "graphql": "^16.13.0"
45
+ },
46
+ "engines": {
47
+ "node": ">=22"
48
+ }
49
+ }