nitro-graphql 2.0.0-beta.36 → 2.0.0-beta.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/cli/commands/generate.d.mts +26 -0
  2. package/dist/cli/commands/generate.mjs +196 -0
  3. package/dist/cli/commands/index.d.mts +4 -0
  4. package/dist/cli/commands/index.mjs +5 -0
  5. package/dist/cli/commands/init.d.mts +12 -0
  6. package/dist/cli/commands/init.mjs +100 -0
  7. package/dist/cli/commands/validate.d.mts +10 -0
  8. package/dist/cli/commands/validate.mjs +69 -0
  9. package/dist/cli/config.d.mts +75 -0
  10. package/dist/cli/config.mjs +20 -0
  11. package/dist/cli/index.d.mts +24 -0
  12. package/dist/cli/index.mjs +219 -0
  13. package/dist/core/codegen/client.d.mts +23 -0
  14. package/dist/core/codegen/client.mjs +150 -0
  15. package/dist/core/codegen/document-loader.d.mts +10 -0
  16. package/dist/core/codegen/document-loader.mjs +18 -0
  17. package/dist/core/codegen/index.d.mts +8 -0
  18. package/dist/core/codegen/index.mjs +9 -0
  19. package/dist/{utils/codegen-plugin.d.mts → core/codegen/plugin.d.mts} +2 -2
  20. package/dist/{utils/codegen-plugin.mjs → core/codegen/plugin.mjs} +1 -1
  21. package/dist/core/codegen/runtime.d.mts +20 -0
  22. package/dist/core/codegen/runtime.mjs +60 -0
  23. package/dist/core/codegen/schema-loader.d.mts +28 -0
  24. package/dist/core/codegen/schema-loader.mjs +128 -0
  25. package/dist/core/codegen/server.d.mts +28 -0
  26. package/dist/core/codegen/server.mjs +143 -0
  27. package/dist/{codegen → core/codegen}/validation.d.mts +1 -1
  28. package/dist/{codegen → core/codegen}/validation.mjs +1 -1
  29. package/dist/core/config.d.mts +50 -0
  30. package/dist/core/config.mjs +82 -0
  31. package/dist/core/constants.d.mts +188 -0
  32. package/dist/core/constants.mjs +210 -0
  33. package/dist/core/index.d.mts +32 -0
  34. package/dist/core/index.mjs +26 -0
  35. package/dist/core/scanning/ast-scanner.d.mts +23 -0
  36. package/dist/core/scanning/ast-scanner.mjs +103 -0
  37. package/dist/core/scanning/common.d.mts +37 -0
  38. package/dist/core/scanning/common.mjs +60 -0
  39. package/dist/core/scanning/directives.d.mts +10 -0
  40. package/dist/core/scanning/directives.mjs +29 -0
  41. package/dist/core/scanning/documents.d.mts +21 -0
  42. package/dist/core/scanning/documents.mjs +43 -0
  43. package/dist/core/scanning/index.d.mts +7 -0
  44. package/dist/core/scanning/index.mjs +8 -0
  45. package/dist/core/scanning/resolvers.d.mts +10 -0
  46. package/dist/core/scanning/resolvers.mjs +58 -0
  47. package/dist/core/scanning/schemas.d.mts +14 -0
  48. package/dist/core/scanning/schemas.mjs +64 -0
  49. package/dist/{utils/schema-builder.d.mts → core/schema/builder.d.mts} +7 -2
  50. package/dist/{utils/schema-builder.mjs → core/schema/builder.mjs} +22 -3
  51. package/dist/{utils → core/schema}/federation.d.mts +10 -5
  52. package/dist/{utils → core/schema}/federation.mjs +1 -1
  53. package/dist/core/schema/index.d.mts +3 -0
  54. package/dist/core/schema/index.mjs +4 -0
  55. package/dist/core/types/adapter.d.mts +58 -0
  56. package/dist/core/types/codegen.d.mts +133 -0
  57. package/dist/core/types/config.d.mts +212 -0
  58. package/dist/{types → core/types}/define.d.mts +3 -7
  59. package/dist/core/types/index.d.mts +5 -0
  60. package/dist/core/types/scanning.d.mts +69 -0
  61. package/dist/core/types/scanning.mjs +1 -0
  62. package/dist/{utils → core/utils}/directive-parser.d.mts +21 -5
  63. package/dist/{utils → core/utils}/directive-parser.mjs +25 -36
  64. package/dist/{utils → core/utils}/errors.d.mts +8 -4
  65. package/dist/{utils → core/utils}/errors.mjs +8 -4
  66. package/dist/core/utils/file-io.d.mts +24 -0
  67. package/dist/core/utils/file-io.mjs +47 -0
  68. package/dist/{utils → core/utils}/imports.d.mts +1 -1
  69. package/dist/{utils → core/utils}/imports.mjs +1 -1
  70. package/dist/core/utils/index.d.mts +7 -0
  71. package/dist/core/utils/index.mjs +8 -0
  72. package/dist/core/utils/logger.d.mts +19 -0
  73. package/dist/core/utils/logger.mjs +38 -0
  74. package/dist/{utils → core/utils}/ofetch-templates.d.mts +1 -1
  75. package/dist/{utils → core/utils}/ofetch-templates.mjs +1 -1
  76. package/dist/core/validation/external-services.d.mts +11 -0
  77. package/dist/{utils/validation.mjs → core/validation/external-services.mjs} +3 -3
  78. package/dist/core/validation/index.d.mts +2 -0
  79. package/dist/core/validation/index.mjs +3 -0
  80. package/dist/define.d.mts +1 -3
  81. package/dist/index.d.mts +6 -43
  82. package/dist/index.mjs +5 -62
  83. package/dist/nitro/adapter.d.mts +30 -0
  84. package/dist/nitro/adapter.mjs +97 -0
  85. package/dist/{utils → nitro}/apollo.d.mts +1 -1
  86. package/dist/{utils → nitro}/apollo.mjs +1 -1
  87. package/dist/nitro/codegen.d.mts +19 -0
  88. package/dist/nitro/codegen.mjs +141 -0
  89. package/dist/nitro/config.d.mts +52 -0
  90. package/dist/nitro/config.mjs +58 -0
  91. package/dist/nitro/index.d.mts +46 -0
  92. package/dist/nitro/index.mjs +65 -0
  93. package/dist/{utils/path-resolver.d.mts → nitro/paths.d.mts} +3 -19
  94. package/dist/{utils/path-resolver.mjs → nitro/paths.mjs} +2 -36
  95. package/dist/{rollup.d.mts → nitro/rollup.d.mts} +1 -1
  96. package/dist/{rollup.mjs → nitro/rollup.mjs} +11 -23
  97. package/dist/{routes → nitro/routes}/apollo-server.d.mts +1 -1
  98. package/dist/nitro/routes/apollo-server.mjs +71 -0
  99. package/dist/{routes → nitro/routes}/debug-template.d.mts +1 -1
  100. package/dist/{routes → nitro/routes}/debug-template.mjs +1 -1
  101. package/dist/{routes → nitro/routes}/debug.d.mts +10 -16
  102. package/dist/{routes → nitro/routes}/debug.mjs +2 -2
  103. package/dist/nitro/routes/graphql-yoga.d.mts +6 -0
  104. package/dist/{routes → nitro/routes}/graphql-yoga.mjs +21 -10
  105. package/dist/nitro/routes/health.d.mts +10 -0
  106. package/dist/{routes → nitro/routes}/health.mjs +1 -1
  107. package/dist/nitro/setup/file-watcher.d.mts +16 -0
  108. package/dist/{setup → nitro/setup}/file-watcher.mjs +14 -18
  109. package/dist/nitro/setup/logging.d.mts +17 -0
  110. package/dist/nitro/setup/logging.mjs +66 -0
  111. package/dist/nitro/setup/rollup-integration.d.mts +16 -0
  112. package/dist/{setup → nitro/setup}/rollup-integration.mjs +2 -2
  113. package/dist/nitro/setup/routes.d.mts +10 -0
  114. package/dist/nitro/setup/routes.mjs +35 -0
  115. package/dist/nitro/setup/ts-config.d.mts +11 -0
  116. package/dist/{setup → nitro/setup}/ts-config.mjs +3 -3
  117. package/dist/{setup.d.mts → nitro/setup.d.mts} +3 -2
  118. package/dist/{setup.mjs → nitro/setup.mjs} +73 -62
  119. package/dist/nitro/types.d.mts +378 -0
  120. package/dist/nitro/types.mjs +1 -0
  121. package/dist/nitro/virtual/generators.d.mts +31 -0
  122. package/dist/nitro/virtual/generators.mjs +193 -0
  123. package/dist/nitro/virtual/stubs.d.mts +20 -0
  124. package/dist/nitro/virtual/stubs.mjs +31 -0
  125. package/dist/{ecosystem/nuxt.d.mts → nuxt.d.mts} +1 -1
  126. package/dist/{ecosystem/nuxt.mjs → nuxt.mjs} +2 -2
  127. package/dist/{graphql/server.d.mts → stubs/index.d.mts} +5 -1
  128. package/dist/stubs/index.mjs +1 -0
  129. package/package.json +45 -43
  130. package/dist/codegen/client-types.d.mts +0 -13
  131. package/dist/codegen/client-types.mjs +0 -131
  132. package/dist/codegen/external-types.d.mts +0 -12
  133. package/dist/codegen/external-types.mjs +0 -88
  134. package/dist/codegen/index.d.mts +0 -18
  135. package/dist/codegen/index.mjs +0 -24
  136. package/dist/codegen/server-types.d.mts +0 -13
  137. package/dist/codegen/server-types.mjs +0 -64
  138. package/dist/config/defaults.mjs +0 -36
  139. package/dist/constants/scalars.mjs +0 -27
  140. package/dist/constants.mjs +0 -106
  141. package/dist/graphql/index.d.mts +0 -5
  142. package/dist/routes/apollo-server.mjs +0 -45
  143. package/dist/routes/graphql-yoga.d.mts +0 -6
  144. package/dist/routes/health.d.mts +0 -10
  145. package/dist/setup/graphql-scanner.mjs +0 -25
  146. package/dist/setup/scaffold-generator.mjs +0 -109
  147. package/dist/types/index.d.mts +0 -246
  148. package/dist/types/standard-schema.d.mts +0 -59
  149. package/dist/utils/client-codegen.d.mts +0 -41
  150. package/dist/utils/client-codegen.mjs +0 -267
  151. package/dist/utils/file-generator.d.mts +0 -37
  152. package/dist/utils/file-generator.mjs +0 -72
  153. package/dist/utils/file-writer.d.mts +0 -35
  154. package/dist/utils/file-writer.mjs +0 -32
  155. package/dist/utils/index.d.mts +0 -13
  156. package/dist/utils/index.mjs +0 -13
  157. package/dist/utils/layers.d.mts +0 -22
  158. package/dist/utils/layers.mjs +0 -28
  159. package/dist/utils/scanning/common.d.mts +0 -23
  160. package/dist/utils/scanning/common.mjs +0 -39
  161. package/dist/utils/scanning/directives.d.mts +0 -11
  162. package/dist/utils/scanning/directives.mjs +0 -43
  163. package/dist/utils/scanning/documents.d.mts +0 -15
  164. package/dist/utils/scanning/documents.mjs +0 -46
  165. package/dist/utils/scanning/index.d.mts +0 -6
  166. package/dist/utils/scanning/index.mjs +0 -7
  167. package/dist/utils/scanning/resolvers.d.mts +0 -11
  168. package/dist/utils/scanning/resolvers.mjs +0 -100
  169. package/dist/utils/scanning/schemas.d.mts +0 -15
  170. package/dist/utils/scanning/schemas.mjs +0 -29
  171. package/dist/utils/server-codegen.d.mts +0 -7
  172. package/dist/utils/server-codegen.mjs +0 -113
  173. package/dist/utils/type-generation.d.mts +0 -6
  174. package/dist/utils/type-generation.mjs +0 -7
  175. package/dist/utils/validation.d.mts +0 -11
  176. package/dist/virtual/debug-info.d.mts +0 -9
  177. package/dist/virtual/debug-info.mjs +0 -26
  178. package/dist/virtual/generators/config.d.mts +0 -22
  179. package/dist/virtual/generators/config.mjs +0 -36
  180. package/dist/virtual/generators/debug.d.mts +0 -14
  181. package/dist/virtual/generators/debug.mjs +0 -53
  182. package/dist/virtual/generators/directives.d.mts +0 -14
  183. package/dist/virtual/generators/directives.mjs +0 -52
  184. package/dist/virtual/generators/index.d.mts +0 -6
  185. package/dist/virtual/generators/index.mjs +0 -7
  186. package/dist/virtual/generators/resolvers.d.mts +0 -14
  187. package/dist/virtual/generators/resolvers.mjs +0 -55
  188. package/dist/virtual/generators/schemas.d.mts +0 -14
  189. package/dist/virtual/generators/schemas.mjs +0 -43
  190. package/dist/virtual/graphql-config.d.mts +0 -9
  191. package/dist/virtual/graphql-config.mjs +0 -10
  192. package/dist/virtual/module-config.d.mts +0 -9
  193. package/dist/virtual/module-config.mjs +0 -10
  194. package/dist/virtual/server-directives.d.mts +0 -11
  195. package/dist/virtual/server-directives.mjs +0 -10
  196. package/dist/virtual/server-resolvers.d.mts +0 -11
  197. package/dist/virtual/server-resolvers.mjs +0 -10
  198. package/dist/virtual/server-schemas.d.mts +0 -11
  199. package/dist/virtual/server-schemas.mjs +0 -10
  200. /package/dist/{graphql/index.mjs → core/types/adapter.mjs} +0 -0
  201. /package/dist/{graphql/server.mjs → core/types/codegen.mjs} +0 -0
  202. /package/dist/{types/define.mjs → core/types/config.mjs} +0 -0
  203. /package/dist/{types/index.mjs → core/types/define.mjs} +0 -0
  204. /package/dist/{types/standard-schema.mjs → core/types/index.mjs} +0 -0
@@ -1,113 +0,0 @@
1
- import { DEFAULT_GRAPHQL_SCALARS } from "../constants/scalars.mjs";
2
- import { pluginContent } from "./codegen-plugin.mjs";
3
- import { defu as defu$1 } from "defu";
4
- import consola from "consola";
5
- import { parse } from "graphql";
6
- import { codegen } from "@graphql-codegen/core";
7
- import * as typescriptPlugin from "@graphql-codegen/typescript";
8
- import { printSchemaWithDirectives } from "@graphql-tools/utils";
9
- import * as typescriptResolversPlugin from "@graphql-codegen/typescript-resolvers";
10
-
11
- //#region src/utils/server-codegen.ts
12
- async function generateTypes(selectFremework, schema, config = {}, outputPath) {
13
- const mergedConfig = defu$1({
14
- scalars: DEFAULT_GRAPHQL_SCALARS,
15
- defaultScalarType: "unknown",
16
- defaultMapper: `ResolverReturnType<{T}>`,
17
- contextType: "nitro/h3#H3Event",
18
- maybeValue: "T | null | undefined",
19
- inputMaybeValue: "T | undefined",
20
- declarationKind: "interface",
21
- enumsAsTypes: true,
22
- ...config.federation?.enabled && { federation: true }
23
- }, config.codegen?.server);
24
- return await codegen({
25
- filename: outputPath || "types.generated.ts",
26
- schema: parse(printSchemaWithDirectives(schema)),
27
- documents: [],
28
- config: mergedConfig,
29
- plugins: [
30
- { imports: {} },
31
- { pluginContent: {} },
32
- { typescript: {} },
33
- { typescriptResolvers: {} }
34
- ],
35
- pluginMap: {
36
- pluginContent: { plugin: pluginContent },
37
- imports: { plugin: () => {
38
- return {
39
- prepend: [
40
- `import schemas from '#graphql/schema'`,
41
- `import type { StandardSchemaV1 } from 'nitro-graphql/types'`,
42
- `
43
- export interface NPMConfig {
44
- framework: '${selectFremework || "graphql-yoga"}';
45
- }
46
-
47
- export type SchemaType = Partial<Record<Partial<keyof ResolversTypes>, StandardSchemaV1>>
48
-
49
- // Check if schemas is empty object, return never if so
50
- type SafeSchemaKeys<T> = T extends Record<PropertyKey, never>
51
- ? never
52
- : keyof T extends string | number | symbol
53
- ? keyof T extends never
54
- ? never
55
- : keyof T
56
- : never;
57
-
58
-
59
- type SchemaKeys = SafeSchemaKeys<typeof schemas>;
60
-
61
- type InferInput<T> = T extends StandardSchemaV1 ? StandardSchemaV1.InferInput<T> : unknown;
62
- type InferOutput<T> = T extends StandardSchemaV1 ? StandardSchemaV1.InferOutput<T> : unknown;
63
-
64
- type InferInputFromSchema<T extends SchemaKeys> = InferInput<(typeof schemas)[T]>;
65
- type InferOutputFromSchema<T extends SchemaKeys> = InferOutput<(typeof schemas)[T]>;
66
-
67
- type Primitive =
68
- | null
69
- | undefined
70
- | string
71
- | number
72
- | boolean
73
- | symbol
74
- | bigint;
75
-
76
- type BuiltIns = Primitive | void | Date | RegExp;
77
-
78
-
79
- type ResolverReturnType<T> = T extends BuiltIns
80
- ? T
81
- : T extends (...args: any[]) => unknown
82
- ? T | undefined
83
- : T extends object
84
- ? T extends Array<infer ItemType> // Test for arrays/tuples, per https://github.com/microsoft/TypeScript/issues/35156
85
- ? ItemType[] extends T // Test for arrays (non-tuples) specifically
86
- ? Array<ResolverReturnType<ItemType>>
87
- : ResolverReturnTypeObject<T> // Tuples behave properly
88
- : ResolverReturnTypeObject<T>
89
- : unknown;
90
-
91
- type ResolverReturnTypeObject<T extends object> =
92
- T extends { __typename?: infer TTypename }
93
- ? TTypename extends SchemaKeys
94
- ? InferOutputFromSchema<TTypename>
95
- : { [K in keyof T]: ResolverReturnType<T[K]> }
96
- : { [K in keyof T]: ResolverReturnType<T[K]> };
97
- `,
98
- ""
99
- ],
100
- content: ""
101
- };
102
- } },
103
- typescript: typescriptPlugin,
104
- typescriptResolvers: typescriptResolversPlugin
105
- }
106
- }).catch((e) => {
107
- consola.withTag("graphql").error("Error generating types:", e);
108
- return "";
109
- });
110
- }
111
-
112
- //#endregion
113
- export { generateTypes };
@@ -1,6 +0,0 @@
1
- import { generateMainClientTypes } from "../codegen/client-types.mjs";
2
- import { generateExternalServicesTypes } from "../codegen/external-types.mjs";
3
- import { generateServerTypes } from "../codegen/server-types.mjs";
4
- import { validateNoDuplicateTypes } from "../codegen/validation.mjs";
5
- import { generateClientTypes } from "../codegen/index.mjs";
6
- export { generateClientTypes, generateExternalServicesTypes, generateMainClientTypes, generateServerTypes, validateNoDuplicateTypes };
@@ -1,7 +0,0 @@
1
- import { generateMainClientTypes } from "../codegen/client-types.mjs";
2
- import { generateExternalServicesTypes } from "../codegen/external-types.mjs";
3
- import { validateNoDuplicateTypes } from "../codegen/validation.mjs";
4
- import { generateServerTypes } from "../codegen/server-types.mjs";
5
- import { generateClientTypes } from "../codegen/index.mjs";
6
-
7
- export { generateClientTypes, generateExternalServicesTypes, generateMainClientTypes, generateServerTypes, validateNoDuplicateTypes };
@@ -1,11 +0,0 @@
1
- //#region src/utils/validation.d.ts
2
- /**
3
- * Validation utilities
4
- * Configuration validation helpers
5
- */
6
- /**
7
- * Validate external GraphQL service configuration
8
- */
9
- declare function validateExternalServices(services: unknown[]): string[];
10
- //#endregion
11
- export { validateExternalServices };
@@ -1,9 +0,0 @@
1
- //#region src/virtual/debug-info.d.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/debug-info
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- declare const debugInfo: Record<string, any>;
8
- //#endregion
9
- export { debugInfo };
@@ -1,26 +0,0 @@
1
- //#region src/virtual/debug-info.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/debug-info
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- const debugInfo = {
8
- isDev: false,
9
- framework: "",
10
- graphqlFramework: "",
11
- federation: {},
12
- scanned: {
13
- schemas: 0,
14
- schemaFiles: [],
15
- resolvers: 0,
16
- resolverFiles: [],
17
- directives: 0,
18
- directiveFiles: [],
19
- documents: 0,
20
- documentFiles: []
21
- },
22
- virtualModules: {}
23
- };
24
-
25
- //#endregion
26
- export { debugInfo };
@@ -1,22 +0,0 @@
1
- import { Nitro } from "nitro/types";
2
-
3
- //#region src/virtual/generators/config.d.ts
4
-
5
- /**
6
- * Generate virtual module code for GraphQL config (from server/graphql/config.ts)
7
- */
8
- declare function generateGraphQLConfigModule(nitro: Nitro): string;
9
- /**
10
- * Register the GraphQL config virtual module with Nitro
11
- */
12
- declare function virtualGraphQLConfig(nitro: Nitro): void;
13
- /**
14
- * Generate virtual module code for module config (serialized graphql options)
15
- */
16
- declare function generateModuleConfigModule(nitro: Nitro): string;
17
- /**
18
- * Register the module config virtual module with Nitro
19
- */
20
- declare function virtualModuleConfig(nitro: Nitro): void;
21
- //#endregion
22
- export { generateGraphQLConfigModule, generateModuleConfigModule, virtualGraphQLConfig, virtualModuleConfig };
@@ -1,36 +0,0 @@
1
- import { resolve } from "pathe";
2
-
3
- //#region src/virtual/generators/config.ts
4
- /**
5
- * Generate virtual module code for GraphQL config (from server/graphql/config.ts)
6
- */
7
- function generateGraphQLConfigModule(nitro) {
8
- return `import config from '${resolve(nitro.graphql.serverDir, "config.ts")}'
9
- const importedConfig = config
10
- export { importedConfig }
11
- `;
12
- }
13
- /**
14
- * Register the GraphQL config virtual module with Nitro
15
- */
16
- function virtualGraphQLConfig(nitro) {
17
- nitro.options.virtual ??= {};
18
- nitro.options.virtual["#nitro-graphql/graphql-config"] = () => generateGraphQLConfigModule(nitro);
19
- }
20
- /**
21
- * Generate virtual module code for module config (serialized graphql options)
22
- */
23
- function generateModuleConfigModule(nitro) {
24
- const moduleConfig = nitro.options.graphql || {};
25
- return `export const moduleConfig = ${JSON.stringify(moduleConfig, null, 2)};`;
26
- }
27
- /**
28
- * Register the module config virtual module with Nitro
29
- */
30
- function virtualModuleConfig(nitro) {
31
- nitro.options.virtual ??= {};
32
- nitro.options.virtual["#nitro-graphql/module-config"] = () => generateModuleConfigModule(nitro);
33
- }
34
-
35
- //#endregion
36
- export { generateGraphQLConfigModule, generateModuleConfigModule, virtualGraphQLConfig, virtualModuleConfig };
@@ -1,14 +0,0 @@
1
- import { Nitro } from "nitro/types";
2
-
3
- //#region src/virtual/generators/debug.d.ts
4
-
5
- /**
6
- * Generate virtual module code for debug info
7
- */
8
- declare function generateDebugInfoModule(nitro: Nitro): string;
9
- /**
10
- * Register the debug info virtual module with Nitro
11
- */
12
- declare function virtualDebugInfo(nitro: Nitro): void;
13
- //#endregion
14
- export { generateDebugInfoModule, virtualDebugInfo };
@@ -1,53 +0,0 @@
1
- //#region src/virtual/generators/debug.ts
2
- /**
3
- * Safely call a virtual module generator and capture its output
4
- */
5
- function safeGenerateModuleCode(nitro, moduleName) {
6
- try {
7
- const generator = nitro.options.virtual?.[moduleName];
8
- if (generator && typeof generator === "function") return generator();
9
- return "// Module not found";
10
- } catch (error) {
11
- return `// Error generating: ${error instanceof Error ? error.message : String(error)}`;
12
- }
13
- }
14
- /**
15
- * Generate virtual module code for debug info
16
- */
17
- function generateDebugInfoModule(nitro) {
18
- const virtualModuleCodes = {
19
- "server-schemas": safeGenerateModuleCode(nitro, "#nitro-graphql/server-schemas"),
20
- "server-resolvers": safeGenerateModuleCode(nitro, "#nitro-graphql/server-resolvers"),
21
- "server-directives": safeGenerateModuleCode(nitro, "#nitro-graphql/server-directives"),
22
- "module-config": safeGenerateModuleCode(nitro, "#nitro-graphql/module-config"),
23
- "graphql-config": safeGenerateModuleCode(nitro, "#nitro-graphql/graphql-config")
24
- };
25
- const debugInfo = {
26
- isDev: nitro.options.dev,
27
- framework: nitro.options.framework.name,
28
- graphqlFramework: nitro.options.graphql?.framework,
29
- federation: nitro.options.graphql?.federation,
30
- scanned: {
31
- schemas: nitro.scanSchemas?.length || 0,
32
- schemaFiles: nitro.scanSchemas || [],
33
- resolvers: nitro.scanResolvers?.length || 0,
34
- resolverFiles: nitro.scanResolvers || [],
35
- directives: nitro.scanDirectives?.length || 0,
36
- directiveFiles: nitro.scanDirectives || [],
37
- documents: nitro.scanDocuments?.length || 0,
38
- documentFiles: nitro.scanDocuments || []
39
- },
40
- virtualModules: virtualModuleCodes
41
- };
42
- return `export const debugInfo = ${JSON.stringify(debugInfo, null, 2)};`;
43
- }
44
- /**
45
- * Register the debug info virtual module with Nitro
46
- */
47
- function virtualDebugInfo(nitro) {
48
- nitro.options.virtual ??= {};
49
- nitro.options.virtual["#nitro-graphql/debug-info"] = () => generateDebugInfoModule(nitro);
50
- }
51
-
52
- //#endregion
53
- export { generateDebugInfoModule, virtualDebugInfo };
@@ -1,14 +0,0 @@
1
- import { Nitro } from "nitro/types";
2
-
3
- //#region src/virtual/generators/directives.d.ts
4
-
5
- /**
6
- * Generate virtual module code for server directives
7
- */
8
- declare function generateDirectivesModule(nitro: Nitro): string;
9
- /**
10
- * Register the directives virtual module with Nitro
11
- */
12
- declare function virtualDirectives(nitro: Nitro): void;
13
- //#endregion
14
- export { generateDirectivesModule, virtualDirectives };
@@ -1,52 +0,0 @@
1
- import { genImport } from "knitwork";
2
-
3
- //#region src/virtual/generators/directives.ts
4
- /**
5
- * Generate virtual module code for server directives
6
- */
7
- function generateDirectivesModule(nitro) {
8
- try {
9
- const imports = nitro.scanDirectives || [];
10
- if (imports.length === 0) return "export const directives = []";
11
- const importsContent = [];
12
- const invalidImports = [];
13
- for (const { specifier, imports: importList, options } of imports) try {
14
- if (!importList || importList.length === 0) {
15
- invalidImports.push(`${specifier}: No exports found`);
16
- continue;
17
- }
18
- const importCode = genImport(specifier, importList, options);
19
- importsContent.push(importCode);
20
- } catch (error) {
21
- const message = error instanceof Error ? error.message : String(error);
22
- invalidImports.push(`${specifier}: ${message}`);
23
- if (nitro.options.dev) nitro.logger.error(`[nitro-graphql] Failed to generate import for directive ${specifier}:`, error);
24
- }
25
- if (invalidImports.length > 0 && nitro.options.dev) {
26
- nitro.logger.warn("[nitro-graphql] Some directive imports could not be generated:");
27
- for (const msg of invalidImports) nitro.logger.warn(` - ${msg}`);
28
- }
29
- const data = imports.map(({ imports: importList }) => importList.map((i) => `{ directive: ${i.as} }`).join(",\n")).filter(Boolean).join(",\n");
30
- return [
31
- ...importsContent,
32
- "",
33
- "export const directives = [",
34
- data,
35
- "]",
36
- ""
37
- ].join("\n");
38
- } catch (error) {
39
- nitro.logger.error("[nitro-graphql] Failed to generate virtual directive module:", error);
40
- return "export const directives = []";
41
- }
42
- }
43
- /**
44
- * Register the directives virtual module with Nitro
45
- */
46
- function virtualDirectives(nitro) {
47
- nitro.options.virtual ??= {};
48
- nitro.options.virtual["#nitro-graphql/server-directives"] = () => generateDirectivesModule(nitro);
49
- }
50
-
51
- //#endregion
52
- export { generateDirectivesModule, virtualDirectives };
@@ -1,6 +0,0 @@
1
- import { generateGraphQLConfigModule, generateModuleConfigModule, virtualGraphQLConfig, virtualModuleConfig } from "./config.mjs";
2
- import { generateDebugInfoModule, virtualDebugInfo } from "./debug.mjs";
3
- import { generateDirectivesModule, virtualDirectives } from "./directives.mjs";
4
- import { generateResolversModule, virtualResolvers } from "./resolvers.mjs";
5
- import { generateSchemasModule, virtualSchemas } from "./schemas.mjs";
6
- export { generateDebugInfoModule, generateDirectivesModule, generateGraphQLConfigModule, generateModuleConfigModule, generateResolversModule, generateSchemasModule, virtualDebugInfo, virtualDirectives, virtualGraphQLConfig, virtualModuleConfig, virtualResolvers, virtualSchemas };
@@ -1,7 +0,0 @@
1
- import { generateGraphQLConfigModule, generateModuleConfigModule, virtualGraphQLConfig, virtualModuleConfig } from "./config.mjs";
2
- import { generateDebugInfoModule, virtualDebugInfo } from "./debug.mjs";
3
- import { generateDirectivesModule, virtualDirectives } from "./directives.mjs";
4
- import { generateResolversModule, virtualResolvers } from "./resolvers.mjs";
5
- import { generateSchemasModule, virtualSchemas } from "./schemas.mjs";
6
-
7
- export { generateDebugInfoModule, generateDirectivesModule, generateGraphQLConfigModule, generateModuleConfigModule, generateResolversModule, generateSchemasModule, virtualDebugInfo, virtualDirectives, virtualGraphQLConfig, virtualModuleConfig, virtualResolvers, virtualSchemas };
@@ -1,14 +0,0 @@
1
- import { Nitro } from "nitro/types";
2
-
3
- //#region src/virtual/generators/resolvers.d.ts
4
-
5
- /**
6
- * Generate virtual module code for server resolvers
7
- */
8
- declare function generateResolversModule(nitro: Nitro): string;
9
- /**
10
- * Register the resolvers virtual module with Nitro
11
- */
12
- declare function virtualResolvers(nitro: Nitro): void;
13
- //#endregion
14
- export { generateResolversModule, virtualResolvers };
@@ -1,55 +0,0 @@
1
- import { genImport } from "knitwork";
2
-
3
- //#region src/virtual/generators/resolvers.ts
4
- /**
5
- * Generate virtual module code for server resolvers
6
- */
7
- function generateResolversModule(nitro) {
8
- try {
9
- const imports = [...nitro.scanResolvers];
10
- if (imports.length === 0) {
11
- if (nitro.options.dev) nitro.logger.warn("[nitro-graphql] No resolvers found. Virtual module will export empty array.");
12
- return "export const resolvers = []";
13
- }
14
- const importsContent = [];
15
- const invalidImports = [];
16
- for (const { specifier, imports: importList, options } of imports) try {
17
- if (!importList || importList.length === 0) {
18
- invalidImports.push(`${specifier}: No exports found`);
19
- continue;
20
- }
21
- const importCode = genImport(specifier, importList, options);
22
- importsContent.push(importCode);
23
- } catch (error) {
24
- const message = error instanceof Error ? error.message : String(error);
25
- invalidImports.push(`${specifier}: ${message}`);
26
- if (nitro.options.dev) nitro.logger.error(`[nitro-graphql] Failed to generate import for ${specifier}:`, error);
27
- }
28
- if (invalidImports.length > 0 && nitro.options.dev) {
29
- nitro.logger.warn("[nitro-graphql] Some resolver imports could not be generated:");
30
- for (const msg of invalidImports) nitro.logger.warn(` - ${msg}`);
31
- }
32
- const data = imports.map(({ imports: importList }) => importList.map((i) => `{ resolver: ${i.as} }`).join(",\n")).filter(Boolean).join(",\n");
33
- return [
34
- ...importsContent,
35
- "",
36
- "export const resolvers = [",
37
- data,
38
- "]",
39
- ""
40
- ].join("\n");
41
- } catch (error) {
42
- nitro.logger.error("[nitro-graphql] Failed to generate virtual resolver module:", error);
43
- return "export const resolvers = []";
44
- }
45
- }
46
- /**
47
- * Register the resolvers virtual module with Nitro
48
- */
49
- function virtualResolvers(nitro) {
50
- nitro.options.virtual ??= {};
51
- nitro.options.virtual["#nitro-graphql/server-resolvers"] = () => generateResolversModule(nitro);
52
- }
53
-
54
- //#endregion
55
- export { generateResolversModule, virtualResolvers };
@@ -1,14 +0,0 @@
1
- import { Nitro } from "nitro/types";
2
-
3
- //#region src/virtual/generators/schemas.d.ts
4
-
5
- /**
6
- * Generate virtual module code for server schemas
7
- */
8
- declare function generateSchemasModule(nitro: Nitro): string;
9
- /**
10
- * Register the schemas virtual module with Nitro
11
- */
12
- declare function virtualSchemas(nitro: Nitro): void;
13
- //#endregion
14
- export { generateSchemasModule, virtualSchemas };
@@ -1,43 +0,0 @@
1
- import { getImportId } from "../../utils/imports.mjs";
2
-
3
- //#region src/virtual/generators/schemas.ts
4
- /**
5
- * Get all schemas from scanned files and config
6
- */
7
- function getSchemas(nitro) {
8
- return [...nitro.scanSchemas, ...nitro.options.graphql?.typedefs ?? []];
9
- }
10
- /**
11
- * Generate virtual module code for server schemas
12
- */
13
- function generateSchemasModule(nitro) {
14
- try {
15
- const imports = getSchemas(nitro);
16
- if (imports.length === 0) {
17
- if (nitro.options.dev) nitro.logger.warn("[nitro-graphql] No schemas found. Virtual module will export empty array.");
18
- return "export const schemas = []";
19
- }
20
- const importStatements = imports.map((handler) => `import ${getImportId(handler)} from '${handler}';`);
21
- const schemaArray = imports.map((h) => `{ def: ${getImportId(h)} }`);
22
- return `
23
- ${importStatements.join("\n")}
24
-
25
- export const schemas = [
26
- ${schemaArray.join(",\n")}
27
- ];
28
- `;
29
- } catch (error) {
30
- nitro.logger.error("[nitro-graphql] Failed to generate virtual schema module:", error);
31
- return "export const schemas = []";
32
- }
33
- }
34
- /**
35
- * Register the schemas virtual module with Nitro
36
- */
37
- function virtualSchemas(nitro) {
38
- nitro.options.virtual ??= {};
39
- nitro.options.virtual["#nitro-graphql/server-schemas"] = () => generateSchemasModule(nitro);
40
- }
41
-
42
- //#endregion
43
- export { generateSchemasModule, virtualSchemas };
@@ -1,9 +0,0 @@
1
- //#region src/virtual/graphql-config.d.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/graphql-config
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- declare const importedConfig: {};
8
- //#endregion
9
- export { importedConfig };
@@ -1,10 +0,0 @@
1
- //#region src/virtual/graphql-config.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/graphql-config
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- const importedConfig = {};
8
-
9
- //#endregion
10
- export { importedConfig };
@@ -1,9 +0,0 @@
1
- //#region src/virtual/module-config.d.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/module-config
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- declare const moduleConfig: Record<string, any>;
8
- //#endregion
9
- export { moduleConfig };
@@ -1,10 +0,0 @@
1
- //#region src/virtual/module-config.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/module-config
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- const moduleConfig = {};
8
-
9
- //#endregion
10
- export { moduleConfig };
@@ -1,11 +0,0 @@
1
- //#region src/virtual/server-directives.d.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/server-directives
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- declare const directives: Array<{
8
- directive: any;
9
- }>;
10
- //#endregion
11
- export { directives };
@@ -1,10 +0,0 @@
1
- //#region src/virtual/server-directives.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/server-directives
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- const directives = [];
8
-
9
- //#endregion
10
- export { directives };
@@ -1,11 +0,0 @@
1
- //#region src/virtual/server-resolvers.d.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/server-resolvers
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- declare const resolvers: Array<{
8
- resolver: any;
9
- }>;
10
- //#endregion
11
- export { resolvers };
@@ -1,10 +0,0 @@
1
- //#region src/virtual/server-resolvers.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/server-resolvers
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- const resolvers = [];
8
-
9
- //#endregion
10
- export { resolvers };
@@ -1,11 +0,0 @@
1
- //#region src/virtual/server-schemas.d.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/server-schemas
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- declare const schemas: Array<{
8
- def: string;
9
- }>;
10
- //#endregion
11
- export { schemas };
@@ -1,10 +0,0 @@
1
- //#region src/virtual/server-schemas.ts
2
- /**
3
- * Virtual module stub for #nitro-graphql/server-schemas
4
- * This file is only used during build/bundling to prevent import resolution errors.
5
- * At runtime, Nitro will override this with the actual virtual module.
6
- */
7
- const schemas = [];
8
-
9
- //#endregion
10
- export { schemas };
File without changes