@baeta/plugin-graphql 2.0.0-next.11 → 2.0.0-next.13

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 CHANGED
@@ -1,5 +1,18 @@
1
1
  # @baeta/plugin-graphql
2
2
 
3
+ ## 2.0.0-next.13
4
+
5
+ ### Patch Changes
6
+
7
+ - [#389](https://github.com/andreisergiu98/baeta/pull/389) [`3e7a4d7`](https://github.com/andreisergiu98/baeta/commit/3e7a4d71a59543b8a506938f788aec8b5d907776) Thanks [@andreisergiu98](https://github.com/andreisergiu98)! - Extract graphql utilities into @baeta/util-graphql
8
+
9
+ - Updated dependencies [[`3e7a4d7`](https://github.com/andreisergiu98/baeta/commit/3e7a4d71a59543b8a506938f788aec8b5d907776), [`3e7a4d7`](https://github.com/andreisergiu98/baeta/commit/3e7a4d71a59543b8a506938f788aec8b5d907776), [`53322ca`](https://github.com/andreisergiu98/baeta/commit/53322ca8ad0c10bce70e49692d5d15023ec3a5e8), [`3e7a4d7`](https://github.com/andreisergiu98/baeta/commit/3e7a4d71a59543b8a506938f788aec8b5d907776)]:
10
+ - @baeta/util-path@2.0.0-next.4
11
+ - @baeta/generator-sdk@2.0.0-next.5
12
+ - @baeta/util-graphql@2.0.0-next.2
13
+
14
+ ## 2.0.0-next.12
15
+
3
16
  ## 2.0.0-next.11
4
17
 
5
18
  ### Patch Changes
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
@@ -1,80 +1,46 @@
1
1
  import { createPluginV1, isMatch } from "@baeta/generator-sdk";
2
- import { join, normalize, parse, posixPath, relative } from "@baeta/util-path";
3
- import { Kind, concatAST, validateSchema, visit } from "graphql";
4
- import { GraphQLFileLoader } from "@graphql-tools/graphql-file-loader";
5
- import { loadSchema } from "@graphql-tools/load";
6
- import { getDocumentNodeFromSchema } from "@graphql-tools/utils";
2
+ import { createDefinitionsMapFromDocument, createDefinitionsMapFromSources, createModuleRegistry, getSourcesFromSchema, groupSourcesByModule, isScalarType, loadSchema } from "@baeta/util-graphql";
3
+ import { join, posixPath, relative } from "@baeta/util-path";
4
+ import { Kind, concatAST } from "graphql";
7
5
  import { camelCase, pascalCase } from "change-case-all";
8
-
9
- //#region utils/load.ts
10
- async function loadSchema$1(schemas, cwd, extraLoaders = []) {
11
- const schemaPointerMap = {};
12
- for (const ptr of Array.isArray(schemas) ? schemas : [schemas]) schemaPointerMap[ptr] = {};
13
- const outputSchemaAst = await loadSchema(schemaPointerMap, {
14
- loaders: [new GraphQLFileLoader(), ...extraLoaders],
15
- cwd,
16
- includeSources: true
17
- });
18
- const errors = validateSchema(outputSchemaAst);
19
- if (errors.length > 0) {
20
- const messages = errors.map((e) => e.toString()).join("\n\n--------------------\n\n");
21
- const subject = errors.length === 1 ? "error" : "errors";
22
- throw new Error(`Invalid schema. Found ${errors.length} ${subject}:\n\n${messages}`);
23
- }
24
- if (!outputSchemaAst.extensions) outputSchemaAst.extensions = {};
25
- return {
26
- outputSchemaAst,
27
- outputSchema: getDocumentNodeFromSchema(outputSchemaAst)
28
- };
29
- }
30
-
31
- //#endregion
32
- //#region utils/path.ts
33
- const sep = "/";
34
- function getRelativePath(filepath, basePath) {
35
- const normalizedFilepath = normalize(filepath);
36
- const normalizedBasePath = ensureStartsWithSeparator(ensureEndsWithSeparator(normalize(basePath)));
37
- const [, relativePath] = normalizedFilepath.split(normalizedBasePath);
38
- return relativePath;
39
- }
40
- function extractModuleDirectory(relativePath) {
41
- const [moduleDirectory] = relativePath.split(sep);
42
- return moduleDirectory;
43
- }
44
- function ensureStartsWithSeparator(path$1) {
45
- return path$1.startsWith(sep) ? path$1 : sep + path$1;
46
- }
47
- function ensureEndsWithSeparator(path$1) {
48
- return path$1.endsWith(sep) ? path$1 : path$1 + sep;
49
- }
50
-
51
- //#endregion
52
- //#region utils/source.ts
53
- function groupSourcesByModule(sources, basePath) {
6
+ //#region lib/field-info.ts
7
+ function createFieldInfoMap(definitionsMap, defaultScalars) {
54
8
  const map = /* @__PURE__ */ new Map();
55
- for (const source of sources) {
56
- if (!source.location) continue;
57
- const relativePath = getRelativePath(source.location, basePath);
58
- if (!relativePath) continue;
59
- const mod = extractModuleDirectory(relativePath);
60
- const existing = map.get(mod) ?? [];
61
- existing.push(source);
62
- map.set(mod, existing);
9
+ for (const objectType of definitionsMap.objectTypeMap.values()) {
10
+ const objectName = objectType.name.value;
11
+ for (const field of objectType.fields ?? []) {
12
+ const fieldName = field.name.value;
13
+ const type = printNamedType$1(definitionsMap, defaultScalars, field.type);
14
+ const hasArguments = field.arguments != null && field.arguments.length > 0;
15
+ const fieldMap = map.get(objectName) ?? /* @__PURE__ */ new Map();
16
+ fieldMap.set(fieldName, {
17
+ type,
18
+ hasArguments
19
+ });
20
+ map.set(objectName, fieldMap);
21
+ }
63
22
  }
64
23
  return map;
65
24
  }
66
- function getSourcesFromSchema(schema) {
67
- return schema.extensions?.extendedSources ?? [];
25
+ function printNamedType$1(definitionsMap, defaultScalars, type, nullable = true) {
26
+ const withNullable = nullable ? " | null" : "";
27
+ switch (type.kind) {
28
+ case Kind.NAMED_TYPE:
29
+ if (isScalarType(definitionsMap, defaultScalars, type)) return `Types.Scalars["${type.name.value}"]${withNullable}`;
30
+ return `Types.${type.name.value}${withNullable}`;
31
+ case Kind.LIST_TYPE: return `Array<${printNamedType$1(definitionsMap, defaultScalars, type.type)}>${withNullable}`;
32
+ case Kind.NON_NULL_TYPE: return printNamedType$1(definitionsMap, defaultScalars, type.type, false);
33
+ default: return type;
34
+ }
68
35
  }
69
-
70
36
  //#endregion
71
- //#region lib/printer/printer-autoload.ts
37
+ //#region lib/printer-autoload.ts
72
38
  function printAutoload(config, modules) {
73
39
  return [printImports(config, modules), printExport(modules)].join("\n\n");
74
40
  }
75
41
  function printImports(config, modules) {
76
42
  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}/typedef${config.importExtension}"`);
43
+ const moduleTypeImports = modules.map((module) => `import type { BaetaModuleTypes as ${pascalCase(module)}ModuleTypes } from "./${module}/${config.moduleDefinitionName}${config.importExtension}"`);
78
44
  const moduleImports = modules.flatMap((module) => `import ${camelCase(module)} from "./${module}/index${config.importExtension}"`);
79
45
  return [
80
46
  ...dependencyImports,
@@ -88,9 +54,8 @@ function printExport(modules) {
88
54
  function printModuleWithSatisfies(module) {
89
55
  return ` ${camelCase(module)} satisfies ModuleCompilerFactory<Ctx, Info, ${pascalCase(module)}ModuleTypes["Factories"]>`;
90
56
  }
91
-
92
57
  //#endregion
93
- //#region lib/printer/printer-utils.ts
58
+ //#region lib/printer-utils.ts
94
59
  function buildBlock({ name, lines }) {
95
60
  return [
96
61
  `${name} {`,
@@ -118,9 +83,8 @@ function makeRelativePathForImport(from, to) {
118
83
  if (res.startsWith(".") || res.startsWith("/")) return res;
119
84
  return `./${res}`;
120
85
  }
121
-
122
86
  //#endregion
123
- //#region lib/printer/printer-module.ts
87
+ //#region lib/printer-module.ts
124
88
  function printModuleIndexStarter(config, moduleName) {
125
89
  const typeEntries = Object.entries(config.registry.picks.objects);
126
90
  const types = typeEntries.map(([typeName]) => typeName);
@@ -168,8 +132,7 @@ function printModuleIndexDestructuredTypes(moduleName, types) {
168
132
  }
169
133
  function printModuleIndexImports(config, moduleName) {
170
134
  const hasScalars = config.registry.defined.scalars.length > 0;
171
- const typedef = parse(config.moduleDefinitionName).name + config.importExtension;
172
- const moduleImport = `import { ${pascalCase(moduleName)}Module } from "./${typedef}";`;
135
+ const moduleImport = `import { ${pascalCase(moduleName)}Module } from "./${config.moduleDefinitionName}${config.importExtension}";`;
173
136
  if (!hasScalars) return moduleImport;
174
137
  return [`import { GraphQLScalarType } from "graphql";`, moduleImport].join("\n");
175
138
  }
@@ -294,7 +257,7 @@ function getResultType(config, type, field) {
294
257
  }
295
258
  function getArgsType(config, type, field) {
296
259
  if (!(config.fieldInfo.get(type)?.get(field)?.hasArguments ?? false)) return "{}";
297
- return `Types.${type}${field[0].toUpperCase() + field.slice(1)}Args`;
260
+ return `Types.${type}${pascalCase(field)}Args`;
298
261
  }
299
262
  function printObjectTypeFieldBuilder(typeName, field) {
300
263
  if (typeName === "Subscription") return `${field}: Baeta.createSubscriptionBuilder("${field}", ${getExtensionsVar()})`;
@@ -309,9 +272,8 @@ function getInfoType() {
309
272
  function getExtensionsVar() {
310
273
  return "extensions";
311
274
  }
312
-
313
275
  //#endregion
314
- //#region lib/printer/printer-templates.ts
276
+ //#region lib/printer-templates.ts
315
277
  function printTypesTemplate(options) {
316
278
  return `import type { GraphQLResolveInfo } from 'graphql';
317
279
  import type { BaseObjectTypes, BaseScalars } from '${makeRelativePathForImport(options.modulesDir, options.typesDir)}/utility${options.importExtension}';
@@ -331,15 +293,8 @@ function printExtensionsTemplate() {
331
293
  export default createExtensions({});
332
294
  `;
333
295
  }
334
-
335
- //#endregion
336
- //#region utils/scalar.ts
337
- function isScalarType(definitionsMap, defaultScalars, type) {
338
- return definitionsMap.scalarTypeMap.has(type.name.value) || defaultScalars.includes(type.name.value);
339
- }
340
-
341
296
  //#endregion
342
- //#region lib/printer/printer-types.ts
297
+ //#region lib/printer-types.ts
343
298
  function printUtilityTypes() {
344
299
  return ["export type Or<A, B> = void extends A ? B : A;", "export type Maybe<T> = T | null;"].join("\n\n");
345
300
  }
@@ -412,11 +367,11 @@ function printUnionTypesFromMap(config, map) {
412
367
  return [...map.values()].map((type) => printUnionType(config, type));
413
368
  }
414
369
  function printUnionType(config, type) {
415
- const types = type.types?.map((type$1) => printNamedTypeForUnion(config, type$1));
370
+ const types = type.types?.map((type) => printNamedTypeForUnion(config, type));
416
371
  return `export type ${type.name.value} = ${types?.join(" | ") || "never"}`;
417
372
  }
418
373
  function printNamedTypeForUnion(config, type) {
419
- return `${printNamedType$1(config, type, false)} & {__typename: "${type.name.value}"}`;
374
+ return `${printNamedType(config, type, false)} & {__typename: "${type.name.value}"}`;
420
375
  }
421
376
  function printInputObjectTypeTypesFromMap(config, map) {
422
377
  return [...map.values()].map((type) => printInputObjectType(config, type));
@@ -450,7 +405,7 @@ function printObjectTypeFieldArg(config, arg) {
450
405
  }
451
406
  function printType(config, type, nullable = true) {
452
407
  switch (type.kind) {
453
- case Kind.NAMED_TYPE: return printNamedType$1(config, type, nullable);
408
+ case Kind.NAMED_TYPE: return printNamedType(config, type, nullable);
454
409
  case Kind.LIST_TYPE: return printListType(config, type, nullable);
455
410
  case Kind.NON_NULL_TYPE: return printType(config, type.type, false);
456
411
  default: return type;
@@ -459,7 +414,7 @@ function printType(config, type, nullable = true) {
459
414
  function printListType(config, type, nullable = true) {
460
415
  return printValue(config, `Array<${printType(config, type.type)}>`, nullable);
461
416
  }
462
- function printNamedType$1(config, type, nullable = true) {
417
+ function printNamedType(config, type, nullable = true) {
463
418
  if (isScalarType(config.globalDefinitions, config.defaultScalars, type)) return printScalarType(config, type, nullable);
464
419
  return printValue(config, type.name.value, nullable);
465
420
  }
@@ -477,159 +432,10 @@ function printOptionalMarker(config, type) {
477
432
  function printOrObjectType(type, fields) {
478
433
  return `BaetaUtility.Or<BaetaOverrides.ObjectTypes["${type.name.value}"], {\n${fields?.map(indent(2)).join("\n") ?? ""}\n}>`;
479
434
  }
480
-
481
- //#endregion
482
- //#region lib/visitors/definitions-map.ts
483
- function createRegistry() {
484
- return {
485
- scalarTypeMap: /* @__PURE__ */ new Map(),
486
- enumTypeMap: /* @__PURE__ */ new Map(),
487
- objectTypeMap: /* @__PURE__ */ new Map(),
488
- inputObjectTypeMap: /* @__PURE__ */ new Map(),
489
- unionTypeMap: /* @__PURE__ */ new Map(),
490
- interfaceTypeMap: /* @__PURE__ */ new Map()
491
- };
492
- }
493
- function createDefinitionsMapFromSources(sources) {
494
- const registry = createRegistry();
495
- for (const source of sources) if (source.document) collectTypesFromDocument(source.document, registry, [
496
- "Query",
497
- "Mutation",
498
- "Subscription"
499
- ]);
500
- return registry;
501
- }
502
- function createDefinitionsMapFromDocument(document) {
503
- const registry = createRegistry();
504
- collectTypesFromDocument(document, registry);
505
- return registry;
506
- }
507
- function collectTypesFromDocument(document, registry, filterObjectTypes = []) {
508
- visit(document, {
509
- ScalarTypeDefinition(node) {
510
- if (registry.scalarTypeMap.has(node.name.value)) throw new Error(`Scalar type ${node.name.value} already exists`);
511
- registry.scalarTypeMap.set(node.name.value, node);
512
- },
513
- EnumTypeDefinition(node) {
514
- if (registry.enumTypeMap.has(node.name.value)) throw new Error(`Enum type ${node.name.value} already exists, use 'extend' instead!`);
515
- registry.enumTypeMap.set(node.name.value, node);
516
- },
517
- ObjectTypeDefinition(node) {
518
- if (filterObjectTypes.includes(node.name.value)) return;
519
- if (registry.objectTypeMap.has(node.name.value)) throw new Error(`Object type ${node.name.value} already exists, use 'extend' instead!`);
520
- registry.objectTypeMap.set(node.name.value, node);
521
- },
522
- InputObjectTypeDefinition(node) {
523
- if (registry.inputObjectTypeMap.has(node.name.value)) throw new Error(`Input type ${node.name.value} already exists. Use 'extend' instead!`);
524
- registry.inputObjectTypeMap.set(node.name.value, node);
525
- },
526
- UnionTypeDefinition(node) {
527
- if (registry.unionTypeMap.has(node.name.value)) throw new Error(`Union type ${node.name.value} already exists, use 'extend' instead!`);
528
- registry.unionTypeMap.set(node.name.value, node);
529
- },
530
- InterfaceTypeDefinition(node) {
531
- if (registry.interfaceTypeMap.has(node.name.value)) throw new Error(`Interface type ${node.name.value} already exists. Use 'extend' instead!`);
532
- registry.interfaceTypeMap.set(node.name.value, node);
533
- }
534
- });
535
- }
536
-
537
- //#endregion
538
- //#region lib/visitors/field-info.ts
539
- function createFieldInfoMap(definitionsMap, defaultScalars) {
540
- const map = /* @__PURE__ */ new Map();
541
- for (const objectType of definitionsMap.objectTypeMap.values()) {
542
- const objectName = objectType.name.value;
543
- for (const field of objectType.fields ?? []) {
544
- const fieldName = field.name.value;
545
- const type = printNamedType(definitionsMap, defaultScalars, field.type, true);
546
- const hasArguments = field.arguments != null && field.arguments.length > 0;
547
- const fieldMap = map.get(objectName) ?? /* @__PURE__ */ new Map();
548
- fieldMap.set(fieldName, {
549
- type,
550
- hasArguments
551
- });
552
- map.set(objectName, fieldMap);
553
- }
554
- }
555
- return map;
556
- }
557
- function printNamedType(definitionsMap, defaultScalars, type, nullable = true) {
558
- const withNullable = nullable ? " | null" : "";
559
- switch (type.kind) {
560
- case Kind.NAMED_TYPE:
561
- if (isScalarType(definitionsMap, defaultScalars, type)) return `Types.Scalars["${type.name.value}"]${withNullable}`;
562
- return `Types.${type.name.value}${withNullable}`;
563
- case Kind.LIST_TYPE: return `Array<${printNamedType(definitionsMap, defaultScalars, type.type, nullable)}>${withNullable}`;
564
- case Kind.NON_NULL_TYPE: return printNamedType(definitionsMap, defaultScalars, type.type, false);
565
- default: return type;
566
- }
567
- }
568
-
569
- //#endregion
570
- //#region lib/visitors/module-registry.ts
571
- const registryKeys = [
572
- "objects",
573
- "interfaces",
574
- "unions",
575
- "scalars"
576
- ];
577
- function createModuleRegistry(document) {
578
- const picks = createObject(registryKeys, () => ({}));
579
- const defined = createObject(registryKeys, () => []);
580
- visit(document, {
581
- ObjectTypeDefinition(node) {
582
- defined.objects.push(node.name.value);
583
- collectFields(node, picks.objects);
584
- },
585
- ObjectTypeExtension(node) {
586
- pushUnique(defined.objects, node.name.value);
587
- collectFields(node, picks.objects);
588
- },
589
- InterfaceTypeDefinition(node) {
590
- defined.interfaces.push(node.name.value);
591
- collectFields(node, picks.interfaces);
592
- },
593
- UnionTypeDefinition(node) {
594
- defined.unions.push(node.name.value);
595
- collectUnionTypes(node, picks);
596
- },
597
- ScalarTypeDefinition(node) {
598
- defined.scalars.push(node.name.value);
599
- }
600
- });
601
- return {
602
- defined,
603
- picks
604
- };
605
- }
606
- function collectFields(node, picksObj) {
607
- const name = node.name.value;
608
- if (node.fields) {
609
- if (!picksObj[name]) picksObj[name] = [];
610
- for (const field of node.fields) picksObj[name].push(field.name.value);
611
- }
612
- }
613
- function collectUnionTypes(node, picks) {
614
- const name = node.name.value;
615
- if (node.types) {
616
- if (!picks.unions[name]) picks.unions[name] = [];
617
- for (const type of node.types) picks.unions[name].push(type.name.value);
618
- }
619
- }
620
- function pushUnique(list, item) {
621
- if (!list.includes(item)) list.push(item);
622
- }
623
- function createObject(keys, valueFn) {
624
- const obj = {};
625
- for (const key of keys) obj[key] = valueFn(key);
626
- return obj;
627
- }
628
-
629
435
  //#endregion
630
436
  //#region lib/codegen.ts
631
- async function generate(options) {
632
- const { outputSchema, outputSchemaAst } = await loadSchema$1(options.schemas, options.cwd, options.loaders);
437
+ async function generate(options, currentFiles) {
438
+ const { outputSchema, outputSchemaAst } = await loadSchema(options.schemas, options.cwd, options.loaders);
633
439
  const sources = getSourcesFromSchema(outputSchemaAst);
634
440
  const sourcesByModule = groupSourcesByModule(sources, options.modulesDir);
635
441
  const modules = Array.from(sourcesByModule.keys());
@@ -682,7 +488,10 @@ async function generate(options) {
682
488
  },
683
489
  {
684
490
  filename: join(options.modulesDir, "index.ts"),
685
- content: printAutoload({ importExtension: options.importExtension }, modules)
491
+ content: printAutoload({
492
+ importExtension: options.importExtension,
493
+ moduleDefinitionName: options.moduleDefinitionName
494
+ }, modules)
686
495
  },
687
496
  {
688
497
  filename: join(options.modulesDir, "types.ts"),
@@ -715,7 +524,7 @@ async function generate(options) {
715
524
  const documents = sourcesByModule.get(module)?.map((s) => s.document).filter((el) => el != null) ?? [];
716
525
  if (documents.length === 0) continue;
717
526
  const document = concatAST(documents);
718
- const config$1 = {
527
+ const config = {
719
528
  typesDir: options.typesDir,
720
529
  fieldInfo,
721
530
  importExtension: options.importExtension,
@@ -724,18 +533,19 @@ async function generate(options) {
724
533
  moduleDefinitionName: options.moduleDefinitionName
725
534
  };
726
535
  files.push({
727
- filename: join(options.modulesDir, `/${module}/${options.moduleDefinitionName}`),
536
+ filename: join(options.modulesDir, `/${module}/${options.moduleDefinitionName}.ts`),
728
537
  content: [
729
- printModuleImports(config$1, module),
538
+ printModuleImports(config, module),
730
539
  printModuleMetadata(module, document),
731
- printBaetaModuleTypes(config$1),
732
- printModuleObjectTypeFields(config$1),
733
- printModuleBuilder(config$1, module)
540
+ printBaetaModuleTypes(config),
541
+ printModuleObjectTypeFields(config),
542
+ printModuleBuilder(config, module)
734
543
  ].join("\n\n")
735
544
  });
736
- files.push({
545
+ const moduleStarterPath = join(options.modulesDir, `/${module}/index.ts`);
546
+ if (!currentFiles.some((file) => file.filename === moduleStarterPath)) files.push({
737
547
  filename: join(options.modulesDir, `/${module}/index.ts`),
738
- content: printModuleIndexStarter(config$1, module),
548
+ content: printModuleIndexStarter(config, module),
739
549
  options: {
740
550
  disableOverwrite: true,
741
551
  disableBiomeV1Header: true,
@@ -747,7 +557,6 @@ async function generate(options) {
747
557
  }
748
558
  return files;
749
559
  }
750
-
751
560
  //#endregion
752
561
  //#region index.ts
753
562
  function graphqlPlugin() {
@@ -762,13 +571,13 @@ function graphqlPlugin() {
762
571
  watcher.on("delete", handleChange);
763
572
  },
764
573
  generate: async (ctx, next) => {
765
- const items = await generate(ctx.generatorOptions);
574
+ const items = await generate(ctx.generatorOptions, ctx.fileManager.files);
766
575
  for (const item of items) ctx.fileManager.createAndAdd(item.filename, item.content, "graphql", item.options);
767
576
  return next();
768
577
  }
769
578
  });
770
579
  }
771
-
772
580
  //#endregion
773
581
  export { graphqlPlugin };
582
+
774
583
  //# 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, parse } 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 typedef = parse(config.moduleDefinitionName).name + config.importExtension;\n\tconst moduleImport = `import { ${pascalCase(moduleName)}Module } from \"./${typedef}\";`;\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 { 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(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\tmoduleDefinitionName: options.moduleDefinitionName,\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\tfiles.push({\n\t\t\tfilename: join(options.modulesDir, `/${module}/index.ts`),\n\t\t\tcontent: printModuleIndexStarter(config, module),\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\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":["printNamedType"],"sources":["../lib/field-info.ts","../lib/printer-autoload.ts","../lib/printer-utils.ts","../lib/printer-module.ts","../lib/printer-templates.ts","../lib/printer-types.ts","../lib/codegen.ts","../index.ts"],"sourcesContent":["import { type DefinitionsMap, isScalarType } from '@baeta/util-graphql';\nimport { Kind, type TypeNode } from 'graphql';\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);\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)}>${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 { 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 type { ModuleRegistry } from '@baeta/util-graphql';\nimport { join } from '@baeta/util-path';\nimport { pascalCase } from 'change-case-all';\nimport type { DocumentNode } from 'graphql';\nimport type { FieldInfoMap } from './field-info.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 = pascalCase(field);\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 DefinitionsMap, isScalarType } from '@baeta/util-graphql';\nimport { 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 { 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 { File, FileOptions, NormalizedGeneratorOptions } from '@baeta/generator-sdk';\nimport {\n\tcreateDefinitionsMapFromDocument,\n\tcreateDefinitionsMapFromSources,\n\tcreateModuleRegistry,\n\tgetSourcesFromSchema,\n\tgroupSourcesByModule,\n\tloadSchema,\n} from '@baeta/util-graphql';\nimport { join } from '@baeta/util-path';\nimport { concatAST } from 'graphql';\nimport { createFieldInfoMap } from './field-info.ts';\nimport { printAutoload } from './printer-autoload.ts';\nimport {\n\ttype ModulePrinterConfig,\n\tprintBaetaModuleTypes,\n\tprintModuleBuilder,\n\tprintModuleImports,\n\tprintModuleIndexStarter,\n\tprintModuleMetadata,\n\tprintModuleObjectTypeFields,\n} from './printer-module.ts';\nimport { printExtensionsTemplate, printTypesTemplate } from './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-types.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.11",
3
+ "version": "2.0.0-next.13",
4
4
  "keywords": [
5
5
  "baeta",
6
6
  "graphql",
@@ -38,32 +38,30 @@
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 --clean",
43
+ "postpack": "builder prepare --restore",
43
44
  "test": "builder test",
44
- "test:circular": "builder test-circular",
45
45
  "types": "tsc --noEmit"
46
46
  },
47
47
  "ava": {
48
- "extensions": {
49
- "ts": "module"
50
- }
48
+ "extensions": [
49
+ "ts"
50
+ ]
51
51
  },
52
52
  "dependencies": {
53
- "@baeta/generator-sdk": "^2.0.0-next.4",
54
- "@baeta/util-path": "^2.0.0-next.3",
55
- "@graphql-tools/graphql-file-loader": "^8.1.8",
56
- "@graphql-tools/load": "^8.1.7",
57
- "@graphql-tools/utils": "^10.11.0",
53
+ "@baeta/generator-sdk": "^2.0.0-next.5",
54
+ "@baeta/util-graphql": "^2.0.0-next.2",
55
+ "@baeta/util-path": "^2.0.0-next.4",
58
56
  "change-case-all": "2.1.0"
59
57
  },
60
58
  "devDependencies": {
61
59
  "@baeta/builder": "^0.0.0",
62
60
  "@baeta/testing": "^0.0.0",
63
61
  "@baeta/tsconfig": "^0.0.0",
64
- "@types/node": "^22.19.1",
65
- "graphql": "^16.12.0",
66
- "typescript": "^5.9.3"
62
+ "@types/node": "^22.19.17",
63
+ "graphql": "^16.6.0",
64
+ "typescript": "^6.0.0"
67
65
  },
68
66
  "peerDependencies": {
69
67
  "graphql": "^16.6.0"