@cedarjs/internal 7.0.0 → 8.0.0-canary.3265
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 +5 -19
- package/dist/build/esbuild-plugin-api-graphql.d.ts.map +1 -1
- package/dist/build/esbuild-plugin-api-graphql.js +2 -4
- package/dist/build/esbuild-plugin-handler-als-wrapping.d.ts +1 -3
- package/dist/build/esbuild-plugin-handler-als-wrapping.d.ts.map +1 -1
- package/dist/build/esbuild-plugin-handler-als-wrapping.js +2 -3
- package/dist/generate/graphqlCodeGen.d.ts.map +1 -1
- package/dist/generate/graphqlCodeGen.js +24 -3
- package/dist/generate/parsedScalars.d.ts +42 -0
- package/dist/generate/parsedScalars.d.ts.map +1 -0
- package/dist/generate/parsedScalars.js +96 -0
- package/package.json +21 -15
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;AAwCtE,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;AA8UD,eAAO,MAAM,gBAAgB,iHA+D5B,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,12 +14,7 @@ import {
|
|
|
14
14
|
getApiSideBabelPluginsForVite,
|
|
15
15
|
transformWithBabel
|
|
16
16
|
} from "@cedarjs/babel-config";
|
|
17
|
-
import {
|
|
18
|
-
getConfig,
|
|
19
|
-
getPaths,
|
|
20
|
-
projectSideIsEsm,
|
|
21
|
-
resolveFile
|
|
22
|
-
} from "@cedarjs/project-config";
|
|
17
|
+
import { getConfig, getPaths, resolveFile } from "@cedarjs/project-config";
|
|
23
18
|
import { findApiFiles } from "../files.js";
|
|
24
19
|
import {
|
|
25
20
|
applyGqlormInject,
|
|
@@ -79,7 +74,6 @@ const runCedarBabelTransformsPlugin = {
|
|
|
79
74
|
fileContents = applyJobPathInjector(fileContents, args.path, getPaths().api.jobs) ?? fileContents;
|
|
80
75
|
const normalizedPath = normalizePath(args.path);
|
|
81
76
|
const cedarPaths = getPaths();
|
|
82
|
-
const isEsm = projectSideIsEsm("api");
|
|
83
77
|
const apiBabelConfigPath = getApiSideBabelConfigPath();
|
|
84
78
|
let code = fileContents;
|
|
85
79
|
if (apiBabelConfigPath) {
|
|
@@ -98,9 +92,7 @@ const runCedarBabelTransformsPlugin = {
|
|
|
98
92
|
code = applyImportExtensions(code, args.path);
|
|
99
93
|
const functionsDir = normalizePath(cedarPaths.api.functions);
|
|
100
94
|
if (normalizedPath.startsWith(functionsDir + "/")) {
|
|
101
|
-
code = applyHandlerAlsWrapping(code
|
|
102
|
-
projectIsEsm: isEsm
|
|
103
|
-
}) ?? code;
|
|
95
|
+
code = applyHandlerAlsWrapping(code) ?? code;
|
|
104
96
|
}
|
|
105
97
|
if (normalizedPath.startsWith(normalizePath(cedarPaths.api.src) + "/")) {
|
|
106
98
|
code = applyOtelWrapping(code, args.path, cedarPaths.api.src) ?? code;
|
|
@@ -178,7 +170,6 @@ function createDirectoryNamedImportVitePlugin() {
|
|
|
178
170
|
}
|
|
179
171
|
function createCedarViteApiPlugin() {
|
|
180
172
|
const cedarConfig = getConfig();
|
|
181
|
-
const isEsm = projectSideIsEsm("api");
|
|
182
173
|
return {
|
|
183
174
|
name: "cedar-vite-api-babel-transform",
|
|
184
175
|
enforce: "pre",
|
|
@@ -223,9 +214,7 @@ function createCedarViteApiPlugin() {
|
|
|
223
214
|
outputCode = applyImportExtensions(outputCode, id);
|
|
224
215
|
const functionsDir = normalizePath(cedarPaths.api.functions);
|
|
225
216
|
if (normalizedId.startsWith(functionsDir + "/")) {
|
|
226
|
-
outputCode = applyHandlerAlsWrapping(outputCode
|
|
227
|
-
projectIsEsm: isEsm
|
|
228
|
-
}) ?? outputCode;
|
|
217
|
+
outputCode = applyHandlerAlsWrapping(outputCode) ?? outputCode;
|
|
229
218
|
}
|
|
230
219
|
if (!transformedCode) {
|
|
231
220
|
if (outputCode === code) {
|
|
@@ -245,8 +234,6 @@ function createCedarViteApiPlugin() {
|
|
|
245
234
|
}
|
|
246
235
|
const buildApiWithVite = async () => {
|
|
247
236
|
const cedarPaths = getPaths();
|
|
248
|
-
const isEsm = projectSideIsEsm("api");
|
|
249
|
-
const format = isEsm ? "es" : "cjs";
|
|
250
237
|
const apiFiles = findApiFiles();
|
|
251
238
|
const input = {};
|
|
252
239
|
for (const f of apiFiles) {
|
|
@@ -263,7 +250,7 @@ const buildApiWithVite = async () => {
|
|
|
263
250
|
rollupOptions: {
|
|
264
251
|
input,
|
|
265
252
|
output: {
|
|
266
|
-
format,
|
|
253
|
+
format: "es",
|
|
267
254
|
preserveModules: true,
|
|
268
255
|
preserveModulesRoot: cedarPaths.api.src,
|
|
269
256
|
entryFileNames: "[name].js",
|
|
@@ -344,13 +331,12 @@ async function fixSourceMaps(distDir, srcDir) {
|
|
|
344
331
|
}
|
|
345
332
|
function getEsbuildOptions(files) {
|
|
346
333
|
const cedarPaths = getPaths();
|
|
347
|
-
const format = projectSideIsEsm("api") ? "esm" : "cjs";
|
|
348
334
|
return {
|
|
349
335
|
absWorkingDir: cedarPaths.api.base,
|
|
350
336
|
entryPoints: files,
|
|
351
337
|
platform: "node",
|
|
352
338
|
target: "node24",
|
|
353
|
-
format,
|
|
339
|
+
format: "esm",
|
|
354
340
|
allowOverwrite: true,
|
|
355
341
|
bundle: false,
|
|
356
342
|
// 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;CA8GzB,CAAA"}
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getApiSideBabelPluginsForVite,
|
|
6
6
|
transformWithBabel
|
|
7
7
|
} from "@cedarjs/babel-config";
|
|
8
|
-
import { getConfig, getPaths
|
|
8
|
+
import { getConfig, getPaths } from "@cedarjs/project-config";
|
|
9
9
|
import {
|
|
10
10
|
applyGqlormInject,
|
|
11
11
|
applyGraphqlOptionsExtract
|
|
@@ -59,9 +59,7 @@ 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
|
|
63
|
-
projectIsEsm: projectSideIsEsm("api")
|
|
64
|
-
}) ?? code;
|
|
62
|
+
code = applyHandlerAlsWrapping(code) ?? code;
|
|
65
63
|
return {
|
|
66
64
|
contents: code,
|
|
67
65
|
// Babel output is always plain JS. Without Babel the contents are
|
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
export declare function applyHandlerAlsWrapping(code: string
|
|
2
|
-
projectIsEsm?: boolean;
|
|
3
|
-
}): string | null;
|
|
1
|
+
export declare function applyHandlerAlsWrapping(code: string): string | null;
|
|
4
2
|
//# 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,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsCnE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function applyHandlerAlsWrapping(code
|
|
1
|
+
function applyHandlerAlsWrapping(code) {
|
|
2
2
|
const handlerRe = /^export\s+(?:const|let|var)\s+handler(?:[^=]|=>)*?=(?![>=])/m;
|
|
3
3
|
const handlerMatch = handlerRe.exec(code);
|
|
4
4
|
if (!handlerMatch) {
|
|
@@ -6,8 +6,7 @@ function applyHandlerAlsWrapping(code, { projectIsEsm = false } = {}) {
|
|
|
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
|
|
10
|
-
const importStatement = `import { getAsyncStoreInstance as __cedar_getAsyncStoreInstance } from '${storePath}'
|
|
9
|
+
const importStatement = `import { getAsyncStoreInstance as __cedar_getAsyncStoreInstance } from '@cedarjs/context/dist/store.js'
|
|
11
10
|
`;
|
|
12
11
|
const handlerStart = handlerMatch.index;
|
|
13
12
|
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;AAoB9D,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,CA2DvE,CAAA;AAyFD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;SACD,MAAM;GAQ5D;AAqPD,eAAO,MAAM,iBAAiB,4RAe7B,CAAA"}
|
|
@@ -14,6 +14,7 @@ import { Kind } from "graphql";
|
|
|
14
14
|
import {
|
|
15
15
|
getPaths,
|
|
16
16
|
getConfig,
|
|
17
|
+
getParsedScalars,
|
|
17
18
|
resolveGeneratedPrismaClient
|
|
18
19
|
} from "@cedarjs/project-config";
|
|
19
20
|
import { getPackageManager } from "@cedarjs/project-config/packageManager";
|
|
@@ -114,7 +115,10 @@ const generateTypeDefGraphQLWeb = async () => {
|
|
|
114
115
|
{
|
|
115
116
|
name: "add",
|
|
116
117
|
options: {
|
|
117
|
-
content:
|
|
118
|
+
content: [
|
|
119
|
+
`import { Prisma } from "$api/src/lib/db"`,
|
|
120
|
+
...getApolloScalarDeclarations()
|
|
121
|
+
],
|
|
118
122
|
placement: "prepend"
|
|
119
123
|
},
|
|
120
124
|
codegenPlugin: addPlugin
|
|
@@ -159,6 +163,23 @@ function mergeScalars(cedarScalars, userScalars) {
|
|
|
159
163
|
}
|
|
160
164
|
return userScalars;
|
|
161
165
|
}
|
|
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
|
+
}
|
|
162
183
|
async function runCodegenGraphQL(documents, extraPlugins, filename, side) {
|
|
163
184
|
const userCodegenConfig = await loadCodegenConfig({
|
|
164
185
|
configFilePath: getPaths().base
|
|
@@ -282,8 +303,8 @@ async function getPluginConfig(side) {
|
|
|
282
303
|
const scalars = {
|
|
283
304
|
// We need these, otherwise these scalars are mapped to any
|
|
284
305
|
BigInt: "number",
|
|
285
|
-
// @Note: DateTime fields can be valid Date-strings, or the Date object in the api side. They're
|
|
286
|
-
DateTime: side === 1 /* WEB */ ? "string" : "Date | string",
|
|
306
|
+
// @Note: DateTime fields can be valid Date-strings, or the Date object in the api side. They're strings on the web side, unless `graphql.parsedScalars.DateTime` is set. Then they are Date objects when the web side reads them, and Apollo Client accepts a Date or a string when they're sent.
|
|
307
|
+
DateTime: side === 1 /* WEB */ ? getParsedScalars().DateTime === "Date" ? { input: "Date | string", output: "Date" } : "string" : "Date | string",
|
|
287
308
|
Date: side === 1 /* WEB */ ? "string" : "Date | string",
|
|
288
309
|
JSON: "Prisma.JsonValue",
|
|
289
310
|
JSONObject: "Prisma.JsonObject",
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cedarjs/internal",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0-canary.3265",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cedarjs/cedar.git",
|
|
@@ -87,6 +87,12 @@
|
|
|
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
|
+
}
|
|
90
96
|
}
|
|
91
97
|
},
|
|
92
98
|
"types": "dist/index.d.ts",
|
|
@@ -114,14 +120,14 @@
|
|
|
114
120
|
"@babel/core": "^7.26.10",
|
|
115
121
|
"@babel/parser": "7.29.9",
|
|
116
122
|
"@babel/traverse": "7.29.8",
|
|
117
|
-
"@cedarjs/api": "
|
|
118
|
-
"@cedarjs/babel-config": "
|
|
119
|
-
"@cedarjs/cli-helpers": "
|
|
120
|
-
"@cedarjs/graphql-server": "
|
|
121
|
-
"@cedarjs/project-config": "
|
|
122
|
-
"@cedarjs/router": "
|
|
123
|
-
"@cedarjs/structure": "
|
|
124
|
-
"@cedarjs/utils": "
|
|
123
|
+
"@cedarjs/api": "8.0.0-canary.3265",
|
|
124
|
+
"@cedarjs/babel-config": "8.0.0-canary.3265",
|
|
125
|
+
"@cedarjs/cli-helpers": "8.0.0-canary.3265",
|
|
126
|
+
"@cedarjs/graphql-server": "8.0.0-canary.3265",
|
|
127
|
+
"@cedarjs/project-config": "8.0.0-canary.3265",
|
|
128
|
+
"@cedarjs/router": "8.0.0-canary.3265",
|
|
129
|
+
"@cedarjs/structure": "8.0.0-canary.3265",
|
|
130
|
+
"@cedarjs/utils": "8.0.0-canary.3265",
|
|
125
131
|
"@graphql-codegen/add": "6.0.1",
|
|
126
132
|
"@graphql-codegen/cli": "6.3.1",
|
|
127
133
|
"@graphql-codegen/client-preset": "5.3.0",
|
|
@@ -137,8 +143,8 @@
|
|
|
137
143
|
"@graphql-tools/graphql-file-loader": "8.1.20",
|
|
138
144
|
"@graphql-tools/load": "8.1.17",
|
|
139
145
|
"@graphql-tools/merge": "9.2.4",
|
|
140
|
-
"@prisma/dmmf": "7.
|
|
141
|
-
"@prisma/internals": "7.
|
|
146
|
+
"@prisma/dmmf": "7.10.0",
|
|
147
|
+
"@prisma/internals": "7.10.0",
|
|
142
148
|
"@sdl-codegen/node": "2.0.1",
|
|
143
149
|
"ansis": "4.4.0",
|
|
144
150
|
"chokidar": "3.6.0",
|
|
@@ -149,7 +155,7 @@
|
|
|
149
155
|
"kill-port": "1.6.1",
|
|
150
156
|
"magic-string": "0.30.21",
|
|
151
157
|
"oxc-parser": "0.151.0",
|
|
152
|
-
"prettier": "3.9.
|
|
158
|
+
"prettier": "3.9.9",
|
|
153
159
|
"rimraf": "6.1.3",
|
|
154
160
|
"source-map": "0.8.0",
|
|
155
161
|
"termi-link": "1.1.0",
|
|
@@ -159,12 +165,12 @@
|
|
|
159
165
|
"vite-tsconfig-paths": "^6.1.1"
|
|
160
166
|
},
|
|
161
167
|
"devDependencies": {
|
|
162
|
-
"@cedarjs/framework-tools": "
|
|
168
|
+
"@cedarjs/framework-tools": "8.0.0-canary.3265",
|
|
163
169
|
"@jridgewell/trace-mapping": "0.3.31",
|
|
164
170
|
"@oxc-project/types": "^0.151.0",
|
|
165
171
|
"concurrently": "9.2.4",
|
|
166
|
-
"graphql-tag": "2.12.
|
|
167
|
-
"memfs": "4.
|
|
172
|
+
"graphql-tag": "2.12.7",
|
|
173
|
+
"memfs": "4.79.0",
|
|
168
174
|
"publint": "0.3.24",
|
|
169
175
|
"ts-dedent": "2.3.0",
|
|
170
176
|
"vitest": "4.1.11"
|