@cedarjs/internal 7.0.0-canary.3258 → 7.0.0-rc.123

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.
@@ -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;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"}
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 { getConfig, getPaths, resolveFile } from "@cedarjs/project-config";
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) ?? 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) ?? 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: "es",
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: "esm",
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;CA8GzB,CAAA"}
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) ?? 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): string | null;
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,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsCnE"}
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 importStatement = `import { getAsyncStoreInstance as __cedar_getAsyncStoreInstance } from '@cedarjs/context/dist/store.js'
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;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"}
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, 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",
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-canary.3258",
3
+ "version": "7.0.0-rc.123",
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-canary.3258",
124
- "@cedarjs/babel-config": "7.0.0-canary.3258",
125
- "@cedarjs/cli-helpers": "7.0.0-canary.3258",
126
- "@cedarjs/graphql-server": "7.0.0-canary.3258",
127
- "@cedarjs/project-config": "7.0.0-canary.3258",
128
- "@cedarjs/router": "7.0.0-canary.3258",
129
- "@cedarjs/structure": "7.0.0-canary.3258",
130
- "@cedarjs/utils": "7.0.0-canary.3258",
117
+ "@cedarjs/api": "7.0.0-rc.123",
118
+ "@cedarjs/babel-config": "7.0.0-rc.123",
119
+ "@cedarjs/cli-helpers": "7.0.0-rc.123",
120
+ "@cedarjs/graphql-server": "7.0.0-rc.123",
121
+ "@cedarjs/project-config": "7.0.0-rc.123",
122
+ "@cedarjs/router": "7.0.0-rc.123",
123
+ "@cedarjs/structure": "7.0.0-rc.123",
124
+ "@cedarjs/utils": "7.0.0-rc.123",
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.10.0",
147
- "@prisma/internals": "7.10.0",
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",
@@ -165,12 +159,12 @@
165
159
  "vite-tsconfig-paths": "^6.1.1"
166
160
  },
167
161
  "devDependencies": {
168
- "@cedarjs/framework-tools": "7.0.0-canary.3258",
162
+ "@cedarjs/framework-tools": "7.0.0-rc.123",
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.7",
173
- "memfs": "4.79.0",
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
- };