@baeta/plugin-graphql 2.0.0-next.10 → 2.0.0-next.12
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.
- package/CHANGELOG.md +8 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +77 -32
- package/dist/index.js.map +1 -1
- package/package.json +8 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @baeta/plugin-graphql
|
|
2
2
|
|
|
3
|
+
## 2.0.0-next.12
|
|
4
|
+
|
|
5
|
+
## 2.0.0-next.11
|
|
6
|
+
|
|
7
|
+
### Patch Changes
|
|
8
|
+
|
|
9
|
+
- [`ed81033`](https://github.com/andreisergiu98/baeta/commit/ed81033dc30b5a57f2358e4645ff3f717856cc21) Thanks [@andreisergiu98](https://github.com/andreisergiu98)! - Generate starter index.ts file for new modules
|
|
10
|
+
|
|
3
11
|
## 2.0.0-next.10
|
|
4
12
|
|
|
5
13
|
## 2.0.0-next.9
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as _baeta_generator_sdk0 from "@baeta/generator-sdk";
|
|
1
|
+
import * as _$_baeta_generator_sdk0 from "@baeta/generator-sdk";
|
|
2
2
|
|
|
3
3
|
//#region index.d.ts
|
|
4
|
-
declare function graphqlPlugin(): _baeta_generator_sdk0.GeneratorPluginV1<unknown>;
|
|
4
|
+
declare function graphqlPlugin(): _$_baeta_generator_sdk0.GeneratorPluginV1<unknown>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { graphqlPlugin };
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,6 @@ import { GraphQLFileLoader } from "@graphql-tools/graphql-file-loader";
|
|
|
5
5
|
import { loadSchema } from "@graphql-tools/load";
|
|
6
6
|
import { getDocumentNodeFromSchema } from "@graphql-tools/utils";
|
|
7
7
|
import { camelCase, pascalCase } from "change-case-all";
|
|
8
|
-
|
|
9
8
|
//#region utils/load.ts
|
|
10
9
|
async function loadSchema$1(schemas, cwd, extraLoaders = []) {
|
|
11
10
|
const schemaPointerMap = {};
|
|
@@ -27,12 +26,11 @@ async function loadSchema$1(schemas, cwd, extraLoaders = []) {
|
|
|
27
26
|
outputSchema: getDocumentNodeFromSchema(outputSchemaAst)
|
|
28
27
|
};
|
|
29
28
|
}
|
|
30
|
-
|
|
31
29
|
//#endregion
|
|
32
30
|
//#region utils/path.ts
|
|
33
31
|
const sep = "/";
|
|
34
32
|
function getRelativePath(filepath, basePath) {
|
|
35
|
-
const normalizedFilepath = normalize(filepath);
|
|
33
|
+
const normalizedFilepath = ensureStartsWithSeparator(ensureEndsWithSeparator(normalize(filepath)));
|
|
36
34
|
const normalizedBasePath = ensureStartsWithSeparator(ensureEndsWithSeparator(normalize(basePath)));
|
|
37
35
|
const [, relativePath] = normalizedFilepath.split(normalizedBasePath);
|
|
38
36
|
return relativePath;
|
|
@@ -41,13 +39,12 @@ function extractModuleDirectory(relativePath) {
|
|
|
41
39
|
const [moduleDirectory] = relativePath.split(sep);
|
|
42
40
|
return moduleDirectory;
|
|
43
41
|
}
|
|
44
|
-
function ensureStartsWithSeparator(path
|
|
45
|
-
return path
|
|
42
|
+
function ensureStartsWithSeparator(path) {
|
|
43
|
+
return path.startsWith(sep) ? path : sep + path;
|
|
46
44
|
}
|
|
47
|
-
function ensureEndsWithSeparator(path
|
|
48
|
-
return path
|
|
45
|
+
function ensureEndsWithSeparator(path) {
|
|
46
|
+
return path.endsWith(sep) ? path : path + sep;
|
|
49
47
|
}
|
|
50
|
-
|
|
51
48
|
//#endregion
|
|
52
49
|
//#region utils/source.ts
|
|
53
50
|
function groupSourcesByModule(sources, basePath) {
|
|
@@ -66,7 +63,6 @@ function groupSourcesByModule(sources, basePath) {
|
|
|
66
63
|
function getSourcesFromSchema(schema) {
|
|
67
64
|
return schema.extensions?.extendedSources ?? [];
|
|
68
65
|
}
|
|
69
|
-
|
|
70
66
|
//#endregion
|
|
71
67
|
//#region lib/printer/printer-autoload.ts
|
|
72
68
|
function printAutoload(config, modules) {
|
|
@@ -74,7 +70,7 @@ function printAutoload(config, modules) {
|
|
|
74
70
|
}
|
|
75
71
|
function printImports(config, modules) {
|
|
76
72
|
const dependencyImports = ["import type { ModuleCompilerFactory } from \"@baeta/core/sdk\";", `import type { Ctx, Info } from "./types${config.importExtension}"`];
|
|
77
|
-
const moduleTypeImports = modules.map((module) => `import type { BaetaModuleTypes as ${pascalCase(module)}ModuleTypes } from "./${module}
|
|
73
|
+
const moduleTypeImports = modules.map((module) => `import type { BaetaModuleTypes as ${pascalCase(module)}ModuleTypes } from "./${module}/${config.moduleDefinitionName}${config.importExtension}"`);
|
|
78
74
|
const moduleImports = modules.flatMap((module) => `import ${camelCase(module)} from "./${module}/index${config.importExtension}"`);
|
|
79
75
|
return [
|
|
80
76
|
...dependencyImports,
|
|
@@ -88,7 +84,6 @@ function printExport(modules) {
|
|
|
88
84
|
function printModuleWithSatisfies(module) {
|
|
89
85
|
return ` ${camelCase(module)} satisfies ModuleCompilerFactory<Ctx, Info, ${pascalCase(module)}ModuleTypes["Factories"]>`;
|
|
90
86
|
}
|
|
91
|
-
|
|
92
87
|
//#endregion
|
|
93
88
|
//#region lib/printer/printer-utils.ts
|
|
94
89
|
function buildBlock({ name, lines }) {
|
|
@@ -118,9 +113,18 @@ function makeRelativePathForImport(from, to) {
|
|
|
118
113
|
if (res.startsWith(".") || res.startsWith("/")) return res;
|
|
119
114
|
return `./${res}`;
|
|
120
115
|
}
|
|
121
|
-
|
|
122
116
|
//#endregion
|
|
123
117
|
//#region lib/printer/printer-module.ts
|
|
118
|
+
function printModuleIndexStarter(config, moduleName) {
|
|
119
|
+
const typeEntries = Object.entries(config.registry.picks.objects);
|
|
120
|
+
const types = typeEntries.map(([typeName]) => typeName);
|
|
121
|
+
return [
|
|
122
|
+
printModuleIndexImports(config, moduleName),
|
|
123
|
+
printModuleIndexDestructuredTypes(moduleName, types),
|
|
124
|
+
...typeEntries.map(([typeName, fields]) => printModuleIndexType(typeName, fields)),
|
|
125
|
+
printModuleIndexSchema(moduleName, types, config.registry.defined.scalars)
|
|
126
|
+
].filter((el) => el != null).join("\n\n");
|
|
127
|
+
}
|
|
124
128
|
function printModuleImports(config, moduleName) {
|
|
125
129
|
const typesDir = makeRelativePathForImport(join(config.modulesDir, moduleName), config.typesDir);
|
|
126
130
|
return [
|
|
@@ -153,6 +157,39 @@ function printBaetaModuleTypes(config) {
|
|
|
153
157
|
})]
|
|
154
158
|
});
|
|
155
159
|
}
|
|
160
|
+
function printModuleIndexDestructuredTypes(moduleName, types) {
|
|
161
|
+
return `const { ${types.join(", ")} } = ${pascalCase(moduleName)}Module;`;
|
|
162
|
+
}
|
|
163
|
+
function printModuleIndexImports(config, moduleName) {
|
|
164
|
+
const hasScalars = config.registry.defined.scalars.length > 0;
|
|
165
|
+
const moduleImport = `import { ${pascalCase(moduleName)}Module } from "./${config.moduleDefinitionName}${config.importExtension}";`;
|
|
166
|
+
if (!hasScalars) return moduleImport;
|
|
167
|
+
return [`import { GraphQLScalarType } from "graphql";`, moduleImport].join("\n");
|
|
168
|
+
}
|
|
169
|
+
function printModuleIndexSchema(moduleName, types, scalars) {
|
|
170
|
+
const printedTypes = [...types.map((typeName) => `${typeName}: ${typeName}Resolver,`), ...scalars.map((scalarName) => `${scalarName}: new GraphQLScalarType({ name: '${scalarName}' }),`)].map(indent(2)).join("\n");
|
|
171
|
+
return `export default ${pascalCase(moduleName)}Module.$schema({
|
|
172
|
+
${printedTypes}
|
|
173
|
+
});`;
|
|
174
|
+
}
|
|
175
|
+
function printModuleIndexType(typeName, fields) {
|
|
176
|
+
return `const ${typeName}Resolver = ${typeName}.$fields({
|
|
177
|
+
${fields.map((fieldName) => printModuleIndexTypeField(typeName, fieldName)).map(indent(2)).join("\n")}
|
|
178
|
+
});`;
|
|
179
|
+
}
|
|
180
|
+
function printModuleIndexTypeField(typeName, fieldName) {
|
|
181
|
+
if (typeName === "Query" || typeName === "Mutation") return `${fieldName}: ${typeName}.${fieldName}.resolve((params) => {
|
|
182
|
+
// Implement resolver logic here
|
|
183
|
+
}),`;
|
|
184
|
+
if (typeName === "Subscription") return `${fieldName}: ${typeName}.${fieldName}
|
|
185
|
+
.subscribe((params) => {
|
|
186
|
+
// Implement subscribe logic here
|
|
187
|
+
})
|
|
188
|
+
.resolve((params) => {
|
|
189
|
+
// Implement resolver logic here
|
|
190
|
+
}),`;
|
|
191
|
+
return `${fieldName}: ${typeName}.${fieldName}.key('${fieldName}'),`;
|
|
192
|
+
}
|
|
156
193
|
function printBaetaModuleTypesForFields(config, isFactory) {
|
|
157
194
|
return config.registry.defined.objects.map((typeName) => printObjectTypeModuleType(typeName, config.registry.picks.objects, isFactory)).filter(Boolean);
|
|
158
195
|
}
|
|
@@ -265,7 +302,6 @@ function getInfoType() {
|
|
|
265
302
|
function getExtensionsVar() {
|
|
266
303
|
return "extensions";
|
|
267
304
|
}
|
|
268
|
-
|
|
269
305
|
//#endregion
|
|
270
306
|
//#region lib/printer/printer-templates.ts
|
|
271
307
|
function printTypesTemplate(options) {
|
|
@@ -287,13 +323,11 @@ function printExtensionsTemplate() {
|
|
|
287
323
|
export default createExtensions({});
|
|
288
324
|
`;
|
|
289
325
|
}
|
|
290
|
-
|
|
291
326
|
//#endregion
|
|
292
327
|
//#region utils/scalar.ts
|
|
293
328
|
function isScalarType(definitionsMap, defaultScalars, type) {
|
|
294
329
|
return definitionsMap.scalarTypeMap.has(type.name.value) || defaultScalars.includes(type.name.value);
|
|
295
330
|
}
|
|
296
|
-
|
|
297
331
|
//#endregion
|
|
298
332
|
//#region lib/printer/printer-types.ts
|
|
299
333
|
function printUtilityTypes() {
|
|
@@ -368,7 +402,7 @@ function printUnionTypesFromMap(config, map) {
|
|
|
368
402
|
return [...map.values()].map((type) => printUnionType(config, type));
|
|
369
403
|
}
|
|
370
404
|
function printUnionType(config, type) {
|
|
371
|
-
const types = type.types?.map((type
|
|
405
|
+
const types = type.types?.map((type) => printNamedTypeForUnion(config, type));
|
|
372
406
|
return `export type ${type.name.value} = ${types?.join(" | ") || "never"}`;
|
|
373
407
|
}
|
|
374
408
|
function printNamedTypeForUnion(config, type) {
|
|
@@ -433,7 +467,6 @@ function printOptionalMarker(config, type) {
|
|
|
433
467
|
function printOrObjectType(type, fields) {
|
|
434
468
|
return `BaetaUtility.Or<BaetaOverrides.ObjectTypes["${type.name.value}"], {\n${fields?.map(indent(2)).join("\n") ?? ""}\n}>`;
|
|
435
469
|
}
|
|
436
|
-
|
|
437
470
|
//#endregion
|
|
438
471
|
//#region lib/visitors/definitions-map.ts
|
|
439
472
|
function createRegistry() {
|
|
@@ -489,7 +522,6 @@ function collectTypesFromDocument(document, registry, filterObjectTypes = []) {
|
|
|
489
522
|
}
|
|
490
523
|
});
|
|
491
524
|
}
|
|
492
|
-
|
|
493
525
|
//#endregion
|
|
494
526
|
//#region lib/visitors/field-info.ts
|
|
495
527
|
function createFieldInfoMap(definitionsMap, defaultScalars) {
|
|
@@ -521,7 +553,6 @@ function printNamedType(definitionsMap, defaultScalars, type, nullable = true) {
|
|
|
521
553
|
default: return type;
|
|
522
554
|
}
|
|
523
555
|
}
|
|
524
|
-
|
|
525
556
|
//#endregion
|
|
526
557
|
//#region lib/visitors/module-registry.ts
|
|
527
558
|
const registryKeys = [
|
|
@@ -581,10 +612,9 @@ function createObject(keys, valueFn) {
|
|
|
581
612
|
for (const key of keys) obj[key] = valueFn(key);
|
|
582
613
|
return obj;
|
|
583
614
|
}
|
|
584
|
-
|
|
585
615
|
//#endregion
|
|
586
616
|
//#region lib/codegen.ts
|
|
587
|
-
async function generate(options) {
|
|
617
|
+
async function generate(options, currentFiles) {
|
|
588
618
|
const { outputSchema, outputSchemaAst } = await loadSchema$1(options.schemas, options.cwd, options.loaders);
|
|
589
619
|
const sources = getSourcesFromSchema(outputSchemaAst);
|
|
590
620
|
const sourcesByModule = groupSourcesByModule(sources, options.modulesDir);
|
|
@@ -638,7 +668,10 @@ async function generate(options) {
|
|
|
638
668
|
},
|
|
639
669
|
{
|
|
640
670
|
filename: join(options.modulesDir, "index.ts"),
|
|
641
|
-
content: printAutoload({
|
|
671
|
+
content: printAutoload({
|
|
672
|
+
importExtension: options.importExtension,
|
|
673
|
+
moduleDefinitionName: options.moduleDefinitionName
|
|
674
|
+
}, modules)
|
|
642
675
|
},
|
|
643
676
|
{
|
|
644
677
|
filename: join(options.modulesDir, "types.ts"),
|
|
@@ -671,27 +704,39 @@ async function generate(options) {
|
|
|
671
704
|
const documents = sourcesByModule.get(module)?.map((s) => s.document).filter((el) => el != null) ?? [];
|
|
672
705
|
if (documents.length === 0) continue;
|
|
673
706
|
const document = concatAST(documents);
|
|
674
|
-
const config
|
|
707
|
+
const config = {
|
|
675
708
|
typesDir: options.typesDir,
|
|
676
709
|
fieldInfo,
|
|
677
710
|
importExtension: options.importExtension,
|
|
678
711
|
modulesDir: options.modulesDir,
|
|
679
|
-
registry: createModuleRegistry(document)
|
|
712
|
+
registry: createModuleRegistry(document),
|
|
713
|
+
moduleDefinitionName: options.moduleDefinitionName
|
|
680
714
|
};
|
|
681
715
|
files.push({
|
|
682
|
-
filename: join(options.modulesDir, `/${module}/${options.moduleDefinitionName}`),
|
|
716
|
+
filename: join(options.modulesDir, `/${module}/${options.moduleDefinitionName}.ts`),
|
|
683
717
|
content: [
|
|
684
|
-
printModuleImports(config
|
|
718
|
+
printModuleImports(config, module),
|
|
685
719
|
printModuleMetadata(module, document),
|
|
686
|
-
printBaetaModuleTypes(config
|
|
687
|
-
printModuleObjectTypeFields(config
|
|
688
|
-
printModuleBuilder(config
|
|
720
|
+
printBaetaModuleTypes(config),
|
|
721
|
+
printModuleObjectTypeFields(config),
|
|
722
|
+
printModuleBuilder(config, module)
|
|
689
723
|
].join("\n\n")
|
|
690
724
|
});
|
|
725
|
+
const moduleStarterPath = join(options.modulesDir, `/${module}/index.ts`);
|
|
726
|
+
if (!currentFiles.some((file) => file.filename === moduleStarterPath)) files.push({
|
|
727
|
+
filename: join(options.modulesDir, `/${module}/index.ts`),
|
|
728
|
+
content: printModuleIndexStarter(config, module),
|
|
729
|
+
options: {
|
|
730
|
+
disableOverwrite: true,
|
|
731
|
+
disableBiomeV1Header: true,
|
|
732
|
+
disableBiomeV2Header: true,
|
|
733
|
+
disableEslintHeader: true,
|
|
734
|
+
disableGenerationNoticeHeader: true
|
|
735
|
+
}
|
|
736
|
+
});
|
|
691
737
|
}
|
|
692
738
|
return files;
|
|
693
739
|
}
|
|
694
|
-
|
|
695
740
|
//#endregion
|
|
696
741
|
//#region index.ts
|
|
697
742
|
function graphqlPlugin() {
|
|
@@ -706,13 +751,13 @@ function graphqlPlugin() {
|
|
|
706
751
|
watcher.on("delete", handleChange);
|
|
707
752
|
},
|
|
708
753
|
generate: async (ctx, next) => {
|
|
709
|
-
const items = await generate(ctx.generatorOptions);
|
|
754
|
+
const items = await generate(ctx.generatorOptions, ctx.fileManager.files);
|
|
710
755
|
for (const item of items) ctx.fileManager.createAndAdd(item.filename, item.content, "graphql", item.options);
|
|
711
756
|
return next();
|
|
712
757
|
}
|
|
713
758
|
});
|
|
714
759
|
}
|
|
715
|
-
|
|
716
760
|
//#endregion
|
|
717
761
|
export { graphqlPlugin };
|
|
762
|
+
|
|
718
763
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["loadSchema","schemaPointerMap: UnnormalizedTypeDefPointer","loadSchemaToolkit","path","defaultScalarTypes: Record<string, string | undefined>","type","printNamedType","map: FieldInfoMap","registryKeys: RegistryKeys[]","picks: Record<RegistryKeys, Record<string, string[]>>","defined: Registry","obj: Record<K, T>","loadSchema","config: PrinterConfig","files: GeneratedFile[]","config: ModulePrinterConfig","config"],"sources":["../utils/load.ts","../utils/path.ts","../utils/source.ts","../lib/printer/printer-autoload.ts","../lib/printer/printer-utils.ts","../lib/printer/printer-module.ts","../lib/printer/printer-templates.ts","../utils/scalar.ts","../lib/printer/printer-types.ts","../lib/visitors/definitions-map.ts","../lib/visitors/field-info.ts","../lib/visitors/module-registry.ts","../lib/codegen.ts","../index.ts"],"sourcesContent":["import { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader';\nimport {\n\tloadSchema as loadSchemaToolkit,\n\ttype UnnormalizedTypeDefPointer,\n} from '@graphql-tools/load';\nimport {\n\ttype BaseLoaderOptions,\n\tgetDocumentNodeFromSchema,\n\ttype Loader,\n} from '@graphql-tools/utils';\nimport { validateSchema } from 'graphql';\n\nexport async function loadSchema(\n\tschemas: string | string[],\n\tcwd: string,\n\textraLoaders: Loader<BaseLoaderOptions>[] = [],\n) {\n\tconst schemaPointerMap: UnnormalizedTypeDefPointer = {};\n\tfor (const ptr of Array.isArray(schemas) ? schemas : [schemas]) {\n\t\tschemaPointerMap[ptr] = {};\n\t}\n\n\tconst outputSchemaAst = await loadSchemaToolkit(schemaPointerMap, {\n\t\tloaders: [new GraphQLFileLoader(), ...extraLoaders],\n\t\tcwd,\n\t\tincludeSources: true,\n\t});\n\n\tconst errors = validateSchema(outputSchemaAst);\n\n\tif (errors.length > 0) {\n\t\tconst messages = errors.map((e) => e.toString()).join('\\n\\n--------------------\\n\\n');\n\t\tconst subject = errors.length === 1 ? 'error' : 'errors';\n\t\tthrow new Error(`Invalid schema. Found ${errors.length} ${subject}:\\n\\n${messages}`);\n\t}\n\n\tif (!outputSchemaAst.extensions) {\n\t\toutputSchemaAst.extensions = {};\n\t}\n\n\treturn {\n\t\toutputSchemaAst,\n\t\toutputSchema: getDocumentNodeFromSchema(outputSchemaAst),\n\t};\n}\n","import path, { normalize } from '@baeta/util-path';\n\nconst sep = '/';\n\nexport function fixPath(root: string, toFix: string) {\n\treturn path.resolve(path.relative(root, toFix));\n}\n\nexport function getRelativePath(filepath: string, basePath: string) {\n\tconst normalizedFilepath = normalize(filepath);\n\tconst normalizedBasePath = ensureStartsWithSeparator(\n\t\tensureEndsWithSeparator(normalize(basePath)),\n\t);\n\tconst [, relativePath] = normalizedFilepath.split(normalizedBasePath);\n\treturn relativePath;\n}\n\nexport function extractModuleDirectory(relativePath: string): string {\n\tconst [moduleDirectory] = relativePath.split(sep);\n\treturn moduleDirectory;\n}\n\nfunction ensureStartsWithSeparator(path: string) {\n\treturn path.startsWith(sep) ? path : sep + path;\n}\n\nfunction ensureEndsWithSeparator(path: string) {\n\treturn path.endsWith(sep) ? path : path + sep;\n}\n","import type { Source } from '@graphql-tools/utils';\nimport type { GraphQLSchema } from 'graphql';\nimport { extractModuleDirectory, getRelativePath } from './path.ts';\n\nexport function groupSourcesByModule(sources: Source[], basePath: string) {\n\tconst map = new Map<string, Source[]>();\n\tfor (const source of sources) {\n\t\tif (!source.location) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst relativePath = getRelativePath(source.location, basePath);\n\t\tif (!relativePath) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst mod = extractModuleDirectory(relativePath);\n\t\tconst existing = map.get(mod) ?? [];\n\t\texisting.push(source);\n\t\tmap.set(mod, existing);\n\t}\n\treturn map;\n}\n\nexport function getSourcesFromSchema(schema: GraphQLSchema) {\n\tconst extensions = schema.extensions;\n\treturn (extensions?.extendedSources ?? []) as Source[];\n}\n","import { camelCase, pascalCase } from 'change-case-all';\n\ninterface AutoloadPrinterConfig {\n\timportExtension: '.ts' | '.js' | '';\n}\n\nexport function printAutoload(config: AutoloadPrinterConfig, modules: string[]) {\n\treturn [printImports(config, modules), printExport(modules)].join('\\n\\n');\n}\n\nfunction printImports(config: AutoloadPrinterConfig, modules: string[]) {\n\tconst dependencyImports = [\n\t\t'import type { ModuleCompilerFactory } from \"@baeta/core/sdk\";',\n\t\t`import type { Ctx, Info } from \"./types${config.importExtension}\"`,\n\t];\n\tconst moduleTypeImports = modules.map(\n\t\t(module) =>\n\t\t\t`import type { BaetaModuleTypes as ${pascalCase(module)}ModuleTypes } from \"./${module}/typedef${config.importExtension}\"`,\n\t);\n\tconst moduleImports = modules.flatMap(\n\t\t(module) => `import ${camelCase(module)} from \"./${module}/index${config.importExtension}\"`,\n\t);\n\treturn [...dependencyImports, ...moduleTypeImports, ...moduleImports].join('\\n');\n}\n\nfunction printExport(modules: string[]) {\n\treturn `export default [\\n${modules.map(printModuleWithSatisfies).join(',\\n')}\\n];`;\n}\n\nfunction printModuleWithSatisfies(module: string) {\n\treturn ` ${camelCase(module)} satisfies ModuleCompilerFactory<Ctx, Info, ${pascalCase(module)}ModuleTypes[\"Factories\"]>`;\n}\n","import { posixPath, relative } from '@baeta/util-path';\n\nexport function buildBlock({ name, lines }: { name: string; lines: string[] }): string {\n\treturn [`${name} {`, ...lines.filter(Boolean).map(indent(2)), '};'].join('\\n');\n}\n\nexport function buildCodeBlock({ name, lines }: { name: string; lines: string[] }) {\n\tconst linesWithSep = lines.filter(Boolean).map(indent(2)).join(',\\n');\n\treturn [`${name} {`, linesWithSep, '}'].join('\\n');\n}\n\nexport function indent(size: number) {\n\tconst space = new Array(size).fill(' ').join('');\n\tfunction indentInner(val: string): string {\n\t\treturn val\n\t\t\t.split('\\n')\n\t\t\t.map((line) => `${space}${line}`)\n\t\t\t.join('\\n');\n\t}\n\treturn indentInner;\n}\n\nexport function unique<T>(val: T, i: number, all: T[]): boolean {\n\treturn i === all.indexOf(val);\n}\n\nexport function makeRelativePathForImport(from: string, to: string) {\n\tconst res = posixPath(relative(from, to));\n\tif (res.startsWith('.') || res.startsWith('/')) {\n\t\treturn res;\n\t}\n\treturn `./${res}`;\n}\n","import { join } from '@baeta/util-path';\nimport { pascalCase } from 'change-case-all';\nimport type { DocumentNode } from 'graphql';\nimport type { FieldInfoMap } from '../visitors/field-info.ts';\nimport type { ModuleRegistry } from '../visitors/module-registry.ts';\nimport { buildBlock, buildCodeBlock, makeRelativePathForImport } from './printer-utils.ts';\n\nexport interface ModulePrinterConfig {\n\tregistry: ModuleRegistry;\n\tfieldInfo: FieldInfoMap;\n\ttypesDir: string;\n\tmodulesDir: string;\n\timportExtension: '.ts' | '.js' | '';\n}\n\nexport function printModuleImports(config: ModulePrinterConfig, moduleName: string) {\n\tconst typesDir = makeRelativePathForImport(join(config.modulesDir, moduleName), config.typesDir);\n\treturn [\n\t\t'import type { DocumentNode, GraphQLScalarType } from \"graphql\";',\n\t\t'import * as Baeta from \"@baeta/core/sdk\";',\n\t\t`import extensions from \"../extensions${config.importExtension}\";`,\n\t\t`import type {Ctx, Info} from \"../types${config.importExtension}\";`,\n\t\t`import type * as Types from \"${typesDir}/types${config.importExtension}\";`,\n\t].join('\\n');\n}\n\nexport function printModuleMetadata(name: string, doc: DocumentNode) {\n\treturn buildCodeBlock({\n\t\tname: 'const moduleMetadata =',\n\t\tlines: [\n\t\t\t`id: '${name}'`,\n\t\t\t`dirname: './${name}'`,\n\t\t\t`typedef: ${JSON.stringify(doc)} as unknown as DocumentNode`,\n\t\t],\n\t});\n}\n\nexport function printBaetaModuleTypes(config: ModulePrinterConfig) {\n\treturn buildBlock({\n\t\tname: 'export interface BaetaModuleTypes',\n\t\tlines: [\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Builders:',\n\t\t\t\tlines: printBaetaModuleTypesForFields(config, false),\n\t\t\t}),\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Factories:',\n\t\t\t\tlines: [\n\t\t\t\t\t...printBaetaModuleTypesForFields(config, true),\n\t\t\t\t\t...printBaetaModuleTypesScalars(config),\n\t\t\t\t],\n\t\t\t}),\n\t\t],\n\t});\n}\n\nfunction printBaetaModuleTypesForFields(config: ModulePrinterConfig, isFactory: boolean) {\n\treturn config.registry.defined.objects\n\t\t.map((typeName) =>\n\t\t\tprintObjectTypeModuleType(typeName, config.registry.picks.objects, isFactory),\n\t\t)\n\t\t.filter(Boolean);\n}\n\nfunction printObjectTypeModuleType(\n\ttypeName: string,\n\tobjects: Record<string, string[] | undefined>,\n\tisFactory: boolean,\n) {\n\tconst object = objects[typeName];\n\tif (!object) {\n\t\treturn '';\n\t}\n\tconst parentType = getParentType(typeName);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tif (isFactory) {\n\t\treturn `${typeName}: Baeta.TypeCompilerFactory<${parentType}, ${contextType}, ${infoType}, BaetaModuleObjectTypeFields['${typeName}']['Factory']>`;\n\t}\n\treturn `${typeName}: Baeta.TypeMethods<${parentType}, ${contextType}, ${infoType}, BaetaModuleObjectTypeFields['${typeName}']['Builder'], BaetaModuleObjectTypeFields['${typeName}']['Factory']>`;\n}\n\nfunction printBaetaModuleTypesScalars(config: ModulePrinterConfig) {\n\treturn config.registry.defined.scalars.map((scalar) => `${scalar}: GraphQLScalarType`);\n}\n\nexport function printModuleObjectTypeFields(config: ModulePrinterConfig) {\n\tconst objects = config.registry.defined.objects\n\t\t.map((typeName) => printObjectTypeFields(config, typeName, config.registry.picks.objects))\n\t\t.filter(Boolean);\n\treturn buildBlock({\n\t\tname: 'interface BaetaModuleObjectTypeFields',\n\t\tlines: objects,\n\t});\n}\n\nfunction printObjectTypeFields(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tobjects: Record<string, string[] | undefined>,\n) {\n\tconst fields = objects[typeName];\n\tif (!fields || fields.length === 0) {\n\t\treturn '';\n\t}\n\tconst fieldsBuilders = fields.map((field) =>\n\t\tprintObjectTypeFieldBuilders(config, typeName, field),\n\t);\n\tconst fieldsFactories = fields.map((field) =>\n\t\tprintObjectTypeFieldFactories(config, typeName, field),\n\t);\n\treturn buildBlock({\n\t\tname: `${typeName}:`,\n\t\tlines: [\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Builder:',\n\t\t\t\tlines: fieldsBuilders,\n\t\t\t}),\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Factory:',\n\t\t\t\tlines: fieldsFactories,\n\t\t\t}),\n\t\t],\n\t});\n}\n\nfunction printObjectTypeFieldBuilders(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tfield: string,\n) {\n\tconst parentType = getParentType(typeName);\n\tconst resultType = getResultType(config, typeName, field);\n\tconst argumentsType = getArgsType(config, typeName, field);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tconst namespace = typeName === 'Subscription' ? 'SubscriptionMethods' : 'FieldMethods';\n\treturn `${field}: Baeta.${namespace}<${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}>`;\n}\n\nfunction printObjectTypeFieldFactories(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tfield: string,\n) {\n\tconst parentType = getParentType(typeName);\n\tconst resultType = getResultType(config, typeName, field);\n\tconst argumentsType = getArgsType(config, typeName, field);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tconst namespace = typeName === 'Subscription' ? 'SubscriptionField' : 'Field';\n\treturn `${field}: Baeta.${namespace}<${resultType}, ${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}>`;\n}\n\nexport function printModuleBuilder(config: ModulePrinterConfig, moduleName: string) {\n\tconst objectTypes = config.registry.defined.objects\n\t\t.map((typeName) => printObjectTypeBuilder(typeName, config.registry.picks.objects))\n\t\t.filter(Boolean);\n\tconst builders = buildCodeBlock({\n\t\tname: '',\n\t\tlines: objectTypes,\n\t});\n\tconst typeNameResolvers = buildCodeBlock({\n\t\tname: '',\n\t\tlines: [...config.registry.defined.unions, ...config.registry.defined.interfaces].map(\n\t\t\t(name) => `${name}: ${printTypeNameResolver()}`,\n\t\t),\n\t});\n\tconst infoType = getInfoType();\n\tconst contextType = getContextType();\n\treturn [\n\t\t`export const ${pascalCase(moduleName)}Module = Baeta.createModuleBuilder<${contextType}, ${infoType}, BaetaModuleTypes['Builders'], BaetaModuleTypes['Factories']>(moduleMetadata.id, moduleMetadata.typedef,`,\n\t\tbuilders,\n\t\t',',\n\t\ttypeNameResolvers,\n\t\t`, ${getExtensionsVar()});`,\n\t].join('');\n}\n\nfunction printObjectTypeBuilder(typeName: string, objects: Record<string, string[] | undefined>) {\n\tconst fields = objects[typeName]?.map((field) => printObjectTypeFieldBuilder(typeName, field));\n\tif (fields == null || fields.length === 0) {\n\t\treturn '';\n\t}\n\tconst content = buildCodeBlock({\n\t\tname: '',\n\t\tlines: fields,\n\t});\n\treturn `${typeName}: Baeta.createTypeBuilder(\"${typeName}\",${content}, ${getExtensionsVar()})`;\n}\n\nfunction printTypeNameResolver() {\n\treturn '{ __resolveType: (source: {__typename: string}) => { return source.__typename; }}';\n}\n\nfunction getParentType(type: string) {\n\tif (['Query', 'Mutation', 'Subscription'].includes(type)) {\n\t\treturn '{}';\n\t}\n\treturn `Types.${type}`;\n}\n\nfunction getResultType(config: ModulePrinterConfig, type: string, field: string) {\n\tconst fieldType = config.fieldInfo.get(type)?.get(field)?.type;\n\tif (fieldType == null) {\n\t\treturn '{}';\n\t}\n\treturn fieldType;\n}\n\nfunction getArgsType(config: ModulePrinterConfig, type: string, field: string) {\n\tconst hasArgs = config.fieldInfo.get(type)?.get(field)?.hasArguments ?? false;\n\tif (!hasArgs) {\n\t\treturn '{}';\n\t}\n\tconst fieldUpper = field[0].toUpperCase() + field.slice(1);\n\treturn `Types.${type}${fieldUpper}Args`;\n}\n\nfunction printObjectTypeFieldBuilder(typeName: string, field: string) {\n\tif (typeName === 'Subscription') {\n\t\treturn `${field}: Baeta.createSubscriptionBuilder(\"${field}\", ${getExtensionsVar()})`;\n\t}\n\treturn `${field}: Baeta.createFieldBuilder(\"${typeName}\", \"${field}\", ${getExtensionsVar()})`;\n}\n\nfunction getContextType() {\n\treturn 'Ctx';\n}\n\nfunction getInfoType() {\n\treturn 'Info';\n}\n\nfunction getExtensionsVar() {\n\treturn 'extensions';\n}\n","import { makeRelativePathForImport } from './printer-utils.ts';\n\nexport function printTypesTemplate(options: {\n\timportExtension: '.js' | '.ts' | '';\n\ttypesDir: string;\n\tmodulesDir: string;\n}) {\n\tconst importDir = makeRelativePathForImport(options.modulesDir, options.typesDir);\n\n\treturn `import type { GraphQLResolveInfo } from 'graphql';\nimport type { BaseObjectTypes, BaseScalars } from '${importDir}/utility${options.importExtension}';\n\nexport interface Scalars extends BaseScalars {}\n\nexport interface ObjectTypes extends BaseObjectTypes {}\n\nexport type Ctx = {};\n\nexport type Info = GraphQLResolveInfo;\n`;\n}\n\nexport function printExtensionsTemplate() {\n\treturn `import { createExtensions } from '@baeta/core';\n\nexport default createExtensions({});\n`;\n}\n","import type { NamedTypeNode } from 'graphql';\nimport type { DefinitionsMap } from '../lib/visitors/definitions-map.ts';\n\nexport function isScalarType(\n\tdefinitionsMap: DefinitionsMap,\n\tdefaultScalars: string[],\n\ttype: NamedTypeNode,\n): boolean {\n\treturn (\n\t\tdefinitionsMap.scalarTypeMap.has(type.name.value) || defaultScalars.includes(type.name.value)\n\t);\n}\n","import { pascalCase } from 'change-case-all';\nimport {\n\ttype EnumTypeDefinitionNode,\n\ttype FieldDefinitionNode,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InputValueDefinitionNode,\n\ttype InterfaceTypeDefinitionNode,\n\tKind,\n\ttype ListTypeNode,\n\ttype NamedTypeNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype TypeNode,\n\ttype UnionTypeDefinitionNode,\n} from 'graphql';\nimport { isScalarType } from '../../utils/scalar.ts';\nimport type { DefinitionsMap } from '../visitors/definitions-map.ts';\nimport { buildBlock, indent, makeRelativePathForImport } from './printer-utils.ts';\n\nexport interface PrinterConfig {\n\tglobalDefinitions: DefinitionsMap;\n\twithMaybe: boolean;\n\twithOptional: boolean;\n\tdefaultScalars: string[];\n\timportExtension: '.ts' | '.js' | '';\n\ttypesDir: string;\n\tmodulesDir: string;\n}\n\nexport function printUtilityTypes(): string {\n\treturn [\n\t\t'export type Or<A, B> = void extends A ? B : A;',\n\t\t'export type Maybe<T> = T | null;',\n\t].join('\\n\\n');\n}\n\nconst defaultScalarTypes: Record<string, string | undefined> = {\n\tID: 'string',\n\tString: 'string',\n\tBoolean: 'boolean',\n\tInt: 'number',\n\tFloat: 'number',\n};\n\nexport function printBaseScalars(config: PrinterConfig): string {\n\tconst defaultScalars = config.defaultScalars\n\t\t.map((scalar) => {\n\t\t\tconst type = defaultScalarTypes[scalar];\n\t\t\tif (type == null) return null;\n\t\t\treturn `${scalar}: ${type};`;\n\t\t})\n\t\t.filter((el) => el != null);\n\tconst customScalars = [...config.globalDefinitions.scalarTypeMap.values()].map(\n\t\t(scalar) => `${scalar.name.value}: unknown;`,\n\t);\n\n\treturn buildBlock({\n\t\tname: 'export type BaseScalars =',\n\t\tlines: [...defaultScalars, ...customScalars],\n\t});\n}\n\nexport function printBaseObjectTypes(config: PrinterConfig): string {\n\tconst objectTypes = [...config.globalDefinitions.objectTypeMap.values()].map((t) => t.name.value);\n\treturn buildBlock({\n\t\tname: 'export interface BaseObjectTypes',\n\t\tlines: objectTypes.map((t) => `${t}: unknown;`),\n\t});\n}\n\nexport function printTypesHeaders(config: PrinterConfig): string {\n\tconst overridesDir = makeRelativePathForImport(config.typesDir, config.modulesDir);\n\treturn [\n\t\t`import type * as BaetaUtility from \"./utility${config.importExtension}\";`,\n\t\t`import type * as BaetaOverrides from \"${overridesDir}/types${config.importExtension}\";`,\n\t\t'',\n\t\t'export type Scalars = BaetaOverrides.Scalars;',\n\t].join('\\n');\n}\n\nexport function printRootTypesFromMap(\n\tconfig: PrinterConfig,\n\trootTypes: string[],\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()]\n\t\t.filter((type) => rootTypes.includes(type.name.value))\n\t\t.map((type) => printObjectType(config, type))\n\t\t.join('\\n\\n');\n}\n\nexport function printObjectTypeTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printObjectType(config, type));\n}\n\nfunction printObjectType(config: PrinterConfig, type: ObjectTypeDefinitionNode) {\n\tconst fields = type.fields?.map((field) => printObjectTypeField(config, field));\n\treturn `export type ${type.name.value} = ${printOrObjectType(type, fields)}`;\n}\n\nfunction printObjectTypeField(config: PrinterConfig, field: FieldDefinitionNode) {\n\tconst optionalMarker = printOptionalMarker(config, field.type);\n\treturn `${field.name.value}${optionalMarker}: ${printType(config, field.type)}`;\n}\n\nexport function printEnumTypesFromMap(map: Map<string, EnumTypeDefinitionNode>) {\n\treturn [...map.values()].map(printEnumType);\n}\n\nfunction printEnumType(type: EnumTypeDefinitionNode) {\n\tconst values = type.values?.map((value) => `'${value.name.value}'`);\n\treturn `export type ${type.name.value} = ${values?.join(' | ') || 'never'}`;\n}\n\nexport function printInterfaceTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, InterfaceTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printInterfaceType(config, type));\n}\n\nfunction printInterfaceType(config: PrinterConfig, type: InterfaceTypeDefinitionNode) {\n\tconst objectTypes = Array.from(config.globalDefinitions.objectTypeMap.values());\n\tconst implementingTypes = objectTypes.filter((t) =>\n\t\tt.interfaces?.some((i) => i.name.value === type.name.value),\n\t);\n\tconst types = implementingTypes.map((t) => printNamedTypeForInterface(t.name.value));\n\treturn `export type ${type.name.value} = ${types.join(' | ') || 'never'}`;\n}\n\nfunction printNamedTypeForInterface(name: string) {\n\treturn `${name} & {__typename: \"${name}\"}`;\n}\n\nexport function printUnionTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, UnionTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printUnionType(config, type));\n}\n\nfunction printUnionType(config: PrinterConfig, type: UnionTypeDefinitionNode) {\n\tconst types = type.types?.map((type) => printNamedTypeForUnion(config, type));\n\treturn `export type ${type.name.value} = ${types?.join(' | ') || 'never'}`;\n}\n\nfunction printNamedTypeForUnion(config: PrinterConfig, type: NamedTypeNode) {\n\treturn `${printNamedType(config, type, false)} & {__typename: \"${type.name.value}\"}`;\n}\n\nexport function printInputObjectTypeTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, InputObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printInputObjectType(config, type));\n}\n\nfunction printInputObjectType(config: PrinterConfig, type: InputObjectTypeDefinitionNode) {\n\tconst fields = type.fields?.map((field) => printInputObjectTypeField(config, field));\n\treturn buildBlock({\n\t\tname: `export type ${type.name.value} =`,\n\t\tlines: fields ?? [],\n\t});\n}\n\nfunction printInputObjectTypeField(config: PrinterConfig, field: InputValueDefinitionNode) {\n\tconst optionalMarker = printOptionalMarker(config, field.type);\n\treturn `${field.name.value}${optionalMarker}: ${printType(config, field.type)}`;\n}\n\nexport function printObjectTypeFieldsArgsFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].flatMap((type) => printObjectTypeArgs(config, type));\n}\n\nfunction printObjectTypeArgs(config: PrinterConfig, type: ObjectTypeDefinitionNode) {\n\tif (type.fields == null) {\n\t\treturn [];\n\t}\n\treturn type.fields\n\t\t.map((field) => printObjectTypeFieldArgs(config, type.name.value, field))\n\t\t.filter(Boolean);\n}\n\nfunction printObjectTypeFieldArgs(\n\tconfig: PrinterConfig,\n\ttypeName: string,\n\tfield: FieldDefinitionNode,\n) {\n\tconst name = `${typeName + pascalCase(field.name.value)}Args`;\n\treturn buildBlock({\n\t\tname: `export type ${name} =`,\n\t\tlines: field.arguments?.map((arg) => printObjectTypeFieldArg(config, arg)) ?? [],\n\t});\n}\n\nfunction printObjectTypeFieldArg(config: PrinterConfig, arg: InputValueDefinitionNode) {\n\treturn `${arg.name.value}: ${printType(config, arg.type)}`;\n}\n\nfunction printType(config: PrinterConfig, type: TypeNode, nullable = true): string {\n\tswitch (type.kind) {\n\t\tcase Kind.NAMED_TYPE:\n\t\t\treturn printNamedType(config, type, nullable);\n\t\tcase Kind.LIST_TYPE:\n\t\t\treturn printListType(config, type, nullable);\n\t\tcase Kind.NON_NULL_TYPE:\n\t\t\treturn printType(config, type.type, false);\n\t\tdefault:\n\t\t\treturn type satisfies never;\n\t}\n}\n\nfunction printListType(config: PrinterConfig, type: ListTypeNode, nullable = true): string {\n\treturn printValue(config, `Array<${printType(config, type.type)}>`, nullable);\n}\n\nfunction printNamedType(config: PrinterConfig, type: NamedTypeNode, nullable = true): string {\n\tif (isScalarType(config.globalDefinitions, config.defaultScalars, type)) {\n\t\treturn printScalarType(config, type, nullable);\n\t}\n\treturn printValue(config, type.name.value, nullable);\n}\n\nfunction printScalarType(config: PrinterConfig, type: NamedTypeNode, nullable = true): string {\n\treturn printValue(config, `Scalars[\"${type.name.value}\"]`, nullable);\n}\n\nfunction printValue(config: PrinterConfig, value: string, nullable: boolean): string {\n\tif (!nullable) {\n\t\treturn value;\n\t}\n\tif (config.withMaybe) {\n\t\treturn `BaetaUtility.Maybe<${value}>`;\n\t}\n\treturn `${value} | null`;\n}\n\nfunction printOptionalMarker(config: PrinterConfig, type: TypeNode): string {\n\treturn config.withOptional && type.kind !== Kind.NON_NULL_TYPE ? '?' : '';\n}\n\nfunction printOrObjectType(type: ObjectTypeDefinitionNode, fields?: string[]): string {\n\treturn `BaetaUtility.Or<BaetaOverrides.ObjectTypes[\"${type.name.value}\"], {\\n${fields?.map(indent(2)).join('\\n') ?? ''}\\n}>`;\n}\n","import type { Source } from '@graphql-tools/utils';\nimport {\n\ttype DocumentNode,\n\ttype EnumTypeDefinitionNode,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InterfaceTypeDefinitionNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype ScalarTypeDefinitionNode,\n\ttype UnionTypeDefinitionNode,\n\tvisit,\n} from 'graphql';\n\nexport type DefinitionsMap = ReturnType<typeof createRegistry>;\n\nfunction createRegistry() {\n\treturn {\n\t\tscalarTypeMap: new Map<string, ScalarTypeDefinitionNode>(),\n\t\tenumTypeMap: new Map<string, EnumTypeDefinitionNode>(),\n\t\tobjectTypeMap: new Map<string, ObjectTypeDefinitionNode>(),\n\t\tinputObjectTypeMap: new Map<string, InputObjectTypeDefinitionNode>(),\n\t\tunionTypeMap: new Map<string, UnionTypeDefinitionNode>(),\n\t\tinterfaceTypeMap: new Map<string, InterfaceTypeDefinitionNode>(),\n\t};\n}\n\nexport function createDefinitionsMapFromSources(sources: Source[]) {\n\tconst registry = createRegistry();\n\tfor (const source of sources) {\n\t\tif (source.document) {\n\t\t\tcollectTypesFromDocument(source.document, registry, ['Query', 'Mutation', 'Subscription']);\n\t\t}\n\t}\n\treturn registry;\n}\n\nexport function createDefinitionsMapFromDocument(document: DocumentNode) {\n\tconst registry = createRegistry();\n\tcollectTypesFromDocument(document, registry);\n\treturn registry;\n}\n\nfunction collectTypesFromDocument(\n\tdocument: DocumentNode,\n\tregistry: DefinitionsMap,\n\tfilterObjectTypes: string[] = [],\n) {\n\tvisit(document, {\n\t\tScalarTypeDefinition(node) {\n\t\t\tif (registry.scalarTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Scalar type ${node.name.value} already exists`);\n\t\t\t}\n\t\t\tregistry.scalarTypeMap.set(node.name.value, node);\n\t\t},\n\t\tEnumTypeDefinition(node) {\n\t\t\tif (registry.enumTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Enum type ${node.name.value} already exists, use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.enumTypeMap.set(node.name.value, node);\n\t\t},\n\t\tObjectTypeDefinition(node) {\n\t\t\tif (filterObjectTypes.includes(node.name.value)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (registry.objectTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Object type ${node.name.value} already exists, use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.objectTypeMap.set(node.name.value, node);\n\t\t},\n\t\tInputObjectTypeDefinition(node) {\n\t\t\tif (registry.inputObjectTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Input type ${node.name.value} already exists. Use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.inputObjectTypeMap.set(node.name.value, node);\n\t\t},\n\t\tUnionTypeDefinition(node) {\n\t\t\tif (registry.unionTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Union type ${node.name.value} already exists, use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.unionTypeMap.set(node.name.value, node);\n\t\t},\n\t\tInterfaceTypeDefinition(node) {\n\t\t\tif (registry.interfaceTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Interface type ${node.name.value} already exists. Use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.interfaceTypeMap.set(node.name.value, node);\n\t\t},\n\t});\n}\n","import { Kind, type TypeNode } from 'graphql';\nimport { isScalarType } from '../../utils/scalar.ts';\nimport type { DefinitionsMap } from './definitions-map.ts';\n\nexport type FieldInfoMap = Map<string, Map<string, { type: string; hasArguments: boolean }>>;\n\nexport function createFieldInfoMap(definitionsMap: DefinitionsMap, defaultScalars: string[]) {\n\tconst map: FieldInfoMap = new Map();\n\tfor (const objectType of definitionsMap.objectTypeMap.values()) {\n\t\tconst objectName = objectType.name.value;\n\t\tfor (const field of objectType.fields ?? []) {\n\t\t\tconst fieldName = field.name.value;\n\t\t\tconst type = printNamedType(definitionsMap, defaultScalars, field.type, true);\n\t\t\tconst hasArguments = field.arguments != null && field.arguments.length > 0;\n\t\t\tconst fieldMap = map.get(objectName) ?? new Map();\n\t\t\tfieldMap.set(fieldName, { type, hasArguments });\n\t\t\tmap.set(objectName, fieldMap);\n\t\t}\n\t}\n\treturn map;\n}\n\nfunction printNamedType(\n\tdefinitionsMap: DefinitionsMap,\n\tdefaultScalars: string[],\n\ttype: TypeNode,\n\tnullable = true,\n): string {\n\tconst withNullable = nullable ? ' | null' : '';\n\tswitch (type.kind) {\n\t\tcase Kind.NAMED_TYPE:\n\t\t\tif (isScalarType(definitionsMap, defaultScalars, type)) {\n\t\t\t\treturn `Types.Scalars[\"${type.name.value}\"]${withNullable}`;\n\t\t\t}\n\t\t\treturn `Types.${type.name.value}${withNullable}`;\n\t\tcase Kind.LIST_TYPE:\n\t\t\treturn `Array<${printNamedType(definitionsMap, defaultScalars, type.type, nullable)}>${withNullable}`;\n\t\tcase Kind.NON_NULL_TYPE:\n\t\t\treturn printNamedType(definitionsMap, defaultScalars, type.type, false);\n\t\tdefault:\n\t\t\treturn type satisfies never;\n\t}\n}\n","import {\n\ttype DocumentNode,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InputObjectTypeExtensionNode,\n\ttype InterfaceTypeDefinitionNode,\n\ttype InterfaceTypeExtensionNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype ObjectTypeExtensionNode,\n\ttype UnionTypeDefinitionNode,\n\tvisit,\n} from 'graphql';\n\nexport type RegistryKeys = 'objects' | 'interfaces' | 'unions' | 'scalars';\nexport type Registry = Record<RegistryKeys, string[]>;\nexport type Picks = Record<RegistryKeys, Record<string, string[]>>;\n\nconst registryKeys: RegistryKeys[] = ['objects', 'interfaces', 'unions', 'scalars'];\n\nexport type ModuleRegistry = {\n\tdefined: Registry;\n\tpicks: Picks;\n};\n\nexport function createModuleRegistry(document: DocumentNode): ModuleRegistry {\n\tconst picks: Record<RegistryKeys, Record<string, string[]>> = createObject(\n\t\tregistryKeys,\n\t\t() => ({}),\n\t);\n\tconst defined: Registry = createObject(registryKeys, () => []);\n\n\tvisit(document, {\n\t\tObjectTypeDefinition(node) {\n\t\t\tdefined.objects.push(node.name.value);\n\t\t\tcollectFields(node, picks.objects);\n\t\t},\n\t\tObjectTypeExtension(node) {\n\t\t\tpushUnique(defined.objects, node.name.value);\n\t\t\tcollectFields(node, picks.objects);\n\t\t},\n\t\tInterfaceTypeDefinition(node) {\n\t\t\tdefined.interfaces.push(node.name.value);\n\t\t\tcollectFields(node, picks.interfaces);\n\t\t},\n\t\tUnionTypeDefinition(node) {\n\t\t\tdefined.unions.push(node.name.value);\n\t\t\tcollectUnionTypes(node, picks);\n\t\t},\n\t\tScalarTypeDefinition(node) {\n\t\t\tdefined.scalars.push(node.name.value);\n\t\t},\n\t});\n\n\treturn {\n\t\tdefined,\n\t\tpicks,\n\t};\n}\n\nfunction collectFields(\n\tnode:\n\t\t| ObjectTypeDefinitionNode\n\t\t| ObjectTypeExtensionNode\n\t\t| InterfaceTypeDefinitionNode\n\t\t| InterfaceTypeExtensionNode\n\t\t| InputObjectTypeDefinitionNode\n\t\t| InputObjectTypeExtensionNode,\n\tpicksObj: Record<string, string[]>,\n) {\n\tconst name = node.name.value;\n\tif (node.fields) {\n\t\tif (!picksObj[name]) {\n\t\t\tpicksObj[name] = [];\n\t\t}\n\t\tfor (const field of node.fields) {\n\t\t\tpicksObj[name].push(field.name.value);\n\t\t}\n\t}\n}\n\nfunction collectUnionTypes(node: UnionTypeDefinitionNode, picks: Picks) {\n\tconst name = node.name.value;\n\tif (node.types) {\n\t\tif (!picks.unions[name]) {\n\t\t\tpicks.unions[name] = [];\n\t\t}\n\t\tfor (const type of node.types) {\n\t\t\tpicks.unions[name].push(type.name.value);\n\t\t}\n\t}\n}\n\nexport function pushUnique<T>(list: T[], item: T): void {\n\tif (!list.includes(item)) {\n\t\tlist.push(item);\n\t}\n}\n\nexport function createObject<K extends string, T>(keys: K[], valueFn: (key: K) => T) {\n\tconst obj: Record<K, T> = {} as Record<K, T>;\n\tfor (const key of keys) {\n\t\tobj[key] = valueFn(key);\n\t}\n\treturn obj;\n}\n","import type { FileOptions, NormalizedGeneratorOptions } from '@baeta/generator-sdk';\nimport { join } from '@baeta/util-path';\nimport { concatAST } from 'graphql';\nimport { loadSchema } from '../utils/load.ts';\nimport { getSourcesFromSchema, groupSourcesByModule } from '../utils/source.ts';\nimport { printAutoload } from './printer/printer-autoload.ts';\nimport {\n\ttype ModulePrinterConfig,\n\tprintBaetaModuleTypes,\n\tprintModuleBuilder,\n\tprintModuleImports,\n\tprintModuleMetadata,\n\tprintModuleObjectTypeFields,\n} from './printer/printer-module.ts';\nimport { printExtensionsTemplate, printTypesTemplate } from './printer/printer-templates.ts';\nimport {\n\ttype PrinterConfig,\n\tprintBaseObjectTypes,\n\tprintBaseScalars,\n\tprintEnumTypesFromMap,\n\tprintInputObjectTypeTypesFromMap,\n\tprintInterfaceTypesFromMap,\n\tprintObjectTypeFieldsArgsFromMap,\n\tprintObjectTypeTypesFromMap,\n\tprintRootTypesFromMap,\n\tprintTypesHeaders,\n\tprintUnionTypesFromMap,\n\tprintUtilityTypes,\n} from './printer/printer-types.ts';\nimport {\n\tcreateDefinitionsMapFromDocument,\n\tcreateDefinitionsMapFromSources,\n} from './visitors/definitions-map.ts';\nimport { createFieldInfoMap } from './visitors/field-info.ts';\nimport { createModuleRegistry } from './visitors/module-registry.ts';\n\ntype GeneratedFile = {\n\tfilename: string;\n\tcontent: string;\n\toptions?: FileOptions;\n};\n\nexport async function generate(options: NormalizedGeneratorOptions): Promise<GeneratedFile[]> {\n\tconst { outputSchema, outputSchemaAst } = await loadSchema(\n\t\toptions.schemas,\n\t\toptions.cwd,\n\t\toptions.loaders,\n\t);\n\tconst sources = getSourcesFromSchema(outputSchemaAst);\n\tconst sourcesByModule = groupSourcesByModule(sources, options.modulesDir);\n\tconst modules = Array.from(sourcesByModule.keys());\n\tconst globalDefinitions = createDefinitionsMapFromDocument(outputSchema);\n\tconst modulesDefinitions = createDefinitionsMapFromSources(sources);\n\n\tconst defaultScalars = ['ID', 'Int', 'Float', 'String', 'Boolean'];\n\n\tconst config: PrinterConfig = {\n\t\tglobalDefinitions,\n\t\twithMaybe: false,\n\t\twithOptional: false,\n\t\tdefaultScalars,\n\t\timportExtension: options.importExtension,\n\t\ttypesDir: options.typesDir,\n\t\tmodulesDir: options.modulesDir,\n\t};\n\n\tconst fieldInfo = createFieldInfoMap(globalDefinitions, defaultScalars);\n\n\tconst typesContent = [\n\t\tprintTypesHeaders(config),\n\t\tprintRootTypesFromMap(\n\t\t\tconfig,\n\t\t\t['Query', 'Mutation', 'Subscription'],\n\t\t\tglobalDefinitions.objectTypeMap,\n\t\t),\n\t\t...printEnumTypesFromMap(globalDefinitions.enumTypeMap),\n\t\t...printObjectTypeTypesFromMap(config, modulesDefinitions.objectTypeMap),\n\t\t...printObjectTypeFieldsArgsFromMap(config, globalDefinitions.objectTypeMap),\n\t\t...printInputObjectTypeTypesFromMap(config, globalDefinitions.inputObjectTypeMap),\n\t\t...printInterfaceTypesFromMap(config, globalDefinitions.interfaceTypeMap),\n\t\t...printUnionTypesFromMap(config, globalDefinitions.unionTypeMap),\n\t].join('\\n\\n');\n\n\tconst utilityContent = [\n\t\tprintUtilityTypes(),\n\t\tprintBaseScalars(config),\n\t\tprintBaseObjectTypes(config),\n\t].join('\\n\\n');\n\n\tconst files: GeneratedFile[] = [\n\t\t{\n\t\t\tfilename: join(options.typesDir, 'types.ts'),\n\t\t\tcontent: typesContent,\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.typesDir, 'utility.ts'),\n\t\t\tcontent: utilityContent,\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'index.ts'),\n\t\t\tcontent: printAutoload({ importExtension: options.importExtension }, modules),\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'types.ts'),\n\t\t\tcontent: printTypesTemplate({\n\t\t\t\timportExtension: options.importExtension,\n\t\t\t\ttypesDir: options.typesDir,\n\t\t\t\tmodulesDir: options.modulesDir,\n\t\t\t}),\n\t\t\toptions: {\n\t\t\t\tdisableOverwrite: true,\n\t\t\t\tdisableBiomeV1Header: true,\n\t\t\t\tdisableBiomeV2Header: true,\n\t\t\t\tdisableEslintHeader: true,\n\t\t\t\tdisableGenerationNoticeHeader: true,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'extensions.ts'),\n\t\t\tcontent: printExtensionsTemplate(),\n\t\t\toptions: {\n\t\t\t\tdisableOverwrite: true,\n\t\t\t\tdisableBiomeV1Header: true,\n\t\t\t\tdisableBiomeV2Header: true,\n\t\t\t\tdisableEslintHeader: true,\n\t\t\t\tdisableGenerationNoticeHeader: true,\n\t\t\t},\n\t\t},\n\t];\n\n\tfor (const module of modules) {\n\t\tconst sources = sourcesByModule.get(module);\n\t\tconst documents = sources?.map((s) => s.document).filter((el) => el != null) ?? [];\n\t\tif (documents.length === 0) continue;\n\t\tconst document = concatAST(documents);\n\t\tconst config: ModulePrinterConfig = {\n\t\t\ttypesDir: options.typesDir,\n\t\t\tfieldInfo,\n\t\t\timportExtension: options.importExtension,\n\t\t\tmodulesDir: options.modulesDir,\n\t\t\tregistry: createModuleRegistry(document),\n\t\t};\n\t\tfiles.push({\n\t\t\tfilename: join(options.modulesDir, `/${module}/${options.moduleDefinitionName}`),\n\t\t\tcontent: [\n\t\t\t\tprintModuleImports(config, module),\n\t\t\t\tprintModuleMetadata(module, document),\n\t\t\t\tprintBaetaModuleTypes(config),\n\t\t\t\tprintModuleObjectTypeFields(config),\n\t\t\t\tprintModuleBuilder(config, module),\n\t\t\t].join('\\n\\n'),\n\t\t});\n\t}\n\n\treturn files;\n}\n","import { createPluginV1, isMatch, type WatcherFile } from '@baeta/generator-sdk';\nimport { generate } from './lib/codegen.ts';\n\nexport function graphqlPlugin() {\n\treturn createPluginV1({\n\t\tname: 'graphql',\n\t\tactionName: 'GraphQL modules',\n\t\twatch: (options, watcher, reload) => {\n\t\t\tconst handleChange = (file: WatcherFile) => {\n\t\t\t\tif (isMatch(file.relativePath, options.schemas)) {\n\t\t\t\t\treload(file);\n\t\t\t\t}\n\t\t\t};\n\t\t\twatcher.on('update', handleChange);\n\t\t\twatcher.on('delete', handleChange);\n\t\t},\n\t\tgenerate: async (ctx, next) => {\n\t\t\tconst items = await generate(ctx.generatorOptions);\n\t\t\tfor (const item of items) {\n\t\t\t\tctx.fileManager.createAndAdd(item.filename, item.content, 'graphql', item.options);\n\t\t\t}\n\t\t\treturn next();\n\t\t},\n\t});\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["loadSchema","loadSchemaToolkit","printNamedType","loadSchema"],"sources":["../utils/load.ts","../utils/path.ts","../utils/source.ts","../lib/printer/printer-autoload.ts","../lib/printer/printer-utils.ts","../lib/printer/printer-module.ts","../lib/printer/printer-templates.ts","../utils/scalar.ts","../lib/printer/printer-types.ts","../lib/visitors/definitions-map.ts","../lib/visitors/field-info.ts","../lib/visitors/module-registry.ts","../lib/codegen.ts","../index.ts"],"sourcesContent":["import { GraphQLFileLoader } from '@graphql-tools/graphql-file-loader';\nimport {\n\tloadSchema as loadSchemaToolkit,\n\ttype UnnormalizedTypeDefPointer,\n} from '@graphql-tools/load';\nimport {\n\ttype BaseLoaderOptions,\n\tgetDocumentNodeFromSchema,\n\ttype Loader,\n} from '@graphql-tools/utils';\nimport { validateSchema } from 'graphql';\n\nexport async function loadSchema(\n\tschemas: string | string[],\n\tcwd: string,\n\textraLoaders: Loader<BaseLoaderOptions>[] = [],\n) {\n\tconst schemaPointerMap: UnnormalizedTypeDefPointer = {};\n\tfor (const ptr of Array.isArray(schemas) ? schemas : [schemas]) {\n\t\tschemaPointerMap[ptr] = {};\n\t}\n\n\tconst outputSchemaAst = await loadSchemaToolkit(schemaPointerMap, {\n\t\tloaders: [new GraphQLFileLoader(), ...extraLoaders],\n\t\tcwd,\n\t\tincludeSources: true,\n\t});\n\n\tconst errors = validateSchema(outputSchemaAst);\n\n\tif (errors.length > 0) {\n\t\tconst messages = errors.map((e) => e.toString()).join('\\n\\n--------------------\\n\\n');\n\t\tconst subject = errors.length === 1 ? 'error' : 'errors';\n\t\tthrow new Error(`Invalid schema. Found ${errors.length} ${subject}:\\n\\n${messages}`);\n\t}\n\n\tif (!outputSchemaAst.extensions) {\n\t\toutputSchemaAst.extensions = {};\n\t}\n\n\treturn {\n\t\toutputSchemaAst,\n\t\toutputSchema: getDocumentNodeFromSchema(outputSchemaAst),\n\t};\n}\n","import path, { normalize } from '@baeta/util-path';\n\nconst sep = '/';\n\nexport function fixPath(root: string, toFix: string) {\n\treturn path.resolve(path.relative(root, toFix));\n}\n\nexport function getRelativePath(filepath: string, basePath: string) {\n\tconst normalizedFilepath = ensureStartsWithSeparator(\n\t\tensureEndsWithSeparator(normalize(filepath)),\n\t);\n\tconst normalizedBasePath = ensureStartsWithSeparator(\n\t\tensureEndsWithSeparator(normalize(basePath)),\n\t);\n\tconst [, relativePath] = normalizedFilepath.split(normalizedBasePath);\n\treturn relativePath;\n}\n\nexport function extractModuleDirectory(relativePath: string): string {\n\tconst [moduleDirectory] = relativePath.split(sep);\n\treturn moduleDirectory;\n}\n\nfunction ensureStartsWithSeparator(path: string) {\n\treturn path.startsWith(sep) ? path : sep + path;\n}\n\nfunction ensureEndsWithSeparator(path: string) {\n\treturn path.endsWith(sep) ? path : path + sep;\n}\n","import type { Source } from '@graphql-tools/utils';\nimport type { GraphQLSchema } from 'graphql';\nimport { extractModuleDirectory, getRelativePath } from './path.ts';\n\nexport function groupSourcesByModule(sources: Source[], basePath: string) {\n\tconst map = new Map<string, Source[]>();\n\tfor (const source of sources) {\n\t\tif (!source.location) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst relativePath = getRelativePath(source.location, basePath);\n\t\tif (!relativePath) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst mod = extractModuleDirectory(relativePath);\n\t\tconst existing = map.get(mod) ?? [];\n\t\texisting.push(source);\n\t\tmap.set(mod, existing);\n\t}\n\treturn map;\n}\n\nexport function getSourcesFromSchema(schema: GraphQLSchema) {\n\tconst extensions = schema.extensions;\n\treturn (extensions?.extendedSources ?? []) as Source[];\n}\n","import { camelCase, pascalCase } from 'change-case-all';\n\ninterface AutoloadPrinterConfig {\n\tmoduleDefinitionName: string;\n\timportExtension: '.ts' | '.js' | '';\n}\n\nexport function printAutoload(config: AutoloadPrinterConfig, modules: string[]) {\n\treturn [printImports(config, modules), printExport(modules)].join('\\n\\n');\n}\n\nfunction printImports(config: AutoloadPrinterConfig, modules: string[]) {\n\tconst dependencyImports = [\n\t\t'import type { ModuleCompilerFactory } from \"@baeta/core/sdk\";',\n\t\t`import type { Ctx, Info } from \"./types${config.importExtension}\"`,\n\t];\n\tconst moduleTypeImports = modules.map(\n\t\t(module) =>\n\t\t\t`import type { BaetaModuleTypes as ${pascalCase(module)}ModuleTypes } from \"./${module}/${config.moduleDefinitionName}${config.importExtension}\"`,\n\t);\n\tconst moduleImports = modules.flatMap(\n\t\t(module) => `import ${camelCase(module)} from \"./${module}/index${config.importExtension}\"`,\n\t);\n\treturn [...dependencyImports, ...moduleTypeImports, ...moduleImports].join('\\n');\n}\n\nfunction printExport(modules: string[]) {\n\treturn `export default [\\n${modules.map(printModuleWithSatisfies).join(',\\n')}\\n];`;\n}\n\nfunction printModuleWithSatisfies(module: string) {\n\treturn ` ${camelCase(module)} satisfies ModuleCompilerFactory<Ctx, Info, ${pascalCase(module)}ModuleTypes[\"Factories\"]>`;\n}\n","import { posixPath, relative } from '@baeta/util-path';\n\nexport function buildBlock({ name, lines }: { name: string; lines: string[] }): string {\n\treturn [`${name} {`, ...lines.filter(Boolean).map(indent(2)), '};'].join('\\n');\n}\n\nexport function buildCodeBlock({ name, lines }: { name: string; lines: string[] }) {\n\tconst linesWithSep = lines.filter(Boolean).map(indent(2)).join(',\\n');\n\treturn [`${name} {`, linesWithSep, '}'].join('\\n');\n}\n\nexport function indent(size: number) {\n\tconst space = new Array(size).fill(' ').join('');\n\tfunction indentInner(val: string): string {\n\t\treturn val\n\t\t\t.split('\\n')\n\t\t\t.map((line) => `${space}${line}`)\n\t\t\t.join('\\n');\n\t}\n\treturn indentInner;\n}\n\nexport function unique<T>(val: T, i: number, all: T[]): boolean {\n\treturn i === all.indexOf(val);\n}\n\nexport function makeRelativePathForImport(from: string, to: string) {\n\tconst res = posixPath(relative(from, to));\n\tif (res.startsWith('.') || res.startsWith('/')) {\n\t\treturn res;\n\t}\n\treturn `./${res}`;\n}\n","import { join } from '@baeta/util-path';\nimport { pascalCase } from 'change-case-all';\nimport type { DocumentNode } from 'graphql';\nimport type { FieldInfoMap } from '../visitors/field-info.ts';\nimport type { ModuleRegistry } from '../visitors/module-registry.ts';\nimport { buildBlock, buildCodeBlock, indent, makeRelativePathForImport } from './printer-utils.ts';\n\nexport interface ModulePrinterConfig {\n\tregistry: ModuleRegistry;\n\tfieldInfo: FieldInfoMap;\n\ttypesDir: string;\n\tmodulesDir: string;\n\tmoduleDefinitionName: string;\n\timportExtension: '.ts' | '.js' | '';\n}\n\nexport function printModuleIndexStarter(config: ModulePrinterConfig, moduleName: string): string {\n\tconst typeEntries = Object.entries(config.registry.picks.objects);\n\tconst types = typeEntries.map(([typeName]) => typeName);\n\n\treturn [\n\t\tprintModuleIndexImports(config, moduleName),\n\t\tprintModuleIndexDestructuredTypes(moduleName, types),\n\t\t...typeEntries.map(([typeName, fields]) => printModuleIndexType(typeName, fields)),\n\t\tprintModuleIndexSchema(moduleName, types, config.registry.defined.scalars),\n\t]\n\t\t.filter((el) => el != null)\n\t\t.join('\\n\\n');\n}\n\nexport function printModuleImports(config: ModulePrinterConfig, moduleName: string) {\n\tconst typesDir = makeRelativePathForImport(join(config.modulesDir, moduleName), config.typesDir);\n\treturn [\n\t\t'import type { DocumentNode, GraphQLScalarType } from \"graphql\";',\n\t\t'import * as Baeta from \"@baeta/core/sdk\";',\n\t\t`import extensions from \"../extensions${config.importExtension}\";`,\n\t\t`import type {Ctx, Info} from \"../types${config.importExtension}\";`,\n\t\t`import type * as Types from \"${typesDir}/types${config.importExtension}\";`,\n\t].join('\\n');\n}\n\nexport function printModuleMetadata(name: string, doc: DocumentNode) {\n\treturn buildCodeBlock({\n\t\tname: 'const moduleMetadata =',\n\t\tlines: [\n\t\t\t`id: '${name}'`,\n\t\t\t`dirname: './${name}'`,\n\t\t\t`typedef: ${JSON.stringify(doc)} as unknown as DocumentNode`,\n\t\t],\n\t});\n}\n\nexport function printBaetaModuleTypes(config: ModulePrinterConfig) {\n\treturn buildBlock({\n\t\tname: 'export interface BaetaModuleTypes',\n\t\tlines: [\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Builders:',\n\t\t\t\tlines: printBaetaModuleTypesForFields(config, false),\n\t\t\t}),\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Factories:',\n\t\t\t\tlines: [\n\t\t\t\t\t...printBaetaModuleTypesForFields(config, true),\n\t\t\t\t\t...printBaetaModuleTypesScalars(config),\n\t\t\t\t],\n\t\t\t}),\n\t\t],\n\t});\n}\n\nfunction printModuleIndexDestructuredTypes(moduleName: string, types: string[]) {\n\treturn `const { ${types.join(', ')} } = ${pascalCase(moduleName)}Module;`;\n}\n\nfunction printModuleIndexImports(config: ModulePrinterConfig, moduleName: string) {\n\tconst hasScalars = config.registry.defined.scalars.length > 0;\n\tconst moduleImport = `import { ${pascalCase(moduleName)}Module } from \"./${config.moduleDefinitionName}${config.importExtension}\";`;\n\tif (!hasScalars) {\n\t\treturn moduleImport;\n\t}\n\treturn [`import { GraphQLScalarType } from \"graphql\";`, moduleImport].join('\\n');\n}\n\nfunction printModuleIndexSchema(moduleName: string, types: string[], scalars: string[]) {\n\tconst printedTypes = [\n\t\t...types.map((typeName) => `${typeName}: ${typeName}Resolver,`),\n\t\t...scalars.map(\n\t\t\t(scalarName) => `${scalarName}: new GraphQLScalarType({ name: '${scalarName}' }),`,\n\t\t),\n\t]\n\t\t.map(indent(2))\n\t\t.join('\\n');\n\n\treturn `export default ${pascalCase(moduleName)}Module.$schema({\n${printedTypes}\n});`;\n}\n\nfunction printModuleIndexType(typeName: string, fields: string[]) {\n\tconst printedFields = fields\n\t\t.map((fieldName) => printModuleIndexTypeField(typeName, fieldName))\n\t\t.map(indent(2))\n\t\t.join('\\n');\n\n\treturn `const ${typeName}Resolver = ${typeName}.$fields({\n${printedFields}\n});`;\n}\n\nfunction printModuleIndexTypeField(typeName: string, fieldName: string) {\n\tif (typeName === 'Query' || typeName === 'Mutation') {\n\t\treturn `${fieldName}: ${typeName}.${fieldName}.resolve((params) => {\n // Implement resolver logic here\n}),`;\n\t}\n\n\tif (typeName === 'Subscription') {\n\t\treturn `${fieldName}: ${typeName}.${fieldName}\n .subscribe((params) => {\n // Implement subscribe logic here\n })\n .resolve((params) => {\n // Implement resolver logic here\n }),`;\n\t}\n\n\treturn `${fieldName}: ${typeName}.${fieldName}.key('${fieldName}'),`;\n}\n\nfunction printBaetaModuleTypesForFields(config: ModulePrinterConfig, isFactory: boolean) {\n\treturn config.registry.defined.objects\n\t\t.map((typeName) =>\n\t\t\tprintObjectTypeModuleType(typeName, config.registry.picks.objects, isFactory),\n\t\t)\n\t\t.filter(Boolean);\n}\n\nfunction printObjectTypeModuleType(\n\ttypeName: string,\n\tobjects: Record<string, string[] | undefined>,\n\tisFactory: boolean,\n) {\n\tconst object = objects[typeName];\n\tif (!object) {\n\t\treturn '';\n\t}\n\tconst parentType = getParentType(typeName);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tif (isFactory) {\n\t\treturn `${typeName}: Baeta.TypeCompilerFactory<${parentType}, ${contextType}, ${infoType}, BaetaModuleObjectTypeFields['${typeName}']['Factory']>`;\n\t}\n\treturn `${typeName}: Baeta.TypeMethods<${parentType}, ${contextType}, ${infoType}, BaetaModuleObjectTypeFields['${typeName}']['Builder'], BaetaModuleObjectTypeFields['${typeName}']['Factory']>`;\n}\n\nfunction printBaetaModuleTypesScalars(config: ModulePrinterConfig) {\n\treturn config.registry.defined.scalars.map((scalar) => `${scalar}: GraphQLScalarType`);\n}\n\nexport function printModuleObjectTypeFields(config: ModulePrinterConfig) {\n\tconst objects = config.registry.defined.objects\n\t\t.map((typeName) => printObjectTypeFields(config, typeName, config.registry.picks.objects))\n\t\t.filter(Boolean);\n\treturn buildBlock({\n\t\tname: 'interface BaetaModuleObjectTypeFields',\n\t\tlines: objects,\n\t});\n}\n\nfunction printObjectTypeFields(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tobjects: Record<string, string[] | undefined>,\n) {\n\tconst fields = objects[typeName];\n\tif (!fields || fields.length === 0) {\n\t\treturn '';\n\t}\n\tconst fieldsBuilders = fields.map((field) =>\n\t\tprintObjectTypeFieldBuilders(config, typeName, field),\n\t);\n\tconst fieldsFactories = fields.map((field) =>\n\t\tprintObjectTypeFieldFactories(config, typeName, field),\n\t);\n\treturn buildBlock({\n\t\tname: `${typeName}:`,\n\t\tlines: [\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Builder:',\n\t\t\t\tlines: fieldsBuilders,\n\t\t\t}),\n\t\t\tbuildBlock({\n\t\t\t\tname: 'Factory:',\n\t\t\t\tlines: fieldsFactories,\n\t\t\t}),\n\t\t],\n\t});\n}\n\nfunction printObjectTypeFieldBuilders(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tfield: string,\n) {\n\tconst parentType = getParentType(typeName);\n\tconst resultType = getResultType(config, typeName, field);\n\tconst argumentsType = getArgsType(config, typeName, field);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tconst namespace = typeName === 'Subscription' ? 'SubscriptionMethods' : 'FieldMethods';\n\treturn `${field}: Baeta.${namespace}<${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}>`;\n}\n\nfunction printObjectTypeFieldFactories(\n\tconfig: ModulePrinterConfig,\n\ttypeName: string,\n\tfield: string,\n) {\n\tconst parentType = getParentType(typeName);\n\tconst resultType = getResultType(config, typeName, field);\n\tconst argumentsType = getArgsType(config, typeName, field);\n\tconst contextType = getContextType();\n\tconst infoType = getInfoType();\n\tconst namespace = typeName === 'Subscription' ? 'SubscriptionField' : 'Field';\n\treturn `${field}: Baeta.${namespace}<${resultType}, ${resultType}, ${parentType}, ${contextType}, ${argumentsType}, ${infoType}>`;\n}\n\nexport function printModuleBuilder(config: ModulePrinterConfig, moduleName: string) {\n\tconst objectTypes = config.registry.defined.objects\n\t\t.map((typeName) => printObjectTypeBuilder(typeName, config.registry.picks.objects))\n\t\t.filter(Boolean);\n\tconst builders = buildCodeBlock({\n\t\tname: '',\n\t\tlines: objectTypes,\n\t});\n\tconst typeNameResolvers = buildCodeBlock({\n\t\tname: '',\n\t\tlines: [...config.registry.defined.unions, ...config.registry.defined.interfaces].map(\n\t\t\t(name) => `${name}: ${printTypeNameResolver()}`,\n\t\t),\n\t});\n\tconst infoType = getInfoType();\n\tconst contextType = getContextType();\n\treturn [\n\t\t`export const ${pascalCase(moduleName)}Module = Baeta.createModuleBuilder<${contextType}, ${infoType}, BaetaModuleTypes['Builders'], BaetaModuleTypes['Factories']>(moduleMetadata.id, moduleMetadata.typedef,`,\n\t\tbuilders,\n\t\t',',\n\t\ttypeNameResolvers,\n\t\t`, ${getExtensionsVar()});`,\n\t].join('');\n}\n\nfunction printObjectTypeBuilder(typeName: string, objects: Record<string, string[] | undefined>) {\n\tconst fields = objects[typeName]?.map((field) => printObjectTypeFieldBuilder(typeName, field));\n\tif (fields == null || fields.length === 0) {\n\t\treturn '';\n\t}\n\tconst content = buildCodeBlock({\n\t\tname: '',\n\t\tlines: fields,\n\t});\n\treturn `${typeName}: Baeta.createTypeBuilder(\"${typeName}\",${content}, ${getExtensionsVar()})`;\n}\n\nfunction printTypeNameResolver() {\n\treturn '{ __resolveType: (source: {__typename: string}) => { return source.__typename; }}';\n}\n\nfunction getParentType(type: string) {\n\tif (['Query', 'Mutation', 'Subscription'].includes(type)) {\n\t\treturn '{}';\n\t}\n\treturn `Types.${type}`;\n}\n\nfunction getResultType(config: ModulePrinterConfig, type: string, field: string) {\n\tconst fieldType = config.fieldInfo.get(type)?.get(field)?.type;\n\tif (fieldType == null) {\n\t\treturn '{}';\n\t}\n\treturn fieldType;\n}\n\nfunction getArgsType(config: ModulePrinterConfig, type: string, field: string) {\n\tconst hasArgs = config.fieldInfo.get(type)?.get(field)?.hasArguments ?? false;\n\tif (!hasArgs) {\n\t\treturn '{}';\n\t}\n\tconst fieldUpper = field[0].toUpperCase() + field.slice(1);\n\treturn `Types.${type}${fieldUpper}Args`;\n}\n\nfunction printObjectTypeFieldBuilder(typeName: string, field: string) {\n\tif (typeName === 'Subscription') {\n\t\treturn `${field}: Baeta.createSubscriptionBuilder(\"${field}\", ${getExtensionsVar()})`;\n\t}\n\treturn `${field}: Baeta.createFieldBuilder(\"${typeName}\", \"${field}\", ${getExtensionsVar()})`;\n}\n\nfunction getContextType() {\n\treturn 'Ctx';\n}\n\nfunction getInfoType() {\n\treturn 'Info';\n}\n\nfunction getExtensionsVar() {\n\treturn 'extensions';\n}\n","import { makeRelativePathForImport } from './printer-utils.ts';\n\nexport function printTypesTemplate(options: {\n\timportExtension: '.js' | '.ts' | '';\n\ttypesDir: string;\n\tmodulesDir: string;\n}) {\n\tconst importDir = makeRelativePathForImport(options.modulesDir, options.typesDir);\n\n\treturn `import type { GraphQLResolveInfo } from 'graphql';\nimport type { BaseObjectTypes, BaseScalars } from '${importDir}/utility${options.importExtension}';\n\nexport interface Scalars extends BaseScalars {}\n\nexport interface ObjectTypes extends BaseObjectTypes {}\n\nexport type Ctx = {};\n\nexport type Info = GraphQLResolveInfo;\n`;\n}\n\nexport function printExtensionsTemplate() {\n\treturn `import { createExtensions } from '@baeta/core';\n\nexport default createExtensions({});\n`;\n}\n","import type { NamedTypeNode } from 'graphql';\nimport type { DefinitionsMap } from '../lib/visitors/definitions-map.ts';\n\nexport function isScalarType(\n\tdefinitionsMap: DefinitionsMap,\n\tdefaultScalars: string[],\n\ttype: NamedTypeNode,\n): boolean {\n\treturn (\n\t\tdefinitionsMap.scalarTypeMap.has(type.name.value) || defaultScalars.includes(type.name.value)\n\t);\n}\n","import { pascalCase } from 'change-case-all';\nimport {\n\ttype EnumTypeDefinitionNode,\n\ttype FieldDefinitionNode,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InputValueDefinitionNode,\n\ttype InterfaceTypeDefinitionNode,\n\tKind,\n\ttype ListTypeNode,\n\ttype NamedTypeNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype TypeNode,\n\ttype UnionTypeDefinitionNode,\n} from 'graphql';\nimport { isScalarType } from '../../utils/scalar.ts';\nimport type { DefinitionsMap } from '../visitors/definitions-map.ts';\nimport { buildBlock, indent, makeRelativePathForImport } from './printer-utils.ts';\n\nexport interface PrinterConfig {\n\tglobalDefinitions: DefinitionsMap;\n\twithMaybe: boolean;\n\twithOptional: boolean;\n\tdefaultScalars: string[];\n\timportExtension: '.ts' | '.js' | '';\n\ttypesDir: string;\n\tmodulesDir: string;\n}\n\nexport function printUtilityTypes(): string {\n\treturn [\n\t\t'export type Or<A, B> = void extends A ? B : A;',\n\t\t'export type Maybe<T> = T | null;',\n\t].join('\\n\\n');\n}\n\nconst defaultScalarTypes: Record<string, string | undefined> = {\n\tID: 'string',\n\tString: 'string',\n\tBoolean: 'boolean',\n\tInt: 'number',\n\tFloat: 'number',\n};\n\nexport function printBaseScalars(config: PrinterConfig): string {\n\tconst defaultScalars = config.defaultScalars\n\t\t.map((scalar) => {\n\t\t\tconst type = defaultScalarTypes[scalar];\n\t\t\tif (type == null) return null;\n\t\t\treturn `${scalar}: ${type};`;\n\t\t})\n\t\t.filter((el) => el != null);\n\tconst customScalars = [...config.globalDefinitions.scalarTypeMap.values()].map(\n\t\t(scalar) => `${scalar.name.value}: unknown;`,\n\t);\n\n\treturn buildBlock({\n\t\tname: 'export type BaseScalars =',\n\t\tlines: [...defaultScalars, ...customScalars],\n\t});\n}\n\nexport function printBaseObjectTypes(config: PrinterConfig): string {\n\tconst objectTypes = [...config.globalDefinitions.objectTypeMap.values()].map((t) => t.name.value);\n\treturn buildBlock({\n\t\tname: 'export interface BaseObjectTypes',\n\t\tlines: objectTypes.map((t) => `${t}: unknown;`),\n\t});\n}\n\nexport function printTypesHeaders(config: PrinterConfig): string {\n\tconst overridesDir = makeRelativePathForImport(config.typesDir, config.modulesDir);\n\treturn [\n\t\t`import type * as BaetaUtility from \"./utility${config.importExtension}\";`,\n\t\t`import type * as BaetaOverrides from \"${overridesDir}/types${config.importExtension}\";`,\n\t\t'',\n\t\t'export type Scalars = BaetaOverrides.Scalars;',\n\t].join('\\n');\n}\n\nexport function printRootTypesFromMap(\n\tconfig: PrinterConfig,\n\trootTypes: string[],\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()]\n\t\t.filter((type) => rootTypes.includes(type.name.value))\n\t\t.map((type) => printObjectType(config, type))\n\t\t.join('\\n\\n');\n}\n\nexport function printObjectTypeTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printObjectType(config, type));\n}\n\nfunction printObjectType(config: PrinterConfig, type: ObjectTypeDefinitionNode) {\n\tconst fields = type.fields?.map((field) => printObjectTypeField(config, field));\n\treturn `export type ${type.name.value} = ${printOrObjectType(type, fields)}`;\n}\n\nfunction printObjectTypeField(config: PrinterConfig, field: FieldDefinitionNode) {\n\tconst optionalMarker = printOptionalMarker(config, field.type);\n\treturn `${field.name.value}${optionalMarker}: ${printType(config, field.type)}`;\n}\n\nexport function printEnumTypesFromMap(map: Map<string, EnumTypeDefinitionNode>) {\n\treturn [...map.values()].map(printEnumType);\n}\n\nfunction printEnumType(type: EnumTypeDefinitionNode) {\n\tconst values = type.values?.map((value) => `'${value.name.value}'`);\n\treturn `export type ${type.name.value} = ${values?.join(' | ') || 'never'}`;\n}\n\nexport function printInterfaceTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, InterfaceTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printInterfaceType(config, type));\n}\n\nfunction printInterfaceType(config: PrinterConfig, type: InterfaceTypeDefinitionNode) {\n\tconst objectTypes = Array.from(config.globalDefinitions.objectTypeMap.values());\n\tconst implementingTypes = objectTypes.filter((t) =>\n\t\tt.interfaces?.some((i) => i.name.value === type.name.value),\n\t);\n\tconst types = implementingTypes.map((t) => printNamedTypeForInterface(t.name.value));\n\treturn `export type ${type.name.value} = ${types.join(' | ') || 'never'}`;\n}\n\nfunction printNamedTypeForInterface(name: string) {\n\treturn `${name} & {__typename: \"${name}\"}`;\n}\n\nexport function printUnionTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, UnionTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printUnionType(config, type));\n}\n\nfunction printUnionType(config: PrinterConfig, type: UnionTypeDefinitionNode) {\n\tconst types = type.types?.map((type) => printNamedTypeForUnion(config, type));\n\treturn `export type ${type.name.value} = ${types?.join(' | ') || 'never'}`;\n}\n\nfunction printNamedTypeForUnion(config: PrinterConfig, type: NamedTypeNode) {\n\treturn `${printNamedType(config, type, false)} & {__typename: \"${type.name.value}\"}`;\n}\n\nexport function printInputObjectTypeTypesFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, InputObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].map((type) => printInputObjectType(config, type));\n}\n\nfunction printInputObjectType(config: PrinterConfig, type: InputObjectTypeDefinitionNode) {\n\tconst fields = type.fields?.map((field) => printInputObjectTypeField(config, field));\n\treturn buildBlock({\n\t\tname: `export type ${type.name.value} =`,\n\t\tlines: fields ?? [],\n\t});\n}\n\nfunction printInputObjectTypeField(config: PrinterConfig, field: InputValueDefinitionNode) {\n\tconst optionalMarker = printOptionalMarker(config, field.type);\n\treturn `${field.name.value}${optionalMarker}: ${printType(config, field.type)}`;\n}\n\nexport function printObjectTypeFieldsArgsFromMap(\n\tconfig: PrinterConfig,\n\tmap: Map<string, ObjectTypeDefinitionNode>,\n) {\n\treturn [...map.values()].flatMap((type) => printObjectTypeArgs(config, type));\n}\n\nfunction printObjectTypeArgs(config: PrinterConfig, type: ObjectTypeDefinitionNode) {\n\tif (type.fields == null) {\n\t\treturn [];\n\t}\n\treturn type.fields\n\t\t.map((field) => printObjectTypeFieldArgs(config, type.name.value, field))\n\t\t.filter(Boolean);\n}\n\nfunction printObjectTypeFieldArgs(\n\tconfig: PrinterConfig,\n\ttypeName: string,\n\tfield: FieldDefinitionNode,\n) {\n\tconst name = `${typeName + pascalCase(field.name.value)}Args`;\n\treturn buildBlock({\n\t\tname: `export type ${name} =`,\n\t\tlines: field.arguments?.map((arg) => printObjectTypeFieldArg(config, arg)) ?? [],\n\t});\n}\n\nfunction printObjectTypeFieldArg(config: PrinterConfig, arg: InputValueDefinitionNode) {\n\treturn `${arg.name.value}: ${printType(config, arg.type)}`;\n}\n\nfunction printType(config: PrinterConfig, type: TypeNode, nullable = true): string {\n\tswitch (type.kind) {\n\t\tcase Kind.NAMED_TYPE:\n\t\t\treturn printNamedType(config, type, nullable);\n\t\tcase Kind.LIST_TYPE:\n\t\t\treturn printListType(config, type, nullable);\n\t\tcase Kind.NON_NULL_TYPE:\n\t\t\treturn printType(config, type.type, false);\n\t\tdefault:\n\t\t\treturn type satisfies never;\n\t}\n}\n\nfunction printListType(config: PrinterConfig, type: ListTypeNode, nullable = true): string {\n\treturn printValue(config, `Array<${printType(config, type.type)}>`, nullable);\n}\n\nfunction printNamedType(config: PrinterConfig, type: NamedTypeNode, nullable = true): string {\n\tif (isScalarType(config.globalDefinitions, config.defaultScalars, type)) {\n\t\treturn printScalarType(config, type, nullable);\n\t}\n\treturn printValue(config, type.name.value, nullable);\n}\n\nfunction printScalarType(config: PrinterConfig, type: NamedTypeNode, nullable = true): string {\n\treturn printValue(config, `Scalars[\"${type.name.value}\"]`, nullable);\n}\n\nfunction printValue(config: PrinterConfig, value: string, nullable: boolean): string {\n\tif (!nullable) {\n\t\treturn value;\n\t}\n\tif (config.withMaybe) {\n\t\treturn `BaetaUtility.Maybe<${value}>`;\n\t}\n\treturn `${value} | null`;\n}\n\nfunction printOptionalMarker(config: PrinterConfig, type: TypeNode): string {\n\treturn config.withOptional && type.kind !== Kind.NON_NULL_TYPE ? '?' : '';\n}\n\nfunction printOrObjectType(type: ObjectTypeDefinitionNode, fields?: string[]): string {\n\treturn `BaetaUtility.Or<BaetaOverrides.ObjectTypes[\"${type.name.value}\"], {\\n${fields?.map(indent(2)).join('\\n') ?? ''}\\n}>`;\n}\n","import type { Source } from '@graphql-tools/utils';\nimport {\n\ttype DocumentNode,\n\ttype EnumTypeDefinitionNode,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InterfaceTypeDefinitionNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype ScalarTypeDefinitionNode,\n\ttype UnionTypeDefinitionNode,\n\tvisit,\n} from 'graphql';\n\nexport type DefinitionsMap = ReturnType<typeof createRegistry>;\n\nfunction createRegistry() {\n\treturn {\n\t\tscalarTypeMap: new Map<string, ScalarTypeDefinitionNode>(),\n\t\tenumTypeMap: new Map<string, EnumTypeDefinitionNode>(),\n\t\tobjectTypeMap: new Map<string, ObjectTypeDefinitionNode>(),\n\t\tinputObjectTypeMap: new Map<string, InputObjectTypeDefinitionNode>(),\n\t\tunionTypeMap: new Map<string, UnionTypeDefinitionNode>(),\n\t\tinterfaceTypeMap: new Map<string, InterfaceTypeDefinitionNode>(),\n\t};\n}\n\nexport function createDefinitionsMapFromSources(sources: Source[]) {\n\tconst registry = createRegistry();\n\tfor (const source of sources) {\n\t\tif (source.document) {\n\t\t\tcollectTypesFromDocument(source.document, registry, ['Query', 'Mutation', 'Subscription']);\n\t\t}\n\t}\n\treturn registry;\n}\n\nexport function createDefinitionsMapFromDocument(document: DocumentNode) {\n\tconst registry = createRegistry();\n\tcollectTypesFromDocument(document, registry);\n\treturn registry;\n}\n\nfunction collectTypesFromDocument(\n\tdocument: DocumentNode,\n\tregistry: DefinitionsMap,\n\tfilterObjectTypes: string[] = [],\n) {\n\tvisit(document, {\n\t\tScalarTypeDefinition(node) {\n\t\t\tif (registry.scalarTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Scalar type ${node.name.value} already exists`);\n\t\t\t}\n\t\t\tregistry.scalarTypeMap.set(node.name.value, node);\n\t\t},\n\t\tEnumTypeDefinition(node) {\n\t\t\tif (registry.enumTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Enum type ${node.name.value} already exists, use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.enumTypeMap.set(node.name.value, node);\n\t\t},\n\t\tObjectTypeDefinition(node) {\n\t\t\tif (filterObjectTypes.includes(node.name.value)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (registry.objectTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Object type ${node.name.value} already exists, use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.objectTypeMap.set(node.name.value, node);\n\t\t},\n\t\tInputObjectTypeDefinition(node) {\n\t\t\tif (registry.inputObjectTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Input type ${node.name.value} already exists. Use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.inputObjectTypeMap.set(node.name.value, node);\n\t\t},\n\t\tUnionTypeDefinition(node) {\n\t\t\tif (registry.unionTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Union type ${node.name.value} already exists, use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.unionTypeMap.set(node.name.value, node);\n\t\t},\n\t\tInterfaceTypeDefinition(node) {\n\t\t\tif (registry.interfaceTypeMap.has(node.name.value)) {\n\t\t\t\tthrow new Error(`Interface type ${node.name.value} already exists. Use 'extend' instead!`);\n\t\t\t}\n\t\t\tregistry.interfaceTypeMap.set(node.name.value, node);\n\t\t},\n\t});\n}\n","import { Kind, type TypeNode } from 'graphql';\nimport { isScalarType } from '../../utils/scalar.ts';\nimport type { DefinitionsMap } from './definitions-map.ts';\n\nexport type FieldInfoMap = Map<string, Map<string, { type: string; hasArguments: boolean }>>;\n\nexport function createFieldInfoMap(definitionsMap: DefinitionsMap, defaultScalars: string[]) {\n\tconst map: FieldInfoMap = new Map();\n\tfor (const objectType of definitionsMap.objectTypeMap.values()) {\n\t\tconst objectName = objectType.name.value;\n\t\tfor (const field of objectType.fields ?? []) {\n\t\t\tconst fieldName = field.name.value;\n\t\t\tconst type = printNamedType(definitionsMap, defaultScalars, field.type, true);\n\t\t\tconst hasArguments = field.arguments != null && field.arguments.length > 0;\n\t\t\tconst fieldMap = map.get(objectName) ?? new Map();\n\t\t\tfieldMap.set(fieldName, { type, hasArguments });\n\t\t\tmap.set(objectName, fieldMap);\n\t\t}\n\t}\n\treturn map;\n}\n\nfunction printNamedType(\n\tdefinitionsMap: DefinitionsMap,\n\tdefaultScalars: string[],\n\ttype: TypeNode,\n\tnullable = true,\n): string {\n\tconst withNullable = nullable ? ' | null' : '';\n\tswitch (type.kind) {\n\t\tcase Kind.NAMED_TYPE:\n\t\t\tif (isScalarType(definitionsMap, defaultScalars, type)) {\n\t\t\t\treturn `Types.Scalars[\"${type.name.value}\"]${withNullable}`;\n\t\t\t}\n\t\t\treturn `Types.${type.name.value}${withNullable}`;\n\t\tcase Kind.LIST_TYPE:\n\t\t\treturn `Array<${printNamedType(definitionsMap, defaultScalars, type.type, nullable)}>${withNullable}`;\n\t\tcase Kind.NON_NULL_TYPE:\n\t\t\treturn printNamedType(definitionsMap, defaultScalars, type.type, false);\n\t\tdefault:\n\t\t\treturn type satisfies never;\n\t}\n}\n","import {\n\ttype DocumentNode,\n\ttype InputObjectTypeDefinitionNode,\n\ttype InputObjectTypeExtensionNode,\n\ttype InterfaceTypeDefinitionNode,\n\ttype InterfaceTypeExtensionNode,\n\ttype ObjectTypeDefinitionNode,\n\ttype ObjectTypeExtensionNode,\n\ttype UnionTypeDefinitionNode,\n\tvisit,\n} from 'graphql';\n\nexport type RegistryKeys = 'objects' | 'interfaces' | 'unions' | 'scalars';\nexport type Registry = Record<RegistryKeys, string[]>;\nexport type Picks = Record<RegistryKeys, Record<string, string[]>>;\n\nconst registryKeys: RegistryKeys[] = ['objects', 'interfaces', 'unions', 'scalars'];\n\nexport type ModuleRegistry = {\n\tdefined: Registry;\n\tpicks: Picks;\n};\n\nexport function createModuleRegistry(document: DocumentNode): ModuleRegistry {\n\tconst picks: Record<RegistryKeys, Record<string, string[]>> = createObject(\n\t\tregistryKeys,\n\t\t() => ({}),\n\t);\n\tconst defined: Registry = createObject(registryKeys, () => []);\n\n\tvisit(document, {\n\t\tObjectTypeDefinition(node) {\n\t\t\tdefined.objects.push(node.name.value);\n\t\t\tcollectFields(node, picks.objects);\n\t\t},\n\t\tObjectTypeExtension(node) {\n\t\t\tpushUnique(defined.objects, node.name.value);\n\t\t\tcollectFields(node, picks.objects);\n\t\t},\n\t\tInterfaceTypeDefinition(node) {\n\t\t\tdefined.interfaces.push(node.name.value);\n\t\t\tcollectFields(node, picks.interfaces);\n\t\t},\n\t\tUnionTypeDefinition(node) {\n\t\t\tdefined.unions.push(node.name.value);\n\t\t\tcollectUnionTypes(node, picks);\n\t\t},\n\t\tScalarTypeDefinition(node) {\n\t\t\tdefined.scalars.push(node.name.value);\n\t\t},\n\t});\n\n\treturn {\n\t\tdefined,\n\t\tpicks,\n\t};\n}\n\nfunction collectFields(\n\tnode:\n\t\t| ObjectTypeDefinitionNode\n\t\t| ObjectTypeExtensionNode\n\t\t| InterfaceTypeDefinitionNode\n\t\t| InterfaceTypeExtensionNode\n\t\t| InputObjectTypeDefinitionNode\n\t\t| InputObjectTypeExtensionNode,\n\tpicksObj: Record<string, string[]>,\n) {\n\tconst name = node.name.value;\n\tif (node.fields) {\n\t\tif (!picksObj[name]) {\n\t\t\tpicksObj[name] = [];\n\t\t}\n\t\tfor (const field of node.fields) {\n\t\t\tpicksObj[name].push(field.name.value);\n\t\t}\n\t}\n}\n\nfunction collectUnionTypes(node: UnionTypeDefinitionNode, picks: Picks) {\n\tconst name = node.name.value;\n\tif (node.types) {\n\t\tif (!picks.unions[name]) {\n\t\t\tpicks.unions[name] = [];\n\t\t}\n\t\tfor (const type of node.types) {\n\t\t\tpicks.unions[name].push(type.name.value);\n\t\t}\n\t}\n}\n\nexport function pushUnique<T>(list: T[], item: T): void {\n\tif (!list.includes(item)) {\n\t\tlist.push(item);\n\t}\n}\n\nexport function createObject<K extends string, T>(keys: K[], valueFn: (key: K) => T) {\n\tconst obj: Record<K, T> = {} as Record<K, T>;\n\tfor (const key of keys) {\n\t\tobj[key] = valueFn(key);\n\t}\n\treturn obj;\n}\n","import type { File, FileOptions, NormalizedGeneratorOptions } from '@baeta/generator-sdk';\nimport { join } from '@baeta/util-path';\nimport { concatAST } from 'graphql';\nimport { loadSchema } from '../utils/load.ts';\nimport { getSourcesFromSchema, groupSourcesByModule } from '../utils/source.ts';\nimport { printAutoload } from './printer/printer-autoload.ts';\nimport {\n\ttype ModulePrinterConfig,\n\tprintBaetaModuleTypes,\n\tprintModuleBuilder,\n\tprintModuleImports,\n\tprintModuleIndexStarter,\n\tprintModuleMetadata,\n\tprintModuleObjectTypeFields,\n} from './printer/printer-module.ts';\nimport { printExtensionsTemplate, printTypesTemplate } from './printer/printer-templates.ts';\nimport {\n\ttype PrinterConfig,\n\tprintBaseObjectTypes,\n\tprintBaseScalars,\n\tprintEnumTypesFromMap,\n\tprintInputObjectTypeTypesFromMap,\n\tprintInterfaceTypesFromMap,\n\tprintObjectTypeFieldsArgsFromMap,\n\tprintObjectTypeTypesFromMap,\n\tprintRootTypesFromMap,\n\tprintTypesHeaders,\n\tprintUnionTypesFromMap,\n\tprintUtilityTypes,\n} from './printer/printer-types.ts';\nimport {\n\tcreateDefinitionsMapFromDocument,\n\tcreateDefinitionsMapFromSources,\n} from './visitors/definitions-map.ts';\nimport { createFieldInfoMap } from './visitors/field-info.ts';\nimport { createModuleRegistry } from './visitors/module-registry.ts';\n\ntype GeneratedFile = {\n\tfilename: string;\n\tcontent: string;\n\toptions?: FileOptions;\n};\n\nexport async function generate(\n\toptions: NormalizedGeneratorOptions,\n\tcurrentFiles: File[],\n): Promise<GeneratedFile[]> {\n\tconst { outputSchema, outputSchemaAst } = await loadSchema(\n\t\toptions.schemas,\n\t\toptions.cwd,\n\t\toptions.loaders,\n\t);\n\tconst sources = getSourcesFromSchema(outputSchemaAst);\n\tconst sourcesByModule = groupSourcesByModule(sources, options.modulesDir);\n\tconst modules = Array.from(sourcesByModule.keys());\n\tconst globalDefinitions = createDefinitionsMapFromDocument(outputSchema);\n\tconst modulesDefinitions = createDefinitionsMapFromSources(sources);\n\n\tconst defaultScalars = ['ID', 'Int', 'Float', 'String', 'Boolean'];\n\n\tconst config: PrinterConfig = {\n\t\tglobalDefinitions,\n\t\twithMaybe: false,\n\t\twithOptional: false,\n\t\tdefaultScalars,\n\t\timportExtension: options.importExtension,\n\t\ttypesDir: options.typesDir,\n\t\tmodulesDir: options.modulesDir,\n\t};\n\n\tconst fieldInfo = createFieldInfoMap(globalDefinitions, defaultScalars);\n\n\tconst typesContent = [\n\t\tprintTypesHeaders(config),\n\t\tprintRootTypesFromMap(\n\t\t\tconfig,\n\t\t\t['Query', 'Mutation', 'Subscription'],\n\t\t\tglobalDefinitions.objectTypeMap,\n\t\t),\n\t\t...printEnumTypesFromMap(globalDefinitions.enumTypeMap),\n\t\t...printObjectTypeTypesFromMap(config, modulesDefinitions.objectTypeMap),\n\t\t...printObjectTypeFieldsArgsFromMap(config, globalDefinitions.objectTypeMap),\n\t\t...printInputObjectTypeTypesFromMap(config, globalDefinitions.inputObjectTypeMap),\n\t\t...printInterfaceTypesFromMap(config, globalDefinitions.interfaceTypeMap),\n\t\t...printUnionTypesFromMap(config, globalDefinitions.unionTypeMap),\n\t].join('\\n\\n');\n\n\tconst utilityContent = [\n\t\tprintUtilityTypes(),\n\t\tprintBaseScalars(config),\n\t\tprintBaseObjectTypes(config),\n\t].join('\\n\\n');\n\n\tconst files: GeneratedFile[] = [\n\t\t{\n\t\t\tfilename: join(options.typesDir, 'types.ts'),\n\t\t\tcontent: typesContent,\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.typesDir, 'utility.ts'),\n\t\t\tcontent: utilityContent,\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'index.ts'),\n\t\t\tcontent: printAutoload(\n\t\t\t\t{\n\t\t\t\t\timportExtension: options.importExtension,\n\t\t\t\t\tmoduleDefinitionName: options.moduleDefinitionName,\n\t\t\t\t},\n\t\t\t\tmodules,\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'types.ts'),\n\t\t\tcontent: printTypesTemplate({\n\t\t\t\timportExtension: options.importExtension,\n\t\t\t\ttypesDir: options.typesDir,\n\t\t\t\tmodulesDir: options.modulesDir,\n\t\t\t}),\n\t\t\toptions: {\n\t\t\t\tdisableOverwrite: true,\n\t\t\t\tdisableBiomeV1Header: true,\n\t\t\t\tdisableBiomeV2Header: true,\n\t\t\t\tdisableEslintHeader: true,\n\t\t\t\tdisableGenerationNoticeHeader: true,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfilename: join(options.modulesDir, 'extensions.ts'),\n\t\t\tcontent: printExtensionsTemplate(),\n\t\t\toptions: {\n\t\t\t\tdisableOverwrite: true,\n\t\t\t\tdisableBiomeV1Header: true,\n\t\t\t\tdisableBiomeV2Header: true,\n\t\t\t\tdisableEslintHeader: true,\n\t\t\t\tdisableGenerationNoticeHeader: true,\n\t\t\t},\n\t\t},\n\t];\n\n\tfor (const module of modules) {\n\t\tconst sources = sourcesByModule.get(module);\n\t\tconst documents = sources?.map((s) => s.document).filter((el) => el != null) ?? [];\n\t\tif (documents.length === 0) continue;\n\t\tconst document = concatAST(documents);\n\t\tconst config: ModulePrinterConfig = {\n\t\t\ttypesDir: options.typesDir,\n\t\t\tfieldInfo,\n\t\t\timportExtension: options.importExtension,\n\t\t\tmodulesDir: options.modulesDir,\n\t\t\tregistry: createModuleRegistry(document),\n\t\t\tmoduleDefinitionName: options.moduleDefinitionName,\n\t\t};\n\t\tfiles.push({\n\t\t\tfilename: join(options.modulesDir, `/${module}/${options.moduleDefinitionName}.ts`),\n\t\t\tcontent: [\n\t\t\t\tprintModuleImports(config, module),\n\t\t\t\tprintModuleMetadata(module, document),\n\t\t\t\tprintBaetaModuleTypes(config),\n\t\t\t\tprintModuleObjectTypeFields(config),\n\t\t\t\tprintModuleBuilder(config, module),\n\t\t\t].join('\\n\\n'),\n\t\t});\n\n\t\tconst moduleStarterPath = join(options.modulesDir, `/${module}/index.ts`);\n\t\tconst moduleStarterExists = currentFiles.some((file) => file.filename === moduleStarterPath);\n\t\tif (!moduleStarterExists) {\n\t\t\tfiles.push({\n\t\t\t\tfilename: join(options.modulesDir, `/${module}/index.ts`),\n\t\t\t\tcontent: printModuleIndexStarter(config, module),\n\t\t\t\toptions: {\n\t\t\t\t\tdisableOverwrite: true,\n\t\t\t\t\tdisableBiomeV1Header: true,\n\t\t\t\t\tdisableBiomeV2Header: true,\n\t\t\t\t\tdisableEslintHeader: true,\n\t\t\t\t\tdisableGenerationNoticeHeader: true,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\treturn files;\n}\n","import { createPluginV1, isMatch, type WatcherFile } from '@baeta/generator-sdk';\nimport { generate } from './lib/codegen.ts';\n\nexport function graphqlPlugin() {\n\treturn createPluginV1({\n\t\tname: 'graphql',\n\t\tactionName: 'GraphQL modules',\n\t\twatch: (options, watcher, reload) => {\n\t\t\tconst handleChange = (file: WatcherFile) => {\n\t\t\t\tif (isMatch(file.relativePath, options.schemas)) {\n\t\t\t\t\treload(file);\n\t\t\t\t}\n\t\t\t};\n\t\t\twatcher.on('update', handleChange);\n\t\t\twatcher.on('delete', handleChange);\n\t\t},\n\t\tgenerate: async (ctx, next) => {\n\t\t\tconst items = await generate(ctx.generatorOptions, ctx.fileManager.files);\n\t\t\tfor (const item of items) {\n\t\t\t\tctx.fileManager.createAndAdd(item.filename, item.content, 'graphql', item.options);\n\t\t\t}\n\t\t\treturn next();\n\t\t},\n\t});\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@baeta/plugin-graphql",
|
|
3
|
-
"version": "2.0.0-next.
|
|
3
|
+
"version": "2.0.0-next.12",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"baeta",
|
|
6
6
|
"graphql",
|
|
@@ -38,8 +38,9 @@
|
|
|
38
38
|
],
|
|
39
39
|
"scripts": {
|
|
40
40
|
"build": "builder build",
|
|
41
|
+
"check:deps": "builder check-deps",
|
|
41
42
|
"prepack": "builder prepare",
|
|
42
|
-
"postpack": "builder prepare --
|
|
43
|
+
"postpack": "builder prepare --restore",
|
|
43
44
|
"test": "builder test",
|
|
44
45
|
"test:circular": "builder test-circular",
|
|
45
46
|
"types": "tsc --noEmit"
|
|
@@ -52,17 +53,17 @@
|
|
|
52
53
|
"dependencies": {
|
|
53
54
|
"@baeta/generator-sdk": "^2.0.0-next.4",
|
|
54
55
|
"@baeta/util-path": "^2.0.0-next.3",
|
|
55
|
-
"@graphql-tools/graphql-file-loader": "^8.1.
|
|
56
|
-
"@graphql-tools/load": "^8.1.
|
|
57
|
-
"@graphql-tools/utils": "^
|
|
56
|
+
"@graphql-tools/graphql-file-loader": "^8.1.12",
|
|
57
|
+
"@graphql-tools/load": "^8.1.8",
|
|
58
|
+
"@graphql-tools/utils": "^11.0.0",
|
|
58
59
|
"change-case-all": "2.1.0"
|
|
59
60
|
},
|
|
60
61
|
"devDependencies": {
|
|
61
62
|
"@baeta/builder": "^0.0.0",
|
|
62
63
|
"@baeta/testing": "^0.0.0",
|
|
63
64
|
"@baeta/tsconfig": "^0.0.0",
|
|
64
|
-
"@types/node": "^22.19.
|
|
65
|
-
"graphql": "^16.
|
|
65
|
+
"@types/node": "^22.19.13",
|
|
66
|
+
"graphql": "^16.6.0",
|
|
66
67
|
"typescript": "^5.9.3"
|
|
67
68
|
},
|
|
68
69
|
"peerDependencies": {
|