nitro-graphql 2.0.0-beta.37 → 2.0.0-beta.39
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/README.md +2 -2
- package/dist/cli/commands/generate.d.mts +26 -0
- package/dist/cli/commands/generate.mjs +196 -0
- package/dist/cli/commands/index.d.mts +4 -0
- package/dist/cli/commands/index.mjs +5 -0
- package/dist/cli/commands/init.d.mts +43 -0
- package/dist/cli/commands/init.mjs +191 -0
- package/dist/cli/commands/validate.d.mts +10 -0
- package/dist/cli/commands/validate.mjs +69 -0
- package/dist/cli/completions.d.mts +7 -0
- package/dist/cli/completions.mjs +34 -0
- package/dist/cli/config.d.mts +75 -0
- package/dist/cli/config.mjs +20 -0
- package/dist/cli/index.d.mts +24 -0
- package/dist/cli/index.mjs +253 -0
- package/dist/core/codegen/client.d.mts +23 -0
- package/dist/core/codegen/client.mjs +150 -0
- package/dist/core/codegen/document-loader.d.mts +10 -0
- package/dist/core/codegen/document-loader.mjs +18 -0
- package/dist/core/codegen/index.d.mts +8 -0
- package/dist/core/codegen/index.mjs +9 -0
- package/dist/{utils/codegen-plugin.d.mts → core/codegen/plugin.d.mts} +2 -2
- package/dist/{utils/codegen-plugin.mjs → core/codegen/plugin.mjs} +1 -1
- package/dist/core/codegen/runtime.d.mts +20 -0
- package/dist/core/codegen/runtime.mjs +60 -0
- package/dist/core/codegen/schema-loader.d.mts +28 -0
- package/dist/core/codegen/schema-loader.mjs +128 -0
- package/dist/core/codegen/server.d.mts +28 -0
- package/dist/core/codegen/server.mjs +143 -0
- package/dist/{codegen → core/codegen}/validation.d.mts +1 -1
- package/dist/{codegen → core/codegen}/validation.mjs +1 -1
- package/dist/core/config.d.mts +50 -0
- package/dist/core/config.mjs +82 -0
- package/dist/core/constants.d.mts +188 -0
- package/dist/core/constants.mjs +210 -0
- package/dist/core/index.d.mts +32 -0
- package/dist/core/index.mjs +26 -0
- package/dist/core/scanning/ast-scanner.d.mts +23 -0
- package/dist/core/scanning/ast-scanner.mjs +103 -0
- package/dist/core/scanning/common.d.mts +37 -0
- package/dist/core/scanning/common.mjs +60 -0
- package/dist/core/scanning/directives.d.mts +10 -0
- package/dist/core/scanning/directives.mjs +29 -0
- package/dist/core/scanning/documents.d.mts +21 -0
- package/dist/core/scanning/documents.mjs +43 -0
- package/dist/core/scanning/index.d.mts +7 -0
- package/dist/core/scanning/index.mjs +8 -0
- package/dist/core/scanning/resolvers.d.mts +10 -0
- package/dist/core/scanning/resolvers.mjs +58 -0
- package/dist/core/scanning/schemas.d.mts +14 -0
- package/dist/core/scanning/schemas.mjs +64 -0
- package/dist/{utils/schema-builder.d.mts → core/schema/builder.d.mts} +7 -2
- package/dist/{utils/schema-builder.mjs → core/schema/builder.mjs} +22 -3
- package/dist/{utils → core/schema}/federation.d.mts +10 -5
- package/dist/{utils → core/schema}/federation.mjs +1 -1
- package/dist/core/schema/index.d.mts +3 -0
- package/dist/core/schema/index.mjs +4 -0
- package/dist/core/types/adapter.d.mts +58 -0
- package/dist/core/types/codegen.d.mts +133 -0
- package/dist/core/types/config.d.mts +212 -0
- package/dist/{types → core/types}/define.d.mts +3 -7
- package/dist/core/types/index.d.mts +5 -0
- package/dist/core/types/scanning.d.mts +69 -0
- package/dist/core/types/scanning.mjs +1 -0
- package/dist/{utils → core/utils}/directive-parser.d.mts +21 -5
- package/dist/{utils → core/utils}/directive-parser.mjs +25 -36
- package/dist/{utils → core/utils}/errors.d.mts +8 -4
- package/dist/{utils → core/utils}/errors.mjs +8 -4
- package/dist/core/utils/file-io.d.mts +24 -0
- package/dist/core/utils/file-io.mjs +47 -0
- package/dist/{utils → core/utils}/imports.d.mts +1 -1
- package/dist/{utils → core/utils}/imports.mjs +1 -1
- package/dist/core/utils/index.d.mts +7 -0
- package/dist/core/utils/index.mjs +8 -0
- package/dist/core/utils/logger.d.mts +19 -0
- package/dist/core/utils/logger.mjs +38 -0
- package/dist/{utils → core/utils}/ofetch-templates.d.mts +1 -1
- package/dist/{utils → core/utils}/ofetch-templates.mjs +1 -1
- package/dist/core/validation/external-services.d.mts +11 -0
- package/dist/{utils/validation.mjs → core/validation/external-services.mjs} +3 -3
- package/dist/core/validation/index.d.mts +2 -0
- package/dist/core/validation/index.mjs +3 -0
- package/dist/define.d.mts +2 -4
- package/dist/define.mjs +1 -1
- package/dist/index.d.mts +6 -44
- package/dist/index.mjs +5 -62
- package/dist/nitro/adapter.d.mts +30 -0
- package/dist/nitro/adapter.mjs +97 -0
- package/dist/{utils → nitro}/apollo.d.mts +1 -1
- package/dist/{utils → nitro}/apollo.mjs +1 -1
- package/dist/nitro/codegen.d.mts +19 -0
- package/dist/nitro/codegen.mjs +141 -0
- package/dist/nitro/config.d.mts +52 -0
- package/dist/nitro/config.mjs +58 -0
- package/dist/nitro/index.d.mts +46 -0
- package/dist/nitro/index.mjs +65 -0
- package/dist/{utils/path-resolver.d.mts → nitro/paths.d.mts} +3 -19
- package/dist/{utils/path-resolver.mjs → nitro/paths.mjs} +2 -36
- package/dist/{rollup.d.mts → nitro/rollup.d.mts} +1 -1
- package/dist/{rollup.mjs → nitro/rollup.mjs} +11 -23
- package/dist/{routes → nitro/routes}/apollo-server.d.mts +1 -1
- package/dist/{routes → nitro/routes}/apollo-server.mjs +5 -5
- package/dist/{routes → nitro/routes}/debug-template.d.mts +1 -1
- package/dist/{routes → nitro/routes}/debug-template.mjs +1 -1
- package/dist/{routes → nitro/routes}/debug.d.mts +10 -16
- package/dist/{routes → nitro/routes}/debug.mjs +2 -2
- package/dist/{routes → nitro/routes}/graphql-yoga.d.mts +1 -1
- package/dist/{routes → nitro/routes}/graphql-yoga.mjs +3 -3
- package/dist/{routes → nitro/routes}/health.d.mts +1 -1
- package/dist/{routes → nitro/routes}/health.mjs +1 -1
- package/dist/nitro/setup/file-watcher.d.mts +16 -0
- package/dist/{setup → nitro/setup}/file-watcher.mjs +14 -18
- package/dist/{setup.d.mts → nitro/setup/logging.d.mts} +5 -6
- package/dist/nitro/setup/logging.mjs +66 -0
- package/dist/nitro/setup/rollup-integration.d.mts +16 -0
- package/dist/{setup → nitro/setup}/rollup-integration.mjs +2 -2
- package/dist/nitro/setup/routes.d.mts +10 -0
- package/dist/nitro/setup/routes.mjs +35 -0
- package/dist/nitro/setup/ts-config.d.mts +11 -0
- package/dist/{setup → nitro/setup}/ts-config.mjs +3 -3
- package/dist/nitro/setup.d.mts +12 -0
- package/dist/{setup.mjs → nitro/setup.mjs} +33 -100
- package/dist/{types/index.d.mts → nitro/types.d.mts} +125 -43
- package/dist/nitro/types.mjs +1 -0
- package/dist/nitro/virtual/generators.d.mts +31 -0
- package/dist/nitro/virtual/generators.mjs +193 -0
- package/dist/nitro/virtual/stubs.d.mts +20 -0
- package/dist/nitro/virtual/stubs.mjs +31 -0
- package/dist/{ecosystem/nuxt.d.mts → nuxt.d.mts} +1 -1
- package/dist/{ecosystem/nuxt.mjs → nuxt.mjs} +2 -2
- package/dist/{graphql/server.d.mts → stubs/index.d.mts} +5 -1
- package/dist/stubs/index.mjs +1 -0
- package/package.json +45 -42
- package/dist/codegen/client-types.d.mts +0 -13
- package/dist/codegen/client-types.mjs +0 -131
- package/dist/codegen/external-types.d.mts +0 -12
- package/dist/codegen/external-types.mjs +0 -88
- package/dist/codegen/index.d.mts +0 -18
- package/dist/codegen/index.mjs +0 -24
- package/dist/codegen/server-types.d.mts +0 -13
- package/dist/codegen/server-types.mjs +0 -64
- package/dist/config/defaults.mjs +0 -36
- package/dist/constants/scalars.mjs +0 -27
- package/dist/constants.mjs +0 -106
- package/dist/graphql/index.d.mts +0 -5
- package/dist/setup/graphql-scanner.mjs +0 -25
- package/dist/setup/scaffold-generator.mjs +0 -109
- package/dist/types/standard-schema.d.mts +0 -59
- package/dist/utils/client-codegen.d.mts +0 -41
- package/dist/utils/client-codegen.mjs +0 -277
- package/dist/utils/file-generator.d.mts +0 -37
- package/dist/utils/file-generator.mjs +0 -72
- package/dist/utils/file-writer.d.mts +0 -35
- package/dist/utils/file-writer.mjs +0 -32
- package/dist/utils/index.d.mts +0 -13
- package/dist/utils/index.mjs +0 -13
- package/dist/utils/layers.d.mts +0 -22
- package/dist/utils/layers.mjs +0 -28
- package/dist/utils/scanning/common.d.mts +0 -23
- package/dist/utils/scanning/common.mjs +0 -39
- package/dist/utils/scanning/directives.d.mts +0 -11
- package/dist/utils/scanning/directives.mjs +0 -43
- package/dist/utils/scanning/documents.d.mts +0 -15
- package/dist/utils/scanning/documents.mjs +0 -46
- package/dist/utils/scanning/index.d.mts +0 -6
- package/dist/utils/scanning/index.mjs +0 -7
- package/dist/utils/scanning/resolvers.d.mts +0 -11
- package/dist/utils/scanning/resolvers.mjs +0 -100
- package/dist/utils/scanning/schemas.d.mts +0 -15
- package/dist/utils/scanning/schemas.mjs +0 -29
- package/dist/utils/server-codegen.d.mts +0 -7
- package/dist/utils/server-codegen.mjs +0 -113
- package/dist/utils/type-generation.d.mts +0 -6
- package/dist/utils/type-generation.mjs +0 -7
- package/dist/utils/validation.d.mts +0 -11
- package/dist/virtual/debug-info.d.mts +0 -9
- package/dist/virtual/debug-info.mjs +0 -26
- package/dist/virtual/generators/config.d.mts +0 -22
- package/dist/virtual/generators/config.mjs +0 -36
- package/dist/virtual/generators/debug.d.mts +0 -14
- package/dist/virtual/generators/debug.mjs +0 -53
- package/dist/virtual/generators/directives.d.mts +0 -14
- package/dist/virtual/generators/directives.mjs +0 -52
- package/dist/virtual/generators/index.d.mts +0 -6
- package/dist/virtual/generators/index.mjs +0 -7
- package/dist/virtual/generators/resolvers.d.mts +0 -14
- package/dist/virtual/generators/resolvers.mjs +0 -55
- package/dist/virtual/generators/schemas.d.mts +0 -14
- package/dist/virtual/generators/schemas.mjs +0 -43
- package/dist/virtual/graphql-config.d.mts +0 -9
- package/dist/virtual/graphql-config.mjs +0 -10
- package/dist/virtual/module-config.d.mts +0 -9
- package/dist/virtual/module-config.mjs +0 -10
- package/dist/virtual/server-directives.d.mts +0 -11
- package/dist/virtual/server-directives.mjs +0 -10
- package/dist/virtual/server-resolvers.d.mts +0 -11
- package/dist/virtual/server-resolvers.mjs +0 -10
- package/dist/virtual/server-schemas.d.mts +0 -11
- package/dist/virtual/server-schemas.mjs +0 -10
- /package/dist/{graphql/index.mjs → core/types/adapter.mjs} +0 -0
- /package/dist/{graphql/server.mjs → core/types/codegen.mjs} +0 -0
- /package/dist/{types/define.mjs → core/types/config.mjs} +0 -0
- /package/dist/{types/index.mjs → core/types/define.mjs} +0 -0
- /package/dist/{types/standard-schema.mjs → core/types/index.mjs} +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { NitroAdapter } from "./adapter.mjs";
|
|
2
|
+
import { resolveSecurityConfig } from "./setup/logging.mjs";
|
|
3
|
+
import { setupNitroGraphQL } from "./setup.mjs";
|
|
4
|
+
import { readFile } from "node:fs/promises";
|
|
5
|
+
import defu from "defu";
|
|
6
|
+
|
|
7
|
+
//#region src/nitro/index.ts
|
|
8
|
+
/**
|
|
9
|
+
* Vite plugin to load GraphQL files as strings AND auto-register Nitro module
|
|
10
|
+
* This prevents Vite from trying to parse .graphql/.gql files as JavaScript
|
|
11
|
+
* and automatically sets up the nitro-graphql module via the nitro: hook
|
|
12
|
+
*
|
|
13
|
+
* @example - Vite usage
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { defineConfig } from 'vite'
|
|
16
|
+
* import { nitro } from 'nitro/vite'
|
|
17
|
+
* import graphql from 'nitro-graphql'
|
|
18
|
+
*
|
|
19
|
+
* export default defineConfig({
|
|
20
|
+
* plugins: [
|
|
21
|
+
* graphql({ framework: 'graphql-yoga' }), // Auto-registers Nitro module
|
|
22
|
+
* nitro()
|
|
23
|
+
* ]
|
|
24
|
+
* })
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
*
|
|
28
|
+
* @example - Nitro direct usage
|
|
29
|
+
* ```ts
|
|
30
|
+
*
|
|
31
|
+
* import graphql from 'nitro-graphql'
|
|
32
|
+
*
|
|
33
|
+
* export default defineConfig({
|
|
34
|
+
* modules: [
|
|
35
|
+
* graphql({ framework: 'graphql-yoga' }) // Auto-registers Nitro module
|
|
36
|
+
* ]
|
|
37
|
+
* })
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
function graphqlModule(options) {
|
|
41
|
+
return {
|
|
42
|
+
name: "nitro-graphql",
|
|
43
|
+
enforce: "pre",
|
|
44
|
+
async load(id) {
|
|
45
|
+
if (!/\.(?:graphql|gql)$/i.test(id)) return null;
|
|
46
|
+
try {
|
|
47
|
+
const content = await readFile(id, "utf-8");
|
|
48
|
+
return `export default ${JSON.stringify(content)}`;
|
|
49
|
+
} catch (error) {
|
|
50
|
+
if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") return null;
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
nitro: { async setup(nitro) {
|
|
55
|
+
if (options) nitro.options.graphql = defu(nitro.options.graphql || {}, options);
|
|
56
|
+
nitro.options.graphql = nitro.options.graphql || {};
|
|
57
|
+
nitro.options.graphql._vitePlugin = true;
|
|
58
|
+
await setupNitroGraphQL(nitro);
|
|
59
|
+
} }
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
var nitro_default = graphqlModule;
|
|
63
|
+
|
|
64
|
+
//#endregion
|
|
65
|
+
export { NitroAdapter, nitro_default as default, resolveSecurityConfig, setupNitroGraphQL };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FileGenerationConfig, SdkConfig, TypesConfig } from "./types.mjs";
|
|
2
2
|
import { Nitro } from "nitro/types";
|
|
3
3
|
|
|
4
|
-
//#region src/
|
|
4
|
+
//#region src/nitro/paths.d.ts
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Placeholder values for path resolution
|
|
@@ -34,22 +34,6 @@ declare function shouldGenerateFile(config: FileGenerationConfig | undefined, ca
|
|
|
34
34
|
* Returns: resolved absolute path or null if file should not be generated
|
|
35
35
|
*/
|
|
36
36
|
declare function resolveFilePath(config: FileGenerationConfig | undefined, categoryEnabled: boolean | undefined, topLevelEnabled: boolean, defaultPath: string, placeholders: PathPlaceholders): string | null;
|
|
37
|
-
/**
|
|
38
|
-
* Check if scaffold files should be generated (category-level check)
|
|
39
|
-
*/
|
|
40
|
-
declare function shouldGenerateScaffold(nitro: Nitro): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Get scaffold configuration (handles false case)
|
|
43
|
-
*/
|
|
44
|
-
declare function getScaffoldConfig(nitro: Nitro): ScaffoldConfig;
|
|
45
|
-
/**
|
|
46
|
-
* Check if client utilities should be generated (category-level check)
|
|
47
|
-
*/
|
|
48
|
-
declare function shouldGenerateClientUtils(nitro: Nitro): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* Get client utilities configuration (handles false case)
|
|
51
|
-
*/
|
|
52
|
-
declare function getClientUtilsConfig(nitro: Nitro): ClientUtilsConfig;
|
|
53
37
|
/**
|
|
54
38
|
* Check if SDK files should be generated (category-level check)
|
|
55
39
|
*/
|
|
@@ -67,4 +51,4 @@ declare function shouldGenerateTypes(nitro: Nitro): boolean;
|
|
|
67
51
|
*/
|
|
68
52
|
declare function getTypesConfig(nitro: Nitro): TypesConfig;
|
|
69
53
|
//#endregion
|
|
70
|
-
export { PathPlaceholders,
|
|
54
|
+
export { PathPlaceholders, getDefaultPaths, getSdkConfig, getTypesConfig, replacePlaceholders, resolveFilePath, shouldGenerateFile, shouldGenerateSdk, shouldGenerateTypes };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isAbsolute, resolve } from "pathe";
|
|
2
2
|
|
|
3
|
-
//#region src/
|
|
3
|
+
//#region src/nitro/paths.ts
|
|
4
4
|
/**
|
|
5
5
|
* Replace placeholders in a path string
|
|
6
6
|
* Supports: {serviceName}, {buildDir}, {rootDir}, {framework}, {typesDir}, {serverGraphql}, {clientGraphql}
|
|
@@ -55,40 +55,6 @@ function resolveFilePath(config, categoryEnabled, topLevelEnabled, defaultPath,
|
|
|
55
55
|
return resolve(placeholders.rootDir, resolvedDefault);
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
* Check if scaffold files should be generated (category-level check)
|
|
59
|
-
*/
|
|
60
|
-
function shouldGenerateScaffold(nitro) {
|
|
61
|
-
const scaffoldConfig = nitro.options.graphql?.scaffold;
|
|
62
|
-
if (scaffoldConfig === false) return false;
|
|
63
|
-
if (scaffoldConfig && scaffoldConfig.enabled === false) return false;
|
|
64
|
-
return true;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Get scaffold configuration (handles false case)
|
|
68
|
-
*/
|
|
69
|
-
function getScaffoldConfig(nitro) {
|
|
70
|
-
const scaffoldConfig = nitro.options.graphql?.scaffold;
|
|
71
|
-
if (scaffoldConfig === false) return { enabled: false };
|
|
72
|
-
return scaffoldConfig || {};
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Check if client utilities should be generated (category-level check)
|
|
76
|
-
*/
|
|
77
|
-
function shouldGenerateClientUtils(nitro) {
|
|
78
|
-
const clientUtilsConfig = nitro.options.graphql?.clientUtils;
|
|
79
|
-
if (clientUtilsConfig === false) return false;
|
|
80
|
-
if (clientUtilsConfig && clientUtilsConfig.enabled === false) return false;
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Get client utilities configuration (handles false case)
|
|
85
|
-
*/
|
|
86
|
-
function getClientUtilsConfig(nitro) {
|
|
87
|
-
const clientUtilsConfig = nitro.options.graphql?.clientUtils;
|
|
88
|
-
if (clientUtilsConfig === false) return { enabled: false };
|
|
89
|
-
return clientUtilsConfig || {};
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
58
|
* Check if SDK files should be generated (category-level check)
|
|
93
59
|
*/
|
|
94
60
|
function shouldGenerateSdk(nitro) {
|
|
@@ -124,4 +90,4 @@ function getTypesConfig(nitro) {
|
|
|
124
90
|
}
|
|
125
91
|
|
|
126
92
|
//#endregion
|
|
127
|
-
export {
|
|
93
|
+
export { getDefaultPaths, getSdkConfig, getTypesConfig, replacePlaceholders, resolveFilePath, shouldGenerateFile, shouldGenerateSdk, shouldGenerateTypes };
|
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { generateClientTypes } from "./codegen
|
|
3
|
-
import {
|
|
4
|
-
import { virtualGraphQLConfig, virtualModuleConfig } from "./virtual/generators/config.mjs";
|
|
5
|
-
import { virtualDebugInfo } from "./virtual/generators/debug.mjs";
|
|
6
|
-
import { virtualDirectives } from "./virtual/generators/directives.mjs";
|
|
7
|
-
import { virtualResolvers } from "./virtual/generators/resolvers.mjs";
|
|
8
|
-
import { virtualSchemas } from "./virtual/generators/schemas.mjs";
|
|
1
|
+
import { NitroAdapter } from "./adapter.mjs";
|
|
2
|
+
import { generateClientTypes, generateServerTypes } from "./codegen.mjs";
|
|
3
|
+
import { registerAllVirtualModules } from "./virtual/generators.mjs";
|
|
9
4
|
import { readFile } from "node:fs/promises";
|
|
10
|
-
import { fileURLToPath } from "node:url";
|
|
11
5
|
import { parse } from "graphql";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
12
7
|
|
|
13
|
-
//#region src/rollup.ts
|
|
8
|
+
//#region src/nitro/rollup.ts
|
|
14
9
|
async function rollupConfig(nitro) {
|
|
15
|
-
|
|
16
|
-
virtualResolvers(nitro);
|
|
17
|
-
virtualDirectives(nitro);
|
|
18
|
-
virtualGraphQLConfig(nitro);
|
|
19
|
-
virtualModuleConfig(nitro);
|
|
20
|
-
virtualDebugInfo(nitro);
|
|
10
|
+
registerAllVirtualModules(nitro);
|
|
21
11
|
nitro.hooks.hook("rollup:before", (_, rollupConfig$1) => {
|
|
22
12
|
rollupConfig$1.plugins = rollupConfig$1.plugins || [];
|
|
23
13
|
const { include = /\.(?:graphql|gql)$/i, exclude, validate = false } = nitro.options.graphql?.loader || {};
|
|
@@ -31,12 +21,10 @@ async function rollupConfig(nitro) {
|
|
|
31
21
|
if (id.startsWith("#nitro-graphql/")) return `\0virtual:${id}`;
|
|
32
22
|
if (parent?.startsWith("\0virtual:#nitro-graphql")) {
|
|
33
23
|
const runtimeDir = fileURLToPath(new URL("routes", import.meta.url));
|
|
34
|
-
const internalRes = await this.resolve(id, runtimeDir, {
|
|
35
|
-
|
|
36
|
-
...options
|
|
37
|
-
});
|
|
38
|
-
if (internalRes) return internalRes;
|
|
24
|
+
const internalRes = await this.resolve(id, runtimeDir, { skipSelf: true });
|
|
25
|
+
if (internalRes) return internalRes.id;
|
|
39
26
|
}
|
|
27
|
+
return null;
|
|
40
28
|
}
|
|
41
29
|
},
|
|
42
30
|
load: {
|
|
@@ -90,8 +78,8 @@ async function rollupConfig(nitro) {
|
|
|
90
78
|
buildStart: {
|
|
91
79
|
order: "pre",
|
|
92
80
|
async handler() {
|
|
93
|
-
const
|
|
94
|
-
for (const file of
|
|
81
|
+
const result = await NitroAdapter.scanGraphql(nitro);
|
|
82
|
+
for (const file of result.items) this.addWatchFile(file);
|
|
95
83
|
}
|
|
96
84
|
}
|
|
97
85
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as nitro_deps_h30 from "nitro/deps/h3";
|
|
2
2
|
|
|
3
|
-
//#region src/routes/apollo-server.d.ts
|
|
3
|
+
//#region src/nitro/routes/apollo-server.d.ts
|
|
4
4
|
declare const _default: nitro_deps_h30.EventHandlerWithFetch<nitro_deps_h30.EventHandlerRequest, Promise<any>>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { _default as default };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { createMergedSchema } from "
|
|
1
|
+
import { createMergedSchema } from "../../core/schema/builder.mjs";
|
|
2
2
|
import defu from "defu";
|
|
3
|
+
import { ApolloServer } from "@apollo/server";
|
|
4
|
+
import { defineEventHandler } from "nitro/h3";
|
|
3
5
|
import { importedConfig } from "#nitro-graphql/graphql-config";
|
|
4
6
|
import { moduleConfig } from "#nitro-graphql/module-config";
|
|
5
7
|
import { directives } from "#nitro-graphql/server-directives";
|
|
6
8
|
import { resolvers } from "#nitro-graphql/server-resolvers";
|
|
7
9
|
import { schemas } from "#nitro-graphql/server-schemas";
|
|
8
|
-
import { ApolloServer } from "@apollo/server";
|
|
9
10
|
import { ApolloServerPluginLandingPageDisabled } from "@apollo/server/plugin/disabled";
|
|
10
11
|
import { ApolloServerPluginLandingPageLocalDefault } from "@apollo/server/plugin/landingPage/default";
|
|
11
|
-
import { startServerAndCreateH3Handler } from "nitro-graphql/
|
|
12
|
-
import { defineEventHandler } from "nitro/h3";
|
|
12
|
+
import { startServerAndCreateH3Handler } from "nitro-graphql/apollo";
|
|
13
13
|
|
|
14
|
-
//#region src/routes/apollo-server.ts
|
|
14
|
+
//#region src/nitro/routes/apollo-server.ts
|
|
15
15
|
let apolloServer = null;
|
|
16
16
|
let serverStarted = false;
|
|
17
17
|
async function createApolloServer() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as nitro_deps_h31 from "nitro/deps/h3";
|
|
2
2
|
|
|
3
|
-
//#region src/routes/debug.d.ts
|
|
3
|
+
//#region src/nitro/routes/debug.d.ts
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Debug endpoint for inspecting virtual modules and GraphQL setup
|
|
@@ -31,30 +31,24 @@ declare const _default: nitro_deps_h31.EventHandlerWithFetch<nitro_deps_h31.Even
|
|
|
31
31
|
documentFiles: any;
|
|
32
32
|
};
|
|
33
33
|
runtime: {
|
|
34
|
-
loadedResolvers:
|
|
35
|
-
loadedSchemas:
|
|
36
|
-
loadedDirectives:
|
|
34
|
+
loadedResolvers: any;
|
|
35
|
+
loadedSchemas: any;
|
|
36
|
+
loadedDirectives: any;
|
|
37
37
|
};
|
|
38
38
|
virtualModules: any;
|
|
39
39
|
virtualModuleSamples: {
|
|
40
40
|
'server-resolvers': {
|
|
41
|
-
resolverCount:
|
|
42
|
-
sample:
|
|
43
|
-
hasResolver: boolean;
|
|
44
|
-
resolverKeys: string[];
|
|
45
|
-
}[];
|
|
41
|
+
resolverCount: any;
|
|
42
|
+
sample: any;
|
|
46
43
|
};
|
|
47
44
|
'server-schemas': {
|
|
48
|
-
schemaCount:
|
|
49
|
-
sample:
|
|
50
|
-
defLength: number;
|
|
51
|
-
defPreview: string;
|
|
52
|
-
}[];
|
|
45
|
+
schemaCount: any;
|
|
46
|
+
sample: any;
|
|
53
47
|
};
|
|
54
48
|
'server-directives': {
|
|
55
|
-
directiveCount:
|
|
49
|
+
directiveCount: any;
|
|
56
50
|
};
|
|
57
|
-
'module-config':
|
|
51
|
+
'module-config': any;
|
|
58
52
|
};
|
|
59
53
|
}>>;
|
|
60
54
|
//#endregion
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { generateHtmlDashboard } from "./debug-template.mjs";
|
|
2
|
+
import { defineEventHandler, getQuery } from "nitro/h3";
|
|
2
3
|
import { moduleConfig } from "#nitro-graphql/module-config";
|
|
3
4
|
import { directives } from "#nitro-graphql/server-directives";
|
|
4
5
|
import { resolvers } from "#nitro-graphql/server-resolvers";
|
|
5
6
|
import { schemas } from "#nitro-graphql/server-schemas";
|
|
6
|
-
import { defineEventHandler, getQuery } from "nitro/h3";
|
|
7
7
|
import { debugInfo } from "#nitro-graphql/debug-info";
|
|
8
8
|
|
|
9
|
-
//#region src/routes/debug.ts
|
|
9
|
+
//#region src/nitro/routes/debug.ts
|
|
10
10
|
/**
|
|
11
11
|
* Debug endpoint for inspecting virtual modules and GraphQL setup
|
|
12
12
|
* Only available in development mode
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as nitro_deps_h33 from "nitro/deps/h3";
|
|
2
2
|
|
|
3
|
-
//#region src/routes/graphql-yoga.d.ts
|
|
3
|
+
//#region src/nitro/routes/graphql-yoga.d.ts
|
|
4
4
|
declare const _default: nitro_deps_h33.EventHandlerWithFetch<nitro_deps_h33.EventHandlerRequest, Promise<Response>>;
|
|
5
5
|
//#endregion
|
|
6
6
|
export { _default as default };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { createMergedSchema } from "
|
|
1
|
+
import { createMergedSchema } from "../../core/schema/builder.mjs";
|
|
2
2
|
import defu from "defu";
|
|
3
|
+
import { defineEventHandler } from "nitro/h3";
|
|
3
4
|
import { importedConfig } from "#nitro-graphql/graphql-config";
|
|
4
5
|
import { moduleConfig } from "#nitro-graphql/module-config";
|
|
5
6
|
import { directives } from "#nitro-graphql/server-directives";
|
|
6
7
|
import { resolvers } from "#nitro-graphql/server-resolvers";
|
|
7
8
|
import { schemas } from "#nitro-graphql/server-schemas";
|
|
8
|
-
import { defineEventHandler } from "nitro/h3";
|
|
9
9
|
import { createYoga } from "graphql-yoga";
|
|
10
10
|
|
|
11
|
-
//#region src/routes/graphql-yoga.ts
|
|
11
|
+
//#region src/nitro/routes/graphql-yoga.ts
|
|
12
12
|
const apolloSandboxHtml = `<!DOCTYPE html>
|
|
13
13
|
<html lang="en">
|
|
14
14
|
<body style="margin: 0; overflow-x: hidden; overflow-y: hidden">
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as nitro_deps_h35 from "nitro/deps/h3";
|
|
2
2
|
|
|
3
|
-
//#region src/routes/health.d.ts
|
|
3
|
+
//#region src/nitro/routes/health.d.ts
|
|
4
4
|
declare const _default: nitro_deps_h35.EventHandlerWithFetch<nitro_deps_h35.EventHandlerRequest, Promise<{
|
|
5
5
|
status: string;
|
|
6
6
|
message: string;
|
|
@@ -2,7 +2,7 @@ import { defineEventHandler } from "nitro/h3";
|
|
|
2
2
|
import { $fetch } from "nitro/deps/ofetch";
|
|
3
3
|
import { useRuntimeConfig } from "nitro/runtime-config";
|
|
4
4
|
|
|
5
|
-
//#region src/routes/health.ts
|
|
5
|
+
//#region src/nitro/routes/health.ts
|
|
6
6
|
var health_default = defineEventHandler(async (event) => {
|
|
7
7
|
const runtime = useRuntimeConfig();
|
|
8
8
|
if (!runtime.graphql || !runtime.graphql.endpoint?.graphql) {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FSWatcher } from "chokidar";
|
|
2
|
+
import { Nitro } from "nitro/types";
|
|
3
|
+
|
|
4
|
+
//#region src/nitro/setup/file-watcher.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Setup file watcher for GraphQL files (schemas, resolvers, directives, documents)
|
|
8
|
+
* Watches for changes and triggers type regeneration and dev server reload
|
|
9
|
+
*/
|
|
10
|
+
declare function setupFileWatcher(nitro: Nitro, watchDirs: string[]): FSWatcher;
|
|
11
|
+
/**
|
|
12
|
+
* Determine which directories to watch based on framework and configuration
|
|
13
|
+
*/
|
|
14
|
+
declare function getWatchDirectories(nitro: Nitro): string[];
|
|
15
|
+
//#endregion
|
|
16
|
+
export { getWatchDirectories, setupFileWatcher };
|
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
import { DIRECTIVE_EXTENSIONS, DIR_SERVER_GRAPHQL, DIR_SERVER_GRAPHQL_WIN, GRAPHQL_EXTENSIONS, LOG_TAG, RESOLVER_EXTENSIONS } from "
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { generateLayerIgnorePatterns, getLayerAppDirectories, getLayerServerDirectories } from "../utils/layers.mjs";
|
|
7
|
-
import { scanDirectives } from "../utils/scanning/directives.mjs";
|
|
8
|
-
import { scanResolvers } from "../utils/scanning/resolvers.mjs";
|
|
9
|
-
import { scanSchemas } from "../utils/scanning/schemas.mjs";
|
|
1
|
+
import { DIRECTIVE_EXTENSIONS, DIR_SERVER_GRAPHQL, DIR_SERVER_GRAPHQL_WIN, GRAPHQL_EXTENSIONS, LOG_TAG, RESOLVER_EXTENSIONS } from "../../core/constants.mjs";
|
|
2
|
+
import { generateDirectiveSchemas } from "../../core/utils/directive-parser.mjs";
|
|
3
|
+
import { NitroAdapter } from "../adapter.mjs";
|
|
4
|
+
import { generateClientTypes, generateServerTypes } from "../codegen.mjs";
|
|
5
|
+
import { DEFAULT_WATCHER_IGNORE_INITIAL, DEFAULT_WATCHER_PERSISTENT } from "../config.mjs";
|
|
10
6
|
import consola from "consola";
|
|
11
7
|
import { join } from "pathe";
|
|
12
8
|
import { watch } from "chokidar";
|
|
13
9
|
|
|
14
|
-
//#region src/setup/file-watcher.ts
|
|
10
|
+
//#region src/nitro/setup/file-watcher.ts
|
|
15
11
|
const logger = consola.withTag(LOG_TAG);
|
|
16
12
|
/**
|
|
17
13
|
* Setup file watcher for GraphQL files (schemas, resolvers, directives, documents)
|
|
@@ -21,21 +17,21 @@ function setupFileWatcher(nitro, watchDirs) {
|
|
|
21
17
|
const watcher = watch(watchDirs, {
|
|
22
18
|
persistent: DEFAULT_WATCHER_PERSISTENT,
|
|
23
19
|
ignoreInitial: DEFAULT_WATCHER_IGNORE_INITIAL,
|
|
24
|
-
ignored:
|
|
20
|
+
ignored: nitro.options.ignore
|
|
25
21
|
});
|
|
26
22
|
watcher.on("all", async (_, path) => {
|
|
27
23
|
const isGraphQLFile = GRAPHQL_EXTENSIONS.some((ext) => path.endsWith(ext));
|
|
28
24
|
const isResolverFile = RESOLVER_EXTENSIONS.some((ext) => path.endsWith(ext));
|
|
29
25
|
const isDirectiveFile = DIRECTIVE_EXTENSIONS.some((ext) => path.endsWith(ext));
|
|
30
26
|
if (isGraphQLFile || isResolverFile || isDirectiveFile) if (path.includes(nitro.graphql.serverDir) || path.includes(DIR_SERVER_GRAPHQL) || path.includes(DIR_SERVER_GRAPHQL_WIN) || isResolverFile || isDirectiveFile) {
|
|
31
|
-
const
|
|
32
|
-
nitro.scanDirectives =
|
|
27
|
+
const directivesResult = await NitroAdapter.scanDirectives(nitro);
|
|
28
|
+
nitro.scanDirectives = directivesResult.items;
|
|
33
29
|
if (!nitro.scanSchemas) nitro.scanSchemas = [];
|
|
34
|
-
const directivesPath = await generateDirectiveSchemas(nitro,
|
|
35
|
-
const schemas = await scanSchemas(nitro);
|
|
30
|
+
const directivesPath = await generateDirectiveSchemas(nitro, directivesResult.items);
|
|
31
|
+
const schemas = (await NitroAdapter.scanSchemas(nitro)).items;
|
|
36
32
|
if (directivesPath && !schemas.includes(directivesPath)) schemas.push(directivesPath);
|
|
37
33
|
nitro.scanSchemas = schemas;
|
|
38
|
-
await scanResolvers(nitro)
|
|
34
|
+
nitro.scanResolvers = (await NitroAdapter.scanResolvers(nitro)).items;
|
|
39
35
|
logger.success("Types regenerated");
|
|
40
36
|
await generateServerTypes(nitro, { silent: true });
|
|
41
37
|
await generateClientTypes(nitro, { silent: true });
|
|
@@ -55,8 +51,8 @@ function getWatchDirectories(nitro) {
|
|
|
55
51
|
switch (nitro.options.framework.name) {
|
|
56
52
|
case "nuxt": {
|
|
57
53
|
watchDirs.push(nitro.graphql.clientDir);
|
|
58
|
-
const layerServerDirs =
|
|
59
|
-
const layerAppDirs =
|
|
54
|
+
const layerServerDirs = nitro.options.graphql?.layerServerDirs || [];
|
|
55
|
+
const layerAppDirs = nitro.options.graphql?.layerAppDirs || [];
|
|
60
56
|
for (const layerServerDir of layerServerDirs) watchDirs.push(join(layerServerDir, "graphql"));
|
|
61
57
|
for (const layerAppDir of layerAppDirs) watchDirs.push(join(layerAppDir, "graphql"));
|
|
62
58
|
break;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SecurityConfig } from "
|
|
1
|
+
import { SecurityConfig } from "../types.mjs";
|
|
2
2
|
import { Nitro } from "nitro/types";
|
|
3
3
|
|
|
4
|
-
//#region src/setup.d.ts
|
|
4
|
+
//#region src/nitro/setup/logging.d.ts
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Resolves security configuration with environment-aware defaults
|
|
@@ -10,9 +10,8 @@ import { Nitro } from "nitro/types";
|
|
|
10
10
|
*/
|
|
11
11
|
declare function resolveSecurityConfig(config?: SecurityConfig): Required<SecurityConfig>;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
* Coordinates all initialization steps for the module
|
|
13
|
+
* Log startup information
|
|
15
14
|
*/
|
|
16
|
-
declare function
|
|
15
|
+
declare function logStartupInfo(nitro: Nitro, serverEnabled: boolean): void;
|
|
17
16
|
//#endregion
|
|
18
|
-
export {
|
|
17
|
+
export { logStartupInfo, resolveSecurityConfig };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import consola from "consola";
|
|
2
|
+
|
|
3
|
+
//#region src/nitro/setup/logging.ts
|
|
4
|
+
/**
|
|
5
|
+
* Resolves security configuration with environment-aware defaults
|
|
6
|
+
* In production: introspection off, playground off, errors masked, suggestions disabled
|
|
7
|
+
* In development: introspection on, playground on, errors shown, suggestions enabled
|
|
8
|
+
*/
|
|
9
|
+
function resolveSecurityConfig(config) {
|
|
10
|
+
const isProd = process.env.NODE_ENV === "production";
|
|
11
|
+
return {
|
|
12
|
+
introspection: config?.introspection ?? !isProd,
|
|
13
|
+
playground: config?.playground ?? !isProd,
|
|
14
|
+
maskErrors: config?.maskErrors ?? isProd,
|
|
15
|
+
disableSuggestions: config?.disableSuggestions ?? isProd
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Log startup information
|
|
20
|
+
*/
|
|
21
|
+
function logStartupInfo(nitro, serverEnabled) {
|
|
22
|
+
const externalServicesCount = nitro.options.graphql?.externalServices?.length || 0;
|
|
23
|
+
const docs = nitro.scanDocuments || [];
|
|
24
|
+
const isProd = process.env.NODE_ENV === "production";
|
|
25
|
+
if (serverEnabled) {
|
|
26
|
+
const securityConfig = resolveSecurityConfig(nitro.options.graphql?.security);
|
|
27
|
+
const framework = nitro.options.graphql?.framework || "unknown";
|
|
28
|
+
const schemas = nitro.scanSchemas?.length || 0;
|
|
29
|
+
const resolvers = nitro.scanResolvers?.length || 0;
|
|
30
|
+
consola.box({
|
|
31
|
+
title: "Nitro GraphQL",
|
|
32
|
+
message: [
|
|
33
|
+
`Framework: ${framework}`,
|
|
34
|
+
`Environment: ${isProd ? "production" : "development"}`,
|
|
35
|
+
`Schemas: ${schemas}`,
|
|
36
|
+
`Resolvers: ${resolvers}`,
|
|
37
|
+
externalServicesCount > 0 ? `External Services: ${externalServicesCount}` : "",
|
|
38
|
+
docs.length > 0 ? `Documents: ${docs.length}` : "",
|
|
39
|
+
"",
|
|
40
|
+
"Security:",
|
|
41
|
+
`├─ Introspection: ${securityConfig.introspection ? "enabled" : "disabled"}`,
|
|
42
|
+
`├─ Playground: ${securityConfig.playground ? "enabled" : "disabled"}`,
|
|
43
|
+
`├─ Error Masking: ${securityConfig.maskErrors ? "enabled" : "disabled"}`,
|
|
44
|
+
`└─ Field Suggestions: ${securityConfig.disableSuggestions ? "disabled" : "enabled"}`
|
|
45
|
+
].filter(Boolean).join("\n"),
|
|
46
|
+
style: {
|
|
47
|
+
borderColor: isProd ? "yellow" : "cyan",
|
|
48
|
+
borderStyle: "rounded"
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
} else consola.box({
|
|
52
|
+
title: "Nitro GraphQL (Client Only)",
|
|
53
|
+
message: [
|
|
54
|
+
"Server mode: disabled",
|
|
55
|
+
`External Services: ${externalServicesCount}`,
|
|
56
|
+
`Documents: ${docs.length}`
|
|
57
|
+
].join("\n"),
|
|
58
|
+
style: {
|
|
59
|
+
borderColor: "blue",
|
|
60
|
+
borderStyle: "rounded"
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
//#endregion
|
|
66
|
+
export { logStartupInfo, resolveSecurityConfig };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Nitro } from "nitro/types";
|
|
2
|
+
|
|
3
|
+
//#region src/nitro/setup/rollup-integration.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Setup Rollup/Rolldown chunking configuration for GraphQL files
|
|
7
|
+
* Creates separate chunks for schemas and resolvers to optimize bundle size
|
|
8
|
+
*/
|
|
9
|
+
declare function setupRollupChunking(nitro: Nitro): void;
|
|
10
|
+
/**
|
|
11
|
+
* Configure external dependencies for Rollup
|
|
12
|
+
* Marks codegen and federation packages as external
|
|
13
|
+
*/
|
|
14
|
+
declare function setupRollupExternals(nitro: Nitro): void;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { setupRollupChunking, setupRollupExternals };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CHUNK_NAME_RESOLVERS, CHUNK_NAME_SCHEMAS, CHUNK_PATH_GRAPHQL, CHUNK_PATH_UNKNOWN, GRAPHQL_EXTENSIONS, RESOLVER_EXTENSIONS } from "
|
|
1
|
+
import { CHUNK_NAME_RESOLVERS, CHUNK_NAME_SCHEMAS, CHUNK_PATH_GRAPHQL, CHUNK_PATH_UNKNOWN, GRAPHQL_EXTENSIONS, RESOLVER_EXTENSIONS } from "../../core/constants.mjs";
|
|
2
2
|
|
|
3
|
-
//#region src/setup/rollup-integration.ts
|
|
3
|
+
//#region src/nitro/setup/rollup-integration.ts
|
|
4
4
|
/**
|
|
5
5
|
* Setup Rollup/Rolldown chunking configuration for GraphQL files
|
|
6
6
|
* Creates separate chunks for schemas and resolvers to optimize bundle size
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ENDPOINT_DEBUG, GRAPHQL_HTTP_METHODS } from "../../core/constants.mjs";
|
|
2
|
+
import { join } from "pathe";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
|
|
5
|
+
//#region src/nitro/setup/routes.ts
|
|
6
|
+
/**
|
|
7
|
+
* Register GraphQL route handlers
|
|
8
|
+
*/
|
|
9
|
+
function registerRouteHandlers(nitro) {
|
|
10
|
+
const runtime = fileURLToPath(new URL("../routes", import.meta.url));
|
|
11
|
+
const framework = nitro.options.graphql?.framework;
|
|
12
|
+
if (framework === "graphql-yoga") for (const method of GRAPHQL_HTTP_METHODS) nitro.options.handlers.push({
|
|
13
|
+
route: nitro.options.runtimeConfig.graphql?.endpoint?.graphql || "/api/graphql",
|
|
14
|
+
handler: join(runtime, "graphql-yoga"),
|
|
15
|
+
method
|
|
16
|
+
});
|
|
17
|
+
if (framework === "apollo-server") for (const method of GRAPHQL_HTTP_METHODS) nitro.options.handlers.push({
|
|
18
|
+
route: nitro.options.runtimeConfig.graphql?.endpoint?.graphql || "/api/graphql",
|
|
19
|
+
handler: join(runtime, "apollo-server"),
|
|
20
|
+
method
|
|
21
|
+
});
|
|
22
|
+
nitro.options.handlers.push({
|
|
23
|
+
route: nitro.options.runtimeConfig.graphql?.endpoint?.healthCheck || "/api/graphql/health",
|
|
24
|
+
handler: join(runtime, "health"),
|
|
25
|
+
method: "GET"
|
|
26
|
+
});
|
|
27
|
+
if (nitro.options.dev) nitro.options.handlers.push({
|
|
28
|
+
route: ENDPOINT_DEBUG,
|
|
29
|
+
handler: join(runtime, "debug"),
|
|
30
|
+
method: "GET"
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { registerRouteHandlers };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Nitro, NitroTypes } from "nitro/types";
|
|
2
|
+
|
|
3
|
+
//#region src/nitro/setup/ts-config.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Setup TypeScript path aliases for GraphQL types
|
|
7
|
+
* Called via nitro:config hook to extend tsconfig.json
|
|
8
|
+
*/
|
|
9
|
+
declare function setupTypeScriptPaths(nitro: Nitro, types: NitroTypes): void;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { setupTypeScriptPaths };
|