@cedarjs/internal 7.0.0-canary.3259 → 7.0.0-rc.127
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/dist/build/api.d.ts.map +1 -1
- package/dist/build/api.js +19 -5
- package/dist/build/esbuild-plugin-api-graphql.d.ts.map +1 -1
- package/dist/build/esbuild-plugin-api-graphql.js +4 -2
- package/dist/build/esbuild-plugin-handler-als-wrapping.d.ts +3 -1
- package/dist/build/esbuild-plugin-handler-als-wrapping.d.ts.map +1 -1
- package/dist/build/esbuild-plugin-handler-als-wrapping.js +3 -2
- package/dist/generate/graphqlCodeGen.d.ts.map +1 -1
- package/dist/generate/graphqlCodeGen.js +3 -24
- package/package.json +15 -21
- package/dist/generate/parsedScalars.d.ts +0 -42
- package/dist/generate/parsedScalars.d.ts.map +0 -1
- package/dist/generate/parsedScalars.js +0 -96
package/dist/build/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/build/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,YAAY,EAAe,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/build/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,YAAY,EAAe,MAAM,SAAS,CAAA;AA6CtE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAI9D,eAAO,MAAM,QAAQ,4DAIpB,CAAA;AAED,eAAO,MAAM,UAAU,4DAStB,CAAA;AAED,eAAO,MAAM,aAAa,qBAGzB,CAAA;AAyVD,eAAO,MAAM,gBAAgB,iHAiE5B,CAAA;AAcD,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAoDf"}
|
package/dist/build/api.js
CHANGED
|
@@ -14,7 +14,12 @@ import {
|
|
|
14
14
|
getApiSideBabelPluginsForVite,
|
|
15
15
|
transformWithBabel
|
|
16
16
|
} from "@cedarjs/babel-config";
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
getConfig,
|
|
19
|
+
getPaths,
|
|
20
|
+
projectSideIsEsm,
|
|
21
|
+
resolveFile
|
|
22
|
+
} from "@cedarjs/project-config";
|
|
18
23
|
import { findApiFiles } from "../files.js";
|
|
19
24
|
import {
|
|
20
25
|
applyGqlormInject,
|
|
@@ -74,6 +79,7 @@ const runCedarBabelTransformsPlugin = {
|
|
|
74
79
|
fileContents = applyJobPathInjector(fileContents, args.path, getPaths().api.jobs) ?? fileContents;
|
|
75
80
|
const normalizedPath = normalizePath(args.path);
|
|
76
81
|
const cedarPaths = getPaths();
|
|
82
|
+
const isEsm = projectSideIsEsm("api");
|
|
77
83
|
const apiBabelConfigPath = getApiSideBabelConfigPath();
|
|
78
84
|
let code = fileContents;
|
|
79
85
|
if (apiBabelConfigPath) {
|
|
@@ -92,7 +98,9 @@ const runCedarBabelTransformsPlugin = {
|
|
|
92
98
|
code = applyImportExtensions(code, args.path);
|
|
93
99
|
const functionsDir = normalizePath(cedarPaths.api.functions);
|
|
94
100
|
if (normalizedPath.startsWith(functionsDir + "/")) {
|
|
95
|
-
code = applyHandlerAlsWrapping(code
|
|
101
|
+
code = applyHandlerAlsWrapping(code, {
|
|
102
|
+
projectIsEsm: isEsm
|
|
103
|
+
}) ?? code;
|
|
96
104
|
}
|
|
97
105
|
if (normalizedPath.startsWith(normalizePath(cedarPaths.api.src) + "/")) {
|
|
98
106
|
code = applyOtelWrapping(code, args.path, cedarPaths.api.src) ?? code;
|
|
@@ -170,6 +178,7 @@ function createDirectoryNamedImportVitePlugin() {
|
|
|
170
178
|
}
|
|
171
179
|
function createCedarViteApiPlugin() {
|
|
172
180
|
const cedarConfig = getConfig();
|
|
181
|
+
const isEsm = projectSideIsEsm("api");
|
|
173
182
|
return {
|
|
174
183
|
name: "cedar-vite-api-babel-transform",
|
|
175
184
|
enforce: "pre",
|
|
@@ -214,7 +223,9 @@ function createCedarViteApiPlugin() {
|
|
|
214
223
|
outputCode = applyImportExtensions(outputCode, id);
|
|
215
224
|
const functionsDir = normalizePath(cedarPaths.api.functions);
|
|
216
225
|
if (normalizedId.startsWith(functionsDir + "/")) {
|
|
217
|
-
outputCode = applyHandlerAlsWrapping(outputCode
|
|
226
|
+
outputCode = applyHandlerAlsWrapping(outputCode, {
|
|
227
|
+
projectIsEsm: isEsm
|
|
228
|
+
}) ?? outputCode;
|
|
218
229
|
}
|
|
219
230
|
if (!transformedCode) {
|
|
220
231
|
if (outputCode === code) {
|
|
@@ -234,6 +245,8 @@ function createCedarViteApiPlugin() {
|
|
|
234
245
|
}
|
|
235
246
|
const buildApiWithVite = async () => {
|
|
236
247
|
const cedarPaths = getPaths();
|
|
248
|
+
const isEsm = projectSideIsEsm("api");
|
|
249
|
+
const format = isEsm ? "es" : "cjs";
|
|
237
250
|
const apiFiles = findApiFiles();
|
|
238
251
|
const input = {};
|
|
239
252
|
for (const f of apiFiles) {
|
|
@@ -250,7 +263,7 @@ const buildApiWithVite = async () => {
|
|
|
250
263
|
rollupOptions: {
|
|
251
264
|
input,
|
|
252
265
|
output: {
|
|
253
|
-
format
|
|
266
|
+
format,
|
|
254
267
|
preserveModules: true,
|
|
255
268
|
preserveModulesRoot: cedarPaths.api.src,
|
|
256
269
|
entryFileNames: "[name].js",
|
|
@@ -331,12 +344,13 @@ async function fixSourceMaps(distDir, srcDir) {
|
|
|
331
344
|
}
|
|
332
345
|
function getEsbuildOptions(files) {
|
|
333
346
|
const cedarPaths = getPaths();
|
|
347
|
+
const format = projectSideIsEsm("api") ? "esm" : "cjs";
|
|
334
348
|
return {
|
|
335
349
|
absWorkingDir: cedarPaths.api.base,
|
|
336
350
|
entryPoints: files,
|
|
337
351
|
platform: "node",
|
|
338
352
|
target: "node24",
|
|
339
|
-
format
|
|
353
|
+
format,
|
|
340
354
|
allowOverwrite: true,
|
|
341
355
|
bundle: false,
|
|
342
356
|
// Registration order matters: cedarApiGraphqlPlugin (narrow filter) must
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild-plugin-api-graphql.d.ts","sourceRoot":"","sources":["../../src/build/esbuild-plugin-api-graphql.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAsB1C,eAAO,MAAM,qBAAqB;;iBAEnB,WAAW;
|
|
1
|
+
{"version":3,"file":"esbuild-plugin-api-graphql.d.ts","sourceRoot":"","sources":["../../src/build/esbuild-plugin-api-graphql.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAsB1C,eAAO,MAAM,qBAAqB;;iBAEnB,WAAW;CAiHzB,CAAA"}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getApiSideBabelPluginsForVite,
|
|
6
6
|
transformWithBabel
|
|
7
7
|
} from "@cedarjs/babel-config";
|
|
8
|
-
import { getConfig, getPaths } from "@cedarjs/project-config";
|
|
8
|
+
import { getConfig, getPaths, projectSideIsEsm } from "@cedarjs/project-config";
|
|
9
9
|
import {
|
|
10
10
|
applyGqlormInject,
|
|
11
11
|
applyGraphqlOptionsExtract
|
|
@@ -59,7 +59,9 @@ const cedarApiGraphqlPlugin = {
|
|
|
59
59
|
if (cedarConfig.experimental?.opentelemetry?.enabled && cedarConfig.experimental?.opentelemetry?.wrapApi) {
|
|
60
60
|
code = applyOtelWrapping(code, args.path, getPaths().api.src) ?? code;
|
|
61
61
|
}
|
|
62
|
-
code = applyHandlerAlsWrapping(code
|
|
62
|
+
code = applyHandlerAlsWrapping(code, {
|
|
63
|
+
projectIsEsm: projectSideIsEsm("api")
|
|
64
|
+
}) ?? code;
|
|
63
65
|
return {
|
|
64
66
|
contents: code,
|
|
65
67
|
// Babel output is always plain JS. Without Babel the contents are
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare function applyHandlerAlsWrapping(code: string
|
|
1
|
+
export declare function applyHandlerAlsWrapping(code: string, { projectIsEsm }?: {
|
|
2
|
+
projectIsEsm?: boolean;
|
|
3
|
+
}): string | null;
|
|
2
4
|
//# sourceMappingURL=esbuild-plugin-handler-als-wrapping.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild-plugin-handler-als-wrapping.d.ts","sourceRoot":"","sources":["../../src/build/esbuild-plugin-handler-als-wrapping.ts"],"names":[],"mappings":"AAOA,wBAAgB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"esbuild-plugin-handler-als-wrapping.d.ts","sourceRoot":"","sources":["../../src/build/esbuild-plugin-handler-als-wrapping.ts"],"names":[],"mappings":"AAOA,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,EAAE,YAAoB,EAAE,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GACxD,MAAM,GAAG,IAAI,CA0Cf"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function applyHandlerAlsWrapping(code) {
|
|
1
|
+
function applyHandlerAlsWrapping(code, { projectIsEsm = false } = {}) {
|
|
2
2
|
const handlerRe = /^export\s+(?:const|let|var)\s+handler(?:[^=]|=>)*?=(?![>=])/m;
|
|
3
3
|
const handlerMatch = handlerRe.exec(code);
|
|
4
4
|
if (!handlerMatch) {
|
|
@@ -6,7 +6,8 @@ function applyHandlerAlsWrapping(code) {
|
|
|
6
6
|
}
|
|
7
7
|
const afterEquals = code.slice(handlerMatch.index + handlerMatch[0].length).trimStart();
|
|
8
8
|
const isAsync = /^async(?:\s*[\(\*]|\s+function)/.test(afterEquals);
|
|
9
|
-
const
|
|
9
|
+
const storePath = projectIsEsm ? "@cedarjs/context/dist/store.js" : "@cedarjs/context/dist/store";
|
|
10
|
+
const importStatement = `import { getAsyncStoreInstance as __cedar_getAsyncStoreInstance } from '${storePath}'
|
|
10
11
|
`;
|
|
11
12
|
const handlerStart = handlerMatch.index;
|
|
12
13
|
const before = code.slice(0, handlerStart);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlCodeGen.d.ts","sourceRoot":"","sources":["../../src/generate/graphqlCodeGen.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"graphqlCodeGen.d.ts","sourceRoot":"","sources":["../../src/generate/graphqlCodeGen.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAmB9D,KAAK,aAAa,GAAG;IACnB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAC9C,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,aAAa,CAiFvE,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,aAAa,CAwDvE,CAAA;AA+DD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;SACD,MAAM;GAQ5D;AA2OD,eAAO,MAAM,iBAAiB,4RAe7B,CAAA"}
|
|
@@ -14,7 +14,6 @@ import { Kind } from "graphql";
|
|
|
14
14
|
import {
|
|
15
15
|
getPaths,
|
|
16
16
|
getConfig,
|
|
17
|
-
getParsedScalars,
|
|
18
17
|
resolveGeneratedPrismaClient
|
|
19
18
|
} from "@cedarjs/project-config";
|
|
20
19
|
import { getPackageManager } from "@cedarjs/project-config/packageManager";
|
|
@@ -115,10 +114,7 @@ const generateTypeDefGraphQLWeb = async () => {
|
|
|
115
114
|
{
|
|
116
115
|
name: "add",
|
|
117
116
|
options: {
|
|
118
|
-
content:
|
|
119
|
-
`import { Prisma } from "$api/src/lib/db"`,
|
|
120
|
-
...getApolloScalarDeclarations()
|
|
121
|
-
],
|
|
117
|
+
content: `import { Prisma } from "$api/src/lib/db"`,
|
|
122
118
|
placement: "prepend"
|
|
123
119
|
},
|
|
124
120
|
codegenPlugin: addPlugin
|
|
@@ -163,23 +159,6 @@ function mergeScalars(cedarScalars, userScalars) {
|
|
|
163
159
|
}
|
|
164
160
|
return userScalars;
|
|
165
161
|
}
|
|
166
|
-
function getApolloScalarDeclarations() {
|
|
167
|
-
const declarations = [];
|
|
168
|
-
if (getParsedScalars().DateTime === "Date") {
|
|
169
|
-
declarations.push(
|
|
170
|
-
[
|
|
171
|
-
"declare module '@apollo/client' {",
|
|
172
|
-
" namespace ApolloCache {",
|
|
173
|
-
" interface Scalars {",
|
|
174
|
-
" DateTime: { serialized: string; parsed: Date }",
|
|
175
|
-
" }",
|
|
176
|
-
" }",
|
|
177
|
-
"}"
|
|
178
|
-
].join("\n")
|
|
179
|
-
);
|
|
180
|
-
}
|
|
181
|
-
return declarations;
|
|
182
|
-
}
|
|
183
162
|
async function runCodegenGraphQL(documents, extraPlugins, filename, side) {
|
|
184
163
|
const userCodegenConfig = await loadCodegenConfig({
|
|
185
164
|
configFilePath: getPaths().base
|
|
@@ -303,8 +282,8 @@ async function getPluginConfig(side) {
|
|
|
303
282
|
const scalars = {
|
|
304
283
|
// We need these, otherwise these scalars are mapped to any
|
|
305
284
|
BigInt: "number",
|
|
306
|
-
// @Note: DateTime fields can be valid Date-strings, or the Date object in the api side. They're strings on the web side
|
|
307
|
-
DateTime: side === 1 /* WEB */ ?
|
|
285
|
+
// @Note: DateTime fields can be valid Date-strings, or the Date object in the api side. They're always strings on the web side.
|
|
286
|
+
DateTime: side === 1 /* WEB */ ? "string" : "Date | string",
|
|
308
287
|
Date: side === 1 /* WEB */ ? "string" : "Date | string",
|
|
309
288
|
JSON: "Prisma.JsonValue",
|
|
310
289
|
JSONObject: "Prisma.JsonObject",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cedarjs/internal",
|
|
3
|
-
"version": "7.0.0-
|
|
3
|
+
"version": "7.0.0-rc.127",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cedarjs/cedar.git",
|
|
@@ -87,12 +87,6 @@
|
|
|
87
87
|
"types": "./dist/generate/gqlormSchema.d.ts",
|
|
88
88
|
"default": "./dist/generate/gqlormSchema.js"
|
|
89
89
|
}
|
|
90
|
-
},
|
|
91
|
-
"./dist/generate/parsedScalars.js": {
|
|
92
|
-
"default": {
|
|
93
|
-
"types": "./dist/generate/parsedScalars.d.ts",
|
|
94
|
-
"default": "./dist/generate/parsedScalars.js"
|
|
95
|
-
}
|
|
96
90
|
}
|
|
97
91
|
},
|
|
98
92
|
"types": "dist/index.d.ts",
|
|
@@ -120,14 +114,14 @@
|
|
|
120
114
|
"@babel/core": "^7.26.10",
|
|
121
115
|
"@babel/parser": "7.29.9",
|
|
122
116
|
"@babel/traverse": "7.29.8",
|
|
123
|
-
"@cedarjs/api": "7.0.0-
|
|
124
|
-
"@cedarjs/babel-config": "7.0.0-
|
|
125
|
-
"@cedarjs/cli-helpers": "7.0.0-
|
|
126
|
-
"@cedarjs/graphql-server": "7.0.0-
|
|
127
|
-
"@cedarjs/project-config": "7.0.0-
|
|
128
|
-
"@cedarjs/router": "7.0.0-
|
|
129
|
-
"@cedarjs/structure": "7.0.0-
|
|
130
|
-
"@cedarjs/utils": "7.0.0-
|
|
117
|
+
"@cedarjs/api": "7.0.0-rc.127",
|
|
118
|
+
"@cedarjs/babel-config": "7.0.0-rc.127",
|
|
119
|
+
"@cedarjs/cli-helpers": "7.0.0-rc.127",
|
|
120
|
+
"@cedarjs/graphql-server": "7.0.0-rc.127",
|
|
121
|
+
"@cedarjs/project-config": "7.0.0-rc.127",
|
|
122
|
+
"@cedarjs/router": "7.0.0-rc.127",
|
|
123
|
+
"@cedarjs/structure": "7.0.0-rc.127",
|
|
124
|
+
"@cedarjs/utils": "7.0.0-rc.127",
|
|
131
125
|
"@graphql-codegen/add": "6.0.1",
|
|
132
126
|
"@graphql-codegen/cli": "6.3.1",
|
|
133
127
|
"@graphql-codegen/client-preset": "5.3.0",
|
|
@@ -143,8 +137,8 @@
|
|
|
143
137
|
"@graphql-tools/graphql-file-loader": "8.1.20",
|
|
144
138
|
"@graphql-tools/load": "8.1.17",
|
|
145
139
|
"@graphql-tools/merge": "9.2.4",
|
|
146
|
-
"@prisma/dmmf": "7.
|
|
147
|
-
"@prisma/internals": "7.
|
|
140
|
+
"@prisma/dmmf": "7.8.0",
|
|
141
|
+
"@prisma/internals": "7.8.0",
|
|
148
142
|
"@sdl-codegen/node": "2.0.1",
|
|
149
143
|
"ansis": "4.4.0",
|
|
150
144
|
"chokidar": "3.6.0",
|
|
@@ -155,7 +149,7 @@
|
|
|
155
149
|
"kill-port": "1.6.1",
|
|
156
150
|
"magic-string": "0.30.21",
|
|
157
151
|
"oxc-parser": "0.151.0",
|
|
158
|
-
"prettier": "3.9.
|
|
152
|
+
"prettier": "3.9.8",
|
|
159
153
|
"rimraf": "6.1.3",
|
|
160
154
|
"source-map": "0.8.0",
|
|
161
155
|
"termi-link": "1.1.0",
|
|
@@ -165,12 +159,12 @@
|
|
|
165
159
|
"vite-tsconfig-paths": "^6.1.1"
|
|
166
160
|
},
|
|
167
161
|
"devDependencies": {
|
|
168
|
-
"@cedarjs/framework-tools": "7.0.0-
|
|
162
|
+
"@cedarjs/framework-tools": "7.0.0-rc.127",
|
|
169
163
|
"@jridgewell/trace-mapping": "0.3.31",
|
|
170
164
|
"@oxc-project/types": "^0.151.0",
|
|
171
165
|
"concurrently": "9.2.4",
|
|
172
|
-
"graphql-tag": "2.12.
|
|
173
|
-
"memfs": "4.
|
|
166
|
+
"graphql-tag": "2.12.6",
|
|
167
|
+
"memfs": "4.78.1",
|
|
174
168
|
"publint": "0.3.24",
|
|
175
169
|
"ts-dedent": "2.3.0",
|
|
176
170
|
"vitest": "4.1.11"
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { GraphQLSchema } from 'graphql';
|
|
2
|
-
import type { ParsedScalarsConfig } from '@cedarjs/project-config';
|
|
3
|
-
/**
|
|
4
|
-
* What `CedarApolloProvider` needs to make Apollo Client's cache parse the
|
|
5
|
-
* scalars in `graphql.parsedScalars`. The `typePolicies` and `inputObjects`
|
|
6
|
-
* are passed to `InMemoryCache` as they are.
|
|
7
|
-
*/
|
|
8
|
-
export interface ParsedScalarsCacheConfig {
|
|
9
|
-
/**
|
|
10
|
-
* The scalars to parse, and the type each is parsed into
|
|
11
|
-
*/
|
|
12
|
-
scalars: ParsedScalarsConfig;
|
|
13
|
-
/**
|
|
14
|
-
* The fields in the schema that hold a parsed scalar
|
|
15
|
-
*/
|
|
16
|
-
typePolicies: Record<string, {
|
|
17
|
-
fields: Record<string, {
|
|
18
|
-
scalar: string;
|
|
19
|
-
}>;
|
|
20
|
-
}>;
|
|
21
|
-
/**
|
|
22
|
-
* The input objects that hold a parsed scalar, directly or through another
|
|
23
|
-
* input object
|
|
24
|
-
*/
|
|
25
|
-
inputObjects: Record<string, {
|
|
26
|
-
fields: Record<string, string>;
|
|
27
|
-
}>;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Finds every field in the schema that holds one of the scalars in
|
|
31
|
-
* `parsedScalars`, in the shape Apollo Client's `InMemoryCache` takes, so that
|
|
32
|
-
* the cache parses those fields when it reads a response and serializes them
|
|
33
|
-
* in a query's variables.
|
|
34
|
-
*/
|
|
35
|
-
export declare function getParsedScalarsCacheConfig(schema: GraphQLSchema, parsedScalars: ParsedScalarsConfig): ParsedScalarsCacheConfig;
|
|
36
|
-
/**
|
|
37
|
-
* Reads the project's `graphql.parsedScalars` setting and its generated
|
|
38
|
-
* GraphQL schema, and returns the cache config for them. Returns `undefined`
|
|
39
|
-
* when no scalar is set to be parsed, or when the schema hasn't been generated.
|
|
40
|
-
*/
|
|
41
|
-
export declare function loadParsedScalarsCacheConfig(): ParsedScalarsCacheConfig | undefined;
|
|
42
|
-
//# sourceMappingURL=parsedScalars.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parsedScalars.d.ts","sourceRoot":"","sources":["../../src/generate/parsedScalars.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,SAAS,CAAA;AASzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAGlE;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,OAAO,EAAE,mBAAmB,CAAA;IAC5B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAA;IAC5E;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;CACjE;AA0BD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,mBAAmB,GACjC,wBAAwB,CA0E1B;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,IAC1C,wBAAwB,GAAG,SAAS,CAwBrC"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import { GraphQLFileLoader } from "@graphql-tools/graphql-file-loader";
|
|
3
|
-
import { loadSchemaSync } from "@graphql-tools/load";
|
|
4
|
-
import {
|
|
5
|
-
getNamedType,
|
|
6
|
-
isInputObjectType,
|
|
7
|
-
isListType,
|
|
8
|
-
isNonNullType,
|
|
9
|
-
isObjectType
|
|
10
|
-
} from "graphql";
|
|
11
|
-
import { getParsedScalars, getPaths } from "@cedarjs/project-config";
|
|
12
|
-
function scalarTypeName(type, names) {
|
|
13
|
-
if (isNonNullType(type)) {
|
|
14
|
-
return scalarTypeName(type.ofType, names);
|
|
15
|
-
}
|
|
16
|
-
if (isListType(type)) {
|
|
17
|
-
const inner = scalarTypeName(type.ofType, names);
|
|
18
|
-
return inner === void 0 ? void 0 : `[${inner}]`;
|
|
19
|
-
}
|
|
20
|
-
const name = getNamedType(type).name;
|
|
21
|
-
return names.has(name) ? name : void 0;
|
|
22
|
-
}
|
|
23
|
-
function getParsedScalarsCacheConfig(schema, parsedScalars) {
|
|
24
|
-
const scalarNames = new Set(Object.keys(parsedScalars));
|
|
25
|
-
const typePolicies = {};
|
|
26
|
-
const inputObjects = {};
|
|
27
|
-
if (scalarNames.size === 0) {
|
|
28
|
-
return { scalars: parsedScalars, typePolicies, inputObjects };
|
|
29
|
-
}
|
|
30
|
-
const types = Object.values(schema.getTypeMap()).filter(
|
|
31
|
-
(type) => !type.name.startsWith("__")
|
|
32
|
-
);
|
|
33
|
-
for (const type of types) {
|
|
34
|
-
if (!isObjectType(type)) {
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
for (const field of Object.values(type.getFields())) {
|
|
38
|
-
const scalar = scalarTypeName(field.type, scalarNames);
|
|
39
|
-
if (scalar) {
|
|
40
|
-
typePolicies[type.name] ??= { fields: {} };
|
|
41
|
-
typePolicies[type.name].fields[field.name] = { scalar };
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
const inputTypes = types.filter(isInputObjectType);
|
|
46
|
-
let inputObjectNames = /* @__PURE__ */ new Set();
|
|
47
|
-
let grew = true;
|
|
48
|
-
while (grew) {
|
|
49
|
-
const names2 = /* @__PURE__ */ new Set([...scalarNames, ...inputObjectNames]);
|
|
50
|
-
const next = new Set(inputObjectNames);
|
|
51
|
-
for (const type of inputTypes) {
|
|
52
|
-
const holdsScalar = Object.values(type.getFields()).some(
|
|
53
|
-
(field) => scalarTypeName(field.type, names2) !== void 0
|
|
54
|
-
);
|
|
55
|
-
if (holdsScalar) {
|
|
56
|
-
next.add(type.name);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
grew = next.size > inputObjectNames.size;
|
|
60
|
-
inputObjectNames = next;
|
|
61
|
-
}
|
|
62
|
-
const names = /* @__PURE__ */ new Set([...scalarNames, ...inputObjectNames]);
|
|
63
|
-
for (const type of inputTypes) {
|
|
64
|
-
if (!inputObjectNames.has(type.name)) {
|
|
65
|
-
continue;
|
|
66
|
-
}
|
|
67
|
-
const fields = {};
|
|
68
|
-
for (const field of Object.values(type.getFields())) {
|
|
69
|
-
const fieldType = scalarTypeName(field.type, names);
|
|
70
|
-
if (fieldType) {
|
|
71
|
-
fields[field.name] = fieldType;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
inputObjects[type.name] = { fields };
|
|
75
|
-
}
|
|
76
|
-
return { scalars: parsedScalars, typePolicies, inputObjects };
|
|
77
|
-
}
|
|
78
|
-
function loadParsedScalarsCacheConfig() {
|
|
79
|
-
const parsedScalars = getParsedScalars();
|
|
80
|
-
if (Object.keys(parsedScalars).length === 0) {
|
|
81
|
-
return void 0;
|
|
82
|
-
}
|
|
83
|
-
const schemaPath = getPaths().generated.schema;
|
|
84
|
-
if (!fs.existsSync(schemaPath)) {
|
|
85
|
-
return void 0;
|
|
86
|
-
}
|
|
87
|
-
const schema = loadSchemaSync(schemaPath, {
|
|
88
|
-
loaders: [new GraphQLFileLoader()],
|
|
89
|
-
sort: true
|
|
90
|
-
});
|
|
91
|
-
return getParsedScalarsCacheConfig(schema, parsedScalars);
|
|
92
|
-
}
|
|
93
|
-
export {
|
|
94
|
-
getParsedScalarsCacheConfig,
|
|
95
|
-
loadParsedScalarsCacheConfig
|
|
96
|
-
};
|