@cedarjs/internal 2.8.1-next.0 → 2.8.1-next.116
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/cjs/generate/graphqlCodeGen.d.ts.map +1 -1
- package/dist/cjs/generate/graphqlCodeGen.js +58 -24
- package/dist/cjs/generate/graphqlSchema.d.ts.map +1 -1
- package/dist/cjs/generate/graphqlSchema.js +9 -14
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/index.d.ts.map +1 -1
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/index.js +3 -3
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.d.ts +3 -2
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.d.ts.map +1 -1
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.js +34 -26
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +0 -3
- package/dist/cjs/project.d.ts +0 -1
- package/dist/cjs/project.d.ts.map +1 -1
- package/dist/cjs/project.js +0 -10
- package/dist/cjs/routes.d.ts.map +1 -1
- package/dist/cjs/routes.js +2 -3
- package/dist/generate/graphqlCodeGen.d.ts.map +1 -1
- package/dist/generate/graphqlCodeGen.js +56 -22
- package/dist/generate/graphqlSchema.d.ts.map +1 -1
- package/dist/generate/graphqlSchema.js +10 -15
- package/dist/generate/plugins/rw-typescript-resolvers/index.d.ts.map +1 -1
- package/dist/generate/plugins/rw-typescript-resolvers/index.js +3 -3
- package/dist/generate/plugins/rw-typescript-resolvers/visitor.d.ts +3 -2
- package/dist/generate/plugins/rw-typescript-resolvers/visitor.d.ts.map +1 -1
- package/dist/generate/plugins/rw-typescript-resolvers/visitor.js +35 -30
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/project.d.ts +0 -1
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +1 -10
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +2 -3
- package/package.json +21 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlCodeGen.d.ts","sourceRoot":"","sources":["../../../src/generate/graphqlCodeGen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphqlCodeGen.d.ts","sourceRoot":"","sources":["../../../src/generate/graphqlCodeGen.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAkB9D,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;AAmCD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;SACD,MAAM;GAQ5D;AA8JD,eAAO,MAAM,iBAAiB,4RAe7B,CAAA"}
|
|
@@ -35,7 +35,8 @@ __export(graphqlCodeGen_exports, {
|
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(graphqlCodeGen_exports);
|
|
37
37
|
var import_node_fs = __toESM(require("node:fs"), 1);
|
|
38
|
-
var
|
|
38
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
39
|
+
var import_node_url = require("node:url");
|
|
39
40
|
var addPlugin = __toESM(require("@graphql-codegen/add"), 1);
|
|
40
41
|
var import_cli = require("@graphql-codegen/cli");
|
|
41
42
|
var import_core = require("@graphql-codegen/core");
|
|
@@ -76,12 +77,12 @@ const generateTypeDefGraphQLApi = async () => {
|
|
|
76
77
|
errors
|
|
77
78
|
};
|
|
78
79
|
}
|
|
79
|
-
const filename =
|
|
80
|
+
const filename = import_node_path.default.join((0, import_project_config.getPaths)().api.types, "graphql.d.ts");
|
|
80
81
|
const prismaModels = await getPrismaModels();
|
|
81
82
|
const prismaImports = Object.keys(prismaModels).map((key) => {
|
|
82
83
|
return `${key} as Prisma${key}`;
|
|
83
84
|
});
|
|
84
|
-
const prismaImportSource =
|
|
85
|
+
const prismaImportSource = "src/lib/db";
|
|
85
86
|
const extraPlugins = [
|
|
86
87
|
{
|
|
87
88
|
name: "add",
|
|
@@ -128,7 +129,7 @@ const generateTypeDefGraphQLApi = async () => {
|
|
|
128
129
|
}
|
|
129
130
|
};
|
|
130
131
|
const generateTypeDefGraphQLWeb = async () => {
|
|
131
|
-
const filename =
|
|
132
|
+
const filename = import_node_path.default.join((0, import_project_config.getPaths)().web.types, "graphql.d.ts");
|
|
132
133
|
const options = getLoadDocumentsOptions(filename);
|
|
133
134
|
const documentsGlob = "./web/src/**/!(*.d).{ts,tsx,js,jsx}";
|
|
134
135
|
let documents;
|
|
@@ -144,7 +145,7 @@ const generateTypeDefGraphQLWeb = async () => {
|
|
|
144
145
|
{
|
|
145
146
|
name: "add",
|
|
146
147
|
options: {
|
|
147
|
-
content: `import { Prisma } from "$
|
|
148
|
+
content: `import { Prisma } from "$api/src/lib/db"`,
|
|
148
149
|
placement: "prepend"
|
|
149
150
|
},
|
|
150
151
|
codegenPlugin: addPlugin
|
|
@@ -181,13 +182,14 @@ async function runCodegenGraphQL(documents, extraPlugins, filename, side) {
|
|
|
181
182
|
const userCodegenConfig = await (0, import_cli.loadCodegenConfig)({
|
|
182
183
|
configFilePath: (0, import_project_config.getPaths)().base
|
|
183
184
|
});
|
|
185
|
+
const pluginConfig = await getPluginConfig(side);
|
|
184
186
|
const mergedConfig = {
|
|
185
|
-
...
|
|
187
|
+
...pluginConfig,
|
|
186
188
|
...userCodegenConfig?.config?.config
|
|
187
189
|
};
|
|
188
190
|
const options = getCodegenOptions(documents, mergedConfig, extraPlugins);
|
|
189
191
|
const output = await (0, import_core.codegen)(options);
|
|
190
|
-
import_node_fs.default.mkdirSync(
|
|
192
|
+
import_node_fs.default.mkdirSync(import_node_path.default.dirname(filename), { recursive: true });
|
|
191
193
|
import_node_fs.default.writeFileSync(filename, output);
|
|
192
194
|
return [filename];
|
|
193
195
|
}
|
|
@@ -200,26 +202,58 @@ function getLoadDocumentsOptions(filename) {
|
|
|
200
202
|
};
|
|
201
203
|
return loadTypedefsConfig;
|
|
202
204
|
}
|
|
203
|
-
async function
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
205
|
+
async function importGeneratedPrismaClient() {
|
|
206
|
+
const cacheBuster = `?t=${Date.now()}`;
|
|
207
|
+
const { clientPath, error } = await (0, import_project_config.resolveGeneratedPrismaClient)();
|
|
208
|
+
if (!clientPath) {
|
|
209
|
+
throw new Error(error);
|
|
210
|
+
}
|
|
211
|
+
const fileUrl = (0, import_node_url.pathToFileURL)(clientPath).href + cacheBuster;
|
|
212
|
+
const freshPrisma = await import(fileUrl);
|
|
213
|
+
return freshPrisma;
|
|
214
|
+
}
|
|
215
|
+
function isModelNameRecord(value) {
|
|
216
|
+
if (typeof value !== "object" || value === null) {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
return Object.values(value).every((entry) => typeof entry === "string");
|
|
220
|
+
}
|
|
221
|
+
function getModelName(mod) {
|
|
222
|
+
if (typeof mod !== "object" || mod === null || !("Prisma" in mod)) {
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
const prismaModule = mod.Prisma;
|
|
226
|
+
if (typeof prismaModule !== "object" || prismaModule === null || !("ModelName" in prismaModule)) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
const modelName = prismaModule.ModelName;
|
|
230
|
+
if (typeof modelName !== "object" || modelName === null) {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
if (isModelNameRecord(modelName)) {
|
|
234
|
+
return modelName;
|
|
213
235
|
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
async function getPrismaClient() {
|
|
239
|
+
try {
|
|
240
|
+
const localPrisma = await importGeneratedPrismaClient();
|
|
241
|
+
const modelName = getModelName(localPrisma);
|
|
242
|
+
if (modelName) {
|
|
243
|
+
return { ModelName: modelName };
|
|
220
244
|
}
|
|
245
|
+
} catch {
|
|
246
|
+
}
|
|
247
|
+
import_execa.default.sync("yarn", ["cedar", "prisma", "generate"]);
|
|
248
|
+
try {
|
|
249
|
+
const freshPrisma = await importGeneratedPrismaClient();
|
|
250
|
+
const modelName = getModelName(freshPrisma);
|
|
251
|
+
if (modelName) {
|
|
252
|
+
return { ModelName: modelName };
|
|
253
|
+
}
|
|
254
|
+
} catch {
|
|
221
255
|
}
|
|
222
|
-
return
|
|
256
|
+
return { ModelName: {} };
|
|
223
257
|
}
|
|
224
258
|
async function getPrismaModels() {
|
|
225
259
|
const localPrisma = await getPrismaClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlSchema.d.ts","sourceRoot":"","sources":["../../../src/generate/graphqlSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphqlSchema.d.ts","sourceRoot":"","sources":["../../../src/generate/graphqlSchema.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,qBAAqB;;;iBA2DP,MAAM;eAAS,OAAO;;EA2EhD,CAAA"}
|
|
@@ -36,16 +36,14 @@ var import_core = require("@graphql-codegen/core");
|
|
|
36
36
|
var schemaAstPlugin = __toESM(require("@graphql-codegen/schema-ast"), 1);
|
|
37
37
|
var import_code_file_loader = require("@graphql-tools/code-file-loader");
|
|
38
38
|
var import_load = require("@graphql-tools/load");
|
|
39
|
-
var import_internals = __toESM(require("@prisma/internals"), 1);
|
|
40
39
|
var import_ansis = __toESM(require("ansis"), 1);
|
|
41
40
|
var import_graphql = require("graphql");
|
|
42
41
|
var import_termi_link = require("termi-link");
|
|
43
42
|
var import_graphql_server = require("@cedarjs/graphql-server");
|
|
44
43
|
var import_project_config = require("@cedarjs/project-config");
|
|
45
|
-
const { getSchemaWithPath } = import_internals.default;
|
|
46
44
|
const generateGraphQLSchema = async () => {
|
|
47
|
-
const
|
|
48
|
-
const
|
|
45
|
+
const cedarPaths = (0, import_project_config.getPaths)();
|
|
46
|
+
const cedarConfig = (0, import_project_config.getConfig)();
|
|
49
47
|
const schemaPointerMap = {
|
|
50
48
|
[(0, import_graphql.print)(import_graphql_server.rootSchema.schema)]: {},
|
|
51
49
|
"graphql/**/*.sdl.{js,ts}": {},
|
|
@@ -57,7 +55,7 @@ const generateGraphQLSchema = async () => {
|
|
|
57
55
|
"!subscriptions/**/*.spec.{js,ts}": {}
|
|
58
56
|
};
|
|
59
57
|
for (const [name, schema] of Object.entries(import_graphql_server.rootSchema.scalarSchemas)) {
|
|
60
|
-
if (
|
|
58
|
+
if (cedarConfig.graphql.includeScalars[name]) {
|
|
61
59
|
schemaPointerMap[(0, import_graphql.print)(schema)] = {};
|
|
62
60
|
}
|
|
63
61
|
}
|
|
@@ -76,10 +74,10 @@ const generateGraphQLSchema = async () => {
|
|
|
76
74
|
sort: true,
|
|
77
75
|
convertExtensions: true,
|
|
78
76
|
includeSources: true,
|
|
79
|
-
cwd:
|
|
77
|
+
cwd: cedarPaths.api.src,
|
|
80
78
|
schema: Object.keys(schemaPointerMap),
|
|
81
79
|
generates: {
|
|
82
|
-
[
|
|
80
|
+
[cedarPaths.generated.schema]: {
|
|
83
81
|
plugins: ["schema-ast"]
|
|
84
82
|
}
|
|
85
83
|
},
|
|
@@ -96,10 +94,7 @@ const generateGraphQLSchema = async () => {
|
|
|
96
94
|
if (e instanceof Error) {
|
|
97
95
|
const match = e.message.match(/Unknown type: "(\w+)"/);
|
|
98
96
|
const name = match?.[1];
|
|
99
|
-
const
|
|
100
|
-
redwoodProjectPaths.api.prismaConfig
|
|
101
|
-
);
|
|
102
|
-
const result = await getSchemaWithPath(schemaPath);
|
|
97
|
+
const result = await (0, import_project_config.getPrismaSchemas)();
|
|
103
98
|
const schemaPrisma = result.schemas.map(([, content]) => content).join("\n");
|
|
104
99
|
const errorObject = {
|
|
105
100
|
message: `Schema loading failed. ${e.message}`,
|
|
@@ -139,14 +134,14 @@ const generateGraphQLSchema = async () => {
|
|
|
139
134
|
pluginMap: { "schema-ast": schemaAstPlugin },
|
|
140
135
|
schema: {},
|
|
141
136
|
schemaAst: loadedSchema,
|
|
142
|
-
filename:
|
|
137
|
+
filename: cedarPaths.generated.schema,
|
|
143
138
|
documents: []
|
|
144
139
|
};
|
|
145
140
|
if (loadedSchema) {
|
|
146
141
|
try {
|
|
147
142
|
const schema = await (0, import_core.codegen)(options);
|
|
148
|
-
import_node_fs.default.writeFileSync(
|
|
149
|
-
return { schemaPath:
|
|
143
|
+
import_node_fs.default.writeFileSync(cedarPaths.generated.schema, schema);
|
|
144
|
+
return { schemaPath: cedarPaths.generated.schema, errors };
|
|
150
145
|
} catch (e) {
|
|
151
146
|
errors.push({
|
|
152
147
|
message: `GraphQL Schema codegen failed`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/generate/plugins/rw-typescript-resolvers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAK5E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAI5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAA;AAE3D,eAAO,MAAM,MAAM,EAAE,cAAc,CACjC,+BAA+B,EAC/B,KAAK,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/generate/plugins/rw-typescript-resolvers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAK5E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAI5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAA;AAE3D,eAAO,MAAM,MAAM,EAAE,cAAc,CACjC,+BAA+B,EAC/B,KAAK,CAAC,mBAAmB,CA6E1B,CAAA;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAA;AACvC,YAAY,EAAE,+BAA+B,EAAE,CAAA"}
|
|
@@ -25,12 +25,12 @@ module.exports = __toCommonJS(rw_typescript_resolvers_exports);
|
|
|
25
25
|
var import_plugin_helpers = require("@graphql-codegen/plugin-helpers");
|
|
26
26
|
var import_typescript_resolvers = require("@graphql-codegen/typescript-resolvers");
|
|
27
27
|
var import_visitor = require("./visitor.js");
|
|
28
|
-
const plugin = (schema, _documents, config) => {
|
|
28
|
+
const plugin = async (schema, _documents, config) => {
|
|
29
29
|
const visitor = new import_visitor.RwTypeScriptResolversVisitor(config, schema);
|
|
30
30
|
const visitorResult = (0, import_plugin_helpers.oldVisit)((0, import_plugin_helpers.getCachedDocumentNodeFromSchema)(schema), {
|
|
31
31
|
leave: visitor
|
|
32
32
|
});
|
|
33
|
-
const { prepend, content } = (0, import_typescript_resolvers.plugin)(schema, [], config);
|
|
33
|
+
const { prepend = [], content } = await (0, import_typescript_resolvers.plugin)(schema, [], config);
|
|
34
34
|
prepend.push(`export type OptArgsResolverFn<TResult, TParent = {}, TContext = {}, TArgs = {}> = (
|
|
35
35
|
args?: TArgs,
|
|
36
36
|
obj?: { root: TParent; context: TContext; info: GraphQLResolveInfo }
|
|
@@ -44,7 +44,7 @@ const plugin = (schema, _documents, config) => {
|
|
|
44
44
|
const visitorResultStart = splitContent.indexOf(
|
|
45
45
|
visitorResult.definitions.filter((d) => typeof d === "string")[0].split("\n")[0]
|
|
46
46
|
);
|
|
47
|
-
const splitRootResolver = visitor.getRootResolver().split("\n");
|
|
47
|
+
const splitRootResolver = visitor.getRootResolver().content.split("\n");
|
|
48
48
|
const visitorResultEnd = splitContent.findIndex(
|
|
49
49
|
(line, index) => line === splitRootResolver[0] && splitContent[index + 1] === splitRootResolver[1]
|
|
50
50
|
);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { TypeScriptResolversPluginConfig } from '@graphql-codegen/typescript-resolvers';
|
|
2
2
|
import { TypeScriptResolversVisitor } from '@graphql-codegen/typescript-resolvers';
|
|
3
|
+
import type { FieldDefinitionResult } from '@graphql-codegen/visitor-plugin-common';
|
|
3
4
|
import type { FieldDefinitionNode, GraphQLSchema, ObjectTypeDefinitionNode } from 'graphql';
|
|
4
5
|
export declare class RwTypeScriptResolversVisitor extends TypeScriptResolversVisitor {
|
|
5
6
|
constructor(pluginConfig: TypeScriptResolversPluginConfig, schema: GraphQLSchema);
|
|
6
|
-
FieldDefinition(node: FieldDefinitionNode, key: string | number, parent: any):
|
|
7
|
-
ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string;
|
|
7
|
+
FieldDefinition(node: FieldDefinitionNode, key: string | number, parent: any): FieldDefinitionResult;
|
|
8
|
+
ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string | null;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=visitor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../../../../../src/generate/plugins/rw-typescript-resolvers/visitor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../../../../../src/generate/plugins/rw-typescript-resolvers/visitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AACnF,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAEhB,qBAAa,4BAA6B,SAAQ,0BAA0B;gBAExE,YAAY,EAAE,+BAA+B,EAC7C,MAAM,EAAE,aAAa;IAMvB,eAAe,CACb,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,MAAM,EAAE,GAAG,GACV,qBAAqB;IAgCxB,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,GAAG,IAAI;CA6FpE"}
|
|
@@ -25,17 +25,26 @@ var import_typescript_resolvers = require("@graphql-codegen/typescript-resolvers
|
|
|
25
25
|
var import_visitor_plugin_common = require("@graphql-codegen/visitor-plugin-common");
|
|
26
26
|
class RwTypeScriptResolversVisitor extends import_typescript_resolvers.TypeScriptResolversVisitor {
|
|
27
27
|
constructor(pluginConfig, schema) {
|
|
28
|
-
super(pluginConfig, schema);
|
|
28
|
+
super(pluginConfig, schema, {});
|
|
29
29
|
}
|
|
30
30
|
FieldDefinition(node, key, parent) {
|
|
31
31
|
const hasArguments = node.arguments && node.arguments.length > 0;
|
|
32
32
|
const superFieldDefinition = super.FieldDefinition(node, key, parent);
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
return {
|
|
34
|
+
node: superFieldDefinition.node,
|
|
35
|
+
printContent: (parentNode, avoidResolverOptionals) => {
|
|
36
|
+
const result = superFieldDefinition.printContent(
|
|
37
|
+
parentNode,
|
|
38
|
+
avoidResolverOptionals
|
|
39
|
+
);
|
|
40
|
+
if (!hasArguments && result.value?.includes(": Resolver<")) {
|
|
41
|
+
return {
|
|
42
|
+
...result,
|
|
43
|
+
value: result.value.replace(": Resolver<", ": OptArgsResolverFn<")
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return result;
|
|
37
47
|
}
|
|
38
|
-
return fieldDef;
|
|
39
48
|
};
|
|
40
49
|
}
|
|
41
50
|
// Original implementation is here:
|
|
@@ -45,36 +54,35 @@ class RwTypeScriptResolversVisitor extends import_typescript_resolvers.TypeScrip
|
|
|
45
54
|
const name = this.convertName(node, {
|
|
46
55
|
suffix: this.config.resolverTypeSuffix
|
|
47
56
|
});
|
|
48
|
-
const typeName = node.name;
|
|
57
|
+
const typeName = node.name.value;
|
|
49
58
|
const parentType = this.getParentTypeToUse(typeName);
|
|
50
|
-
const fieldsContent = (node.fields || []).map((f) =>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
fieldsContent.push(
|
|
58
|
-
(0, import_visitor_plugin_common.indent)(
|
|
59
|
-
`${this.config.internalResolversPrefix}isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>${this.getPunctuation(
|
|
60
|
-
"type"
|
|
61
|
-
)}`
|
|
62
|
-
)
|
|
63
|
-
);
|
|
64
|
-
}
|
|
59
|
+
const fieldsContent = (node.fields || []).map((f) => {
|
|
60
|
+
if ("printContent" in f && typeof f.printContent === "function") {
|
|
61
|
+
return f.printContent(node, false).value;
|
|
62
|
+
} else {
|
|
63
|
+
throw new Error("Unexpected field type");
|
|
64
|
+
}
|
|
65
|
+
});
|
|
65
66
|
const blockRelationsResolver = new import_visitor_plugin_common.DeclarationBlock(
|
|
66
67
|
this._declarationBlockConfig
|
|
67
68
|
).export().asKind("type").withName(
|
|
68
69
|
name.replace("Resolvers", "RelationResolvers"),
|
|
69
70
|
`<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`
|
|
70
71
|
).withBlock(
|
|
71
|
-
fieldsContent.map(
|
|
72
|
-
(content) =>
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
fieldsContent.filter((content) => content !== null).map(
|
|
73
|
+
(content) => (
|
|
74
|
+
// In v5, fields may already carry an optional marker `?:`. The
|
|
75
|
+
// regex consumes the optional `?` so we don't emit a double `??`.
|
|
76
|
+
content.replace(
|
|
77
|
+
/\??: (?:OptArgs)?Resolver(?:Fn)?/,
|
|
78
|
+
"?: RequiredResolverFn"
|
|
79
|
+
)
|
|
75
80
|
)
|
|
76
81
|
).join("\n")
|
|
77
82
|
);
|
|
83
|
+
if (originalBlock === null) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
78
86
|
return originalBlock + "\n" + blockRelationsResolver.string;
|
|
79
87
|
}
|
|
80
88
|
}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export * from '@cedarjs/project-config';
|
|
|
2
2
|
export * from './ts2js.js';
|
|
3
3
|
export * from './dev.js';
|
|
4
4
|
export * from './routes.js';
|
|
5
|
-
export { dbReexportsPrismaClient } from './project.js';
|
|
6
5
|
export * from './files.js';
|
|
7
6
|
export { generate } from './generate/generate.js';
|
|
8
7
|
export { buildApi } from './build/api.js';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AAEvC,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AAEvC,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAE3B,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,uBAAuB,CAAA;AAErC,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -20,7 +20,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
var src_exports = {};
|
|
21
21
|
__export(src_exports, {
|
|
22
22
|
buildApi: () => import_api.buildApi,
|
|
23
|
-
dbReexportsPrismaClient: () => import_project.dbReexportsPrismaClient,
|
|
24
23
|
generate: () => import_generate.generate,
|
|
25
24
|
listQueryTypeFieldsInProject: () => import_gql.listQueryTypeFieldsInProject
|
|
26
25
|
});
|
|
@@ -29,7 +28,6 @@ __reExport(src_exports, require("@cedarjs/project-config"), module.exports);
|
|
|
29
28
|
__reExport(src_exports, require("./ts2js.js"), module.exports);
|
|
30
29
|
__reExport(src_exports, require("./dev.js"), module.exports);
|
|
31
30
|
__reExport(src_exports, require("./routes.js"), module.exports);
|
|
32
|
-
var import_project = require("./project.js");
|
|
33
31
|
__reExport(src_exports, require("./files.js"), module.exports);
|
|
34
32
|
var import_generate = require("./generate/generate.js");
|
|
35
33
|
var import_api = require("./build/api.js");
|
|
@@ -39,7 +37,6 @@ var import_gql = require("./gql.js");
|
|
|
39
37
|
// Annotate the CommonJS export names for ESM import in node:
|
|
40
38
|
0 && (module.exports = {
|
|
41
39
|
buildApi,
|
|
42
|
-
dbReexportsPrismaClient,
|
|
43
40
|
generate,
|
|
44
41
|
listQueryTypeFieldsInProject,
|
|
45
42
|
...require("@cedarjs/project-config"),
|
package/dist/cjs/project.d.ts
CHANGED
|
@@ -5,5 +5,4 @@ export declare const getTsConfigs: () => {
|
|
|
5
5
|
export declare const isTypeScriptProject: () => boolean;
|
|
6
6
|
export declare const isServerFileSetup: () => boolean;
|
|
7
7
|
export declare const isRealtimeSetup: () => boolean;
|
|
8
|
-
export declare const dbReexportsPrismaClient: () => boolean;
|
|
9
8
|
//# sourceMappingURL=project.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,YAAY;;;CAuBxB,CAAA;AAED,eAAO,MAAM,mBAAmB,eAM/B,CAAA;AAED,eAAO,MAAM,iBAAiB,eAO7B,CAAA;AAED,eAAO,MAAM,eAAe,eAO3B,CAAA
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,YAAY;;;CAuBxB,CAAA;AAED,eAAO,MAAM,mBAAmB,eAM/B,CAAA;AAED,eAAO,MAAM,iBAAiB,eAO7B,CAAA;AAED,eAAO,MAAM,eAAe,eAO3B,CAAA"}
|
package/dist/cjs/project.js
CHANGED
|
@@ -28,7 +28,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var project_exports = {};
|
|
30
30
|
__export(project_exports, {
|
|
31
|
-
dbReexportsPrismaClient: () => dbReexportsPrismaClient,
|
|
32
31
|
getTsConfigs: () => getTsConfigs,
|
|
33
32
|
isRealtimeSetup: () => isRealtimeSetup,
|
|
34
33
|
isServerFileSetup: () => isServerFileSetup,
|
|
@@ -74,17 +73,8 @@ const isRealtimeSetup = () => {
|
|
|
74
73
|
);
|
|
75
74
|
return import_node_fs.default.existsSync(realtimePath);
|
|
76
75
|
};
|
|
77
|
-
const dbReexportsPrismaClient = () => {
|
|
78
|
-
const dbPath = (0, import_project_config.resolveFile)(import_path.default.join((0, import_project_config.getPaths)().api.lib, "db"));
|
|
79
|
-
if (!dbPath) {
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
const content = import_node_fs.default.readFileSync(dbPath, "utf-8");
|
|
83
|
-
return /export\s+\*\s+from\s+['"]@prisma\/client['"]/.test(content);
|
|
84
|
-
};
|
|
85
76
|
// Annotate the CommonJS export names for ESM import in node:
|
|
86
77
|
0 && (module.exports = {
|
|
87
|
-
dbReexportsPrismaClient,
|
|
88
78
|
getTsConfigs,
|
|
89
79
|
isRealtimeSetup,
|
|
90
80
|
isServerFileSetup,
|
package/dist/cjs/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/routes.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,EAAE,CAyBvD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,WAgBxC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IACnD,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAE9B;AAED,MAAM,WAAW,SAAU,SAAQ,mBAAmB;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,gBAAgB,QAAO,SAAS,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/routes.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,EAAE,CAyBvD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,WAgBxC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IACnD,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAE9B;AAED,MAAM,WAAW,SAAU,SAAQ,mBAAmB;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,gBAAgB,QAAO,SAAS,EAmC5C,CAAA"}
|
package/dist/cjs/routes.js
CHANGED
|
@@ -40,7 +40,7 @@ var import_util = require("@cedarjs/router/dist/util");
|
|
|
40
40
|
var import_structure = require("@cedarjs/structure");
|
|
41
41
|
function getDuplicateRoutes() {
|
|
42
42
|
const duplicateRoutes = [];
|
|
43
|
-
const allRoutes = (0, import_structure.getProject)(
|
|
43
|
+
const allRoutes = (0, import_structure.getProject)().router.routes;
|
|
44
44
|
const uniqueNames = new Set(
|
|
45
45
|
allRoutes.filter((route) => route.name !== void 0).map((route) => route.name)
|
|
46
46
|
);
|
|
@@ -78,8 +78,7 @@ function warningForDuplicateRoutes() {
|
|
|
78
78
|
return message.trimEnd();
|
|
79
79
|
}
|
|
80
80
|
const getProjectRoutes = () => {
|
|
81
|
-
const
|
|
82
|
-
const routes = rwProject.getRouter().routes;
|
|
81
|
+
const routes = (0, import_structure.getProject)().getRouter().routes;
|
|
83
82
|
return routes.map((route) => {
|
|
84
83
|
const { matchRegexString, routeParams } = route.isNotFound ? { matchRegexString: null, routeParams: null } : (0, import_util.getRouteRegexAndParams)(route.path);
|
|
85
84
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlCodeGen.d.ts","sourceRoot":"","sources":["../../src/generate/graphqlCodeGen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphqlCodeGen.d.ts","sourceRoot":"","sources":["../../src/generate/graphqlCodeGen.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAkB9D,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;AAmCD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;SACD,MAAM;GAQ5D;AA8JD,eAAO,MAAM,iBAAiB,4RAe7B,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
|
-
import path from "path";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
3
4
|
import * as addPlugin from "@graphql-codegen/add";
|
|
4
5
|
import { loadCodegenConfig } from "@graphql-codegen/cli";
|
|
5
6
|
import { codegen } from "@graphql-codegen/core";
|
|
@@ -15,7 +16,7 @@ import {
|
|
|
15
16
|
getConfig,
|
|
16
17
|
resolveGeneratedPrismaClient
|
|
17
18
|
} from "@cedarjs/project-config";
|
|
18
|
-
import { getTsConfigs
|
|
19
|
+
import { getTsConfigs } from "../project.js";
|
|
19
20
|
import * as rwTypescriptResolvers from "./plugins/rw-typescript-resolvers/index.js";
|
|
20
21
|
var CodegenSide = /* @__PURE__ */ ((CodegenSide2) => {
|
|
21
22
|
CodegenSide2[CodegenSide2["API"] = 0] = "API";
|
|
@@ -49,7 +50,7 @@ const generateTypeDefGraphQLApi = async () => {
|
|
|
49
50
|
const prismaImports = Object.keys(prismaModels).map((key) => {
|
|
50
51
|
return `${key} as Prisma${key}`;
|
|
51
52
|
});
|
|
52
|
-
const prismaImportSource =
|
|
53
|
+
const prismaImportSource = "src/lib/db";
|
|
53
54
|
const extraPlugins = [
|
|
54
55
|
{
|
|
55
56
|
name: "add",
|
|
@@ -112,7 +113,7 @@ const generateTypeDefGraphQLWeb = async () => {
|
|
|
112
113
|
{
|
|
113
114
|
name: "add",
|
|
114
115
|
options: {
|
|
115
|
-
content: `import { Prisma } from "$
|
|
116
|
+
content: `import { Prisma } from "$api/src/lib/db"`,
|
|
116
117
|
placement: "prepend"
|
|
117
118
|
},
|
|
118
119
|
codegenPlugin: addPlugin
|
|
@@ -149,8 +150,9 @@ async function runCodegenGraphQL(documents, extraPlugins, filename, side) {
|
|
|
149
150
|
const userCodegenConfig = await loadCodegenConfig({
|
|
150
151
|
configFilePath: getPaths().base
|
|
151
152
|
});
|
|
153
|
+
const pluginConfig = await getPluginConfig(side);
|
|
152
154
|
const mergedConfig = {
|
|
153
|
-
...
|
|
155
|
+
...pluginConfig,
|
|
154
156
|
...userCodegenConfig?.config?.config
|
|
155
157
|
};
|
|
156
158
|
const options = getCodegenOptions(documents, mergedConfig, extraPlugins);
|
|
@@ -168,26 +170,58 @@ function getLoadDocumentsOptions(filename) {
|
|
|
168
170
|
};
|
|
169
171
|
return loadTypedefsConfig;
|
|
170
172
|
}
|
|
171
|
-
async function
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
173
|
+
async function importGeneratedPrismaClient() {
|
|
174
|
+
const cacheBuster = `?t=${Date.now()}`;
|
|
175
|
+
const { clientPath, error } = await resolveGeneratedPrismaClient();
|
|
176
|
+
if (!clientPath) {
|
|
177
|
+
throw new Error(error);
|
|
178
|
+
}
|
|
179
|
+
const fileUrl = pathToFileURL(clientPath).href + cacheBuster;
|
|
180
|
+
const freshPrisma = await import(fileUrl);
|
|
181
|
+
return freshPrisma;
|
|
182
|
+
}
|
|
183
|
+
function isModelNameRecord(value) {
|
|
184
|
+
if (typeof value !== "object" || value === null) {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
return Object.values(value).every((entry) => typeof entry === "string");
|
|
188
|
+
}
|
|
189
|
+
function getModelName(mod) {
|
|
190
|
+
if (typeof mod !== "object" || mod === null || !("Prisma" in mod)) {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
const prismaModule = mod.Prisma;
|
|
194
|
+
if (typeof prismaModule !== "object" || prismaModule === null || !("ModelName" in prismaModule)) {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
const modelName = prismaModule.ModelName;
|
|
198
|
+
if (typeof modelName !== "object" || modelName === null) {
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
if (isModelNameRecord(modelName)) {
|
|
202
|
+
return modelName;
|
|
181
203
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
async function getPrismaClient() {
|
|
207
|
+
try {
|
|
208
|
+
const localPrisma = await importGeneratedPrismaClient();
|
|
209
|
+
const modelName = getModelName(localPrisma);
|
|
210
|
+
if (modelName) {
|
|
211
|
+
return { ModelName: modelName };
|
|
188
212
|
}
|
|
213
|
+
} catch {
|
|
214
|
+
}
|
|
215
|
+
execa.sync("yarn", ["cedar", "prisma", "generate"]);
|
|
216
|
+
try {
|
|
217
|
+
const freshPrisma = await importGeneratedPrismaClient();
|
|
218
|
+
const modelName = getModelName(freshPrisma);
|
|
219
|
+
if (modelName) {
|
|
220
|
+
return { ModelName: modelName };
|
|
221
|
+
}
|
|
222
|
+
} catch {
|
|
189
223
|
}
|
|
190
|
-
return
|
|
224
|
+
return { ModelName: {} };
|
|
191
225
|
}
|
|
192
226
|
async function getPrismaModels() {
|
|
193
227
|
const localPrisma = await getPrismaClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlSchema.d.ts","sourceRoot":"","sources":["../../src/generate/graphqlSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"graphqlSchema.d.ts","sourceRoot":"","sources":["../../src/generate/graphqlSchema.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,qBAAqB;;;iBA2DP,MAAM;eAAS,OAAO;;EA2EhD,CAAA"}
|
|
@@ -3,7 +3,6 @@ import { codegen } from "@graphql-codegen/core";
|
|
|
3
3
|
import * as schemaAstPlugin from "@graphql-codegen/schema-ast";
|
|
4
4
|
import { CodeFileLoader } from "@graphql-tools/code-file-loader";
|
|
5
5
|
import { loadSchema } from "@graphql-tools/load";
|
|
6
|
-
import prismaInternals from "@prisma/internals";
|
|
7
6
|
import ansis from "ansis";
|
|
8
7
|
import { print } from "graphql";
|
|
9
8
|
import { terminalLink } from "termi-link";
|
|
@@ -12,12 +11,11 @@ import {
|
|
|
12
11
|
getPaths,
|
|
13
12
|
getConfig,
|
|
14
13
|
resolveFile,
|
|
15
|
-
|
|
14
|
+
getPrismaSchemas
|
|
16
15
|
} from "@cedarjs/project-config";
|
|
17
|
-
const { getSchemaWithPath } = prismaInternals;
|
|
18
16
|
const generateGraphQLSchema = async () => {
|
|
19
|
-
const
|
|
20
|
-
const
|
|
17
|
+
const cedarPaths = getPaths();
|
|
18
|
+
const cedarConfig = getConfig();
|
|
21
19
|
const schemaPointerMap = {
|
|
22
20
|
[print(rootSchema.schema)]: {},
|
|
23
21
|
"graphql/**/*.sdl.{js,ts}": {},
|
|
@@ -29,7 +27,7 @@ const generateGraphQLSchema = async () => {
|
|
|
29
27
|
"!subscriptions/**/*.spec.{js,ts}": {}
|
|
30
28
|
};
|
|
31
29
|
for (const [name, schema] of Object.entries(rootSchema.scalarSchemas)) {
|
|
32
|
-
if (
|
|
30
|
+
if (cedarConfig.graphql.includeScalars[name]) {
|
|
33
31
|
schemaPointerMap[print(schema)] = {};
|
|
34
32
|
}
|
|
35
33
|
}
|
|
@@ -48,10 +46,10 @@ const generateGraphQLSchema = async () => {
|
|
|
48
46
|
sort: true,
|
|
49
47
|
convertExtensions: true,
|
|
50
48
|
includeSources: true,
|
|
51
|
-
cwd:
|
|
49
|
+
cwd: cedarPaths.api.src,
|
|
52
50
|
schema: Object.keys(schemaPointerMap),
|
|
53
51
|
generates: {
|
|
54
|
-
[
|
|
52
|
+
[cedarPaths.generated.schema]: {
|
|
55
53
|
plugins: ["schema-ast"]
|
|
56
54
|
}
|
|
57
55
|
},
|
|
@@ -68,10 +66,7 @@ const generateGraphQLSchema = async () => {
|
|
|
68
66
|
if (e instanceof Error) {
|
|
69
67
|
const match = e.message.match(/Unknown type: "(\w+)"/);
|
|
70
68
|
const name = match?.[1];
|
|
71
|
-
const
|
|
72
|
-
redwoodProjectPaths.api.prismaConfig
|
|
73
|
-
);
|
|
74
|
-
const result = await getSchemaWithPath(schemaPath);
|
|
69
|
+
const result = await getPrismaSchemas();
|
|
75
70
|
const schemaPrisma = result.schemas.map(([, content]) => content).join("\n");
|
|
76
71
|
const errorObject = {
|
|
77
72
|
message: `Schema loading failed. ${e.message}`,
|
|
@@ -111,14 +106,14 @@ const generateGraphQLSchema = async () => {
|
|
|
111
106
|
pluginMap: { "schema-ast": schemaAstPlugin },
|
|
112
107
|
schema: {},
|
|
113
108
|
schemaAst: loadedSchema,
|
|
114
|
-
filename:
|
|
109
|
+
filename: cedarPaths.generated.schema,
|
|
115
110
|
documents: []
|
|
116
111
|
};
|
|
117
112
|
if (loadedSchema) {
|
|
118
113
|
try {
|
|
119
114
|
const schema = await codegen(options);
|
|
120
|
-
fs.writeFileSync(
|
|
121
|
-
return { schemaPath:
|
|
115
|
+
fs.writeFileSync(cedarPaths.generated.schema, schema);
|
|
116
|
+
return { schemaPath: cedarPaths.generated.schema, errors };
|
|
122
117
|
} catch (e) {
|
|
123
118
|
errors.push({
|
|
124
119
|
message: `GraphQL Schema codegen failed`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generate/plugins/rw-typescript-resolvers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAK5E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAI5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAA;AAE3D,eAAO,MAAM,MAAM,EAAE,cAAc,CACjC,+BAA+B,EAC/B,KAAK,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/generate/plugins/rw-typescript-resolvers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAK5E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAI5F,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAA;AAE3D,eAAO,MAAM,MAAM,EAAE,cAAc,CACjC,+BAA+B,EAC/B,KAAK,CAAC,mBAAmB,CA6E1B,CAAA;AAED,OAAO,EAAE,4BAA4B,EAAE,CAAA;AACvC,YAAY,EAAE,+BAA+B,EAAE,CAAA"}
|
|
@@ -4,12 +4,12 @@ import {
|
|
|
4
4
|
} from "@graphql-codegen/plugin-helpers";
|
|
5
5
|
import { plugin as originalPlugin } from "@graphql-codegen/typescript-resolvers";
|
|
6
6
|
import { RwTypeScriptResolversVisitor } from "./visitor.js";
|
|
7
|
-
const plugin = (schema, _documents, config) => {
|
|
7
|
+
const plugin = async (schema, _documents, config) => {
|
|
8
8
|
const visitor = new RwTypeScriptResolversVisitor(config, schema);
|
|
9
9
|
const visitorResult = oldVisit(getCachedDocumentNodeFromSchema(schema), {
|
|
10
10
|
leave: visitor
|
|
11
11
|
});
|
|
12
|
-
const { prepend, content } = originalPlugin(schema, [], config);
|
|
12
|
+
const { prepend = [], content } = await originalPlugin(schema, [], config);
|
|
13
13
|
prepend.push(`export type OptArgsResolverFn<TResult, TParent = {}, TContext = {}, TArgs = {}> = (
|
|
14
14
|
args?: TArgs,
|
|
15
15
|
obj?: { root: TParent; context: TContext; info: GraphQLResolveInfo }
|
|
@@ -23,7 +23,7 @@ const plugin = (schema, _documents, config) => {
|
|
|
23
23
|
const visitorResultStart = splitContent.indexOf(
|
|
24
24
|
visitorResult.definitions.filter((d) => typeof d === "string")[0].split("\n")[0]
|
|
25
25
|
);
|
|
26
|
-
const splitRootResolver = visitor.getRootResolver().split("\n");
|
|
26
|
+
const splitRootResolver = visitor.getRootResolver().content.split("\n");
|
|
27
27
|
const visitorResultEnd = splitContent.findIndex(
|
|
28
28
|
(line, index) => line === splitRootResolver[0] && splitContent[index + 1] === splitRootResolver[1]
|
|
29
29
|
);
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { TypeScriptResolversPluginConfig } from '@graphql-codegen/typescript-resolvers';
|
|
2
2
|
import { TypeScriptResolversVisitor } from '@graphql-codegen/typescript-resolvers';
|
|
3
|
+
import type { FieldDefinitionResult } from '@graphql-codegen/visitor-plugin-common';
|
|
3
4
|
import type { FieldDefinitionNode, GraphQLSchema, ObjectTypeDefinitionNode } from 'graphql';
|
|
4
5
|
export declare class RwTypeScriptResolversVisitor extends TypeScriptResolversVisitor {
|
|
5
6
|
constructor(pluginConfig: TypeScriptResolversPluginConfig, schema: GraphQLSchema);
|
|
6
|
-
FieldDefinition(node: FieldDefinitionNode, key: string | number, parent: any):
|
|
7
|
-
ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string;
|
|
7
|
+
FieldDefinition(node: FieldDefinitionNode, key: string | number, parent: any): FieldDefinitionResult;
|
|
8
|
+
ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string | null;
|
|
8
9
|
}
|
|
9
10
|
//# sourceMappingURL=visitor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../../../../src/generate/plugins/rw-typescript-resolvers/visitor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"visitor.d.ts","sourceRoot":"","sources":["../../../../src/generate/plugins/rw-typescript-resolvers/visitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AACnF,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAEhB,qBAAa,4BAA6B,SAAQ,0BAA0B;gBAExE,YAAY,EAAE,+BAA+B,EAC7C,MAAM,EAAE,aAAa;IAMvB,eAAe,CACb,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,MAAM,EAAE,GAAG,GACV,qBAAqB;IAgCxB,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM,GAAG,IAAI;CA6FpE"}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
import { TypeScriptResolversVisitor } from "@graphql-codegen/typescript-resolvers";
|
|
2
|
-
import {
|
|
3
|
-
indent,
|
|
4
|
-
DeclarationBlock
|
|
5
|
-
} from "@graphql-codegen/visitor-plugin-common";
|
|
2
|
+
import { DeclarationBlock } from "@graphql-codegen/visitor-plugin-common";
|
|
6
3
|
class RwTypeScriptResolversVisitor extends TypeScriptResolversVisitor {
|
|
7
4
|
constructor(pluginConfig, schema) {
|
|
8
|
-
super(pluginConfig, schema);
|
|
5
|
+
super(pluginConfig, schema, {});
|
|
9
6
|
}
|
|
10
7
|
FieldDefinition(node, key, parent) {
|
|
11
8
|
const hasArguments = node.arguments && node.arguments.length > 0;
|
|
12
9
|
const superFieldDefinition = super.FieldDefinition(node, key, parent);
|
|
13
|
-
return
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
return {
|
|
11
|
+
node: superFieldDefinition.node,
|
|
12
|
+
printContent: (parentNode, avoidResolverOptionals) => {
|
|
13
|
+
const result = superFieldDefinition.printContent(
|
|
14
|
+
parentNode,
|
|
15
|
+
avoidResolverOptionals
|
|
16
|
+
);
|
|
17
|
+
if (!hasArguments && result.value?.includes(": Resolver<")) {
|
|
18
|
+
return {
|
|
19
|
+
...result,
|
|
20
|
+
value: result.value.replace(": Resolver<", ": OptArgsResolverFn<")
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
17
24
|
}
|
|
18
|
-
return fieldDef;
|
|
19
25
|
};
|
|
20
26
|
}
|
|
21
27
|
// Original implementation is here:
|
|
@@ -25,36 +31,35 @@ class RwTypeScriptResolversVisitor extends TypeScriptResolversVisitor {
|
|
|
25
31
|
const name = this.convertName(node, {
|
|
26
32
|
suffix: this.config.resolverTypeSuffix
|
|
27
33
|
});
|
|
28
|
-
const typeName = node.name;
|
|
34
|
+
const typeName = node.name.value;
|
|
29
35
|
const parentType = this.getParentTypeToUse(typeName);
|
|
30
|
-
const fieldsContent = (node.fields || []).map((f) =>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
fieldsContent.push(
|
|
38
|
-
indent(
|
|
39
|
-
`${this.config.internalResolversPrefix}isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>${this.getPunctuation(
|
|
40
|
-
"type"
|
|
41
|
-
)}`
|
|
42
|
-
)
|
|
43
|
-
);
|
|
44
|
-
}
|
|
36
|
+
const fieldsContent = (node.fields || []).map((f) => {
|
|
37
|
+
if ("printContent" in f && typeof f.printContent === "function") {
|
|
38
|
+
return f.printContent(node, false).value;
|
|
39
|
+
} else {
|
|
40
|
+
throw new Error("Unexpected field type");
|
|
41
|
+
}
|
|
42
|
+
});
|
|
45
43
|
const blockRelationsResolver = new DeclarationBlock(
|
|
46
44
|
this._declarationBlockConfig
|
|
47
45
|
).export().asKind("type").withName(
|
|
48
46
|
name.replace("Resolvers", "RelationResolvers"),
|
|
49
47
|
`<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`
|
|
50
48
|
).withBlock(
|
|
51
|
-
fieldsContent.map(
|
|
52
|
-
(content) =>
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
fieldsContent.filter((content) => content !== null).map(
|
|
50
|
+
(content) => (
|
|
51
|
+
// In v5, fields may already carry an optional marker `?:`. The
|
|
52
|
+
// regex consumes the optional `?` so we don't emit a double `??`.
|
|
53
|
+
content.replace(
|
|
54
|
+
/\??: (?:OptArgs)?Resolver(?:Fn)?/,
|
|
55
|
+
"?: RequiredResolverFn"
|
|
56
|
+
)
|
|
55
57
|
)
|
|
56
58
|
).join("\n")
|
|
57
59
|
);
|
|
60
|
+
if (originalBlock === null) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
58
63
|
return originalBlock + "\n" + blockRelationsResolver.string;
|
|
59
64
|
}
|
|
60
65
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export * from '@cedarjs/project-config';
|
|
|
2
2
|
export * from './ts2js.js';
|
|
3
3
|
export * from './dev.js';
|
|
4
4
|
export * from './routes.js';
|
|
5
|
-
export { dbReexportsPrismaClient } from './project.js';
|
|
6
5
|
export * from './files.js';
|
|
7
6
|
export { generate } from './generate/generate.js';
|
|
8
7
|
export { buildApi } from './build/api.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AAEvC,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AAEvC,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAE3B,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,uBAAuB,CAAA;AAErC,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,6 @@ export * from "@cedarjs/project-config";
|
|
|
2
2
|
export * from "./ts2js.js";
|
|
3
3
|
export * from "./dev.js";
|
|
4
4
|
export * from "./routes.js";
|
|
5
|
-
import { dbReexportsPrismaClient } from "./project.js";
|
|
6
5
|
export * from "./files.js";
|
|
7
6
|
import { generate } from "./generate/generate.js";
|
|
8
7
|
import { buildApi } from "./build/api.js";
|
|
@@ -11,7 +10,6 @@ export * from "@cedarjs/babel-config";
|
|
|
11
10
|
import { listQueryTypeFieldsInProject } from "./gql.js";
|
|
12
11
|
export {
|
|
13
12
|
buildApi,
|
|
14
|
-
dbReexportsPrismaClient,
|
|
15
13
|
generate,
|
|
16
14
|
listQueryTypeFieldsInProject
|
|
17
15
|
};
|
package/dist/project.d.ts
CHANGED
|
@@ -5,5 +5,4 @@ export declare const getTsConfigs: () => {
|
|
|
5
5
|
export declare const isTypeScriptProject: () => boolean;
|
|
6
6
|
export declare const isServerFileSetup: () => boolean;
|
|
7
7
|
export declare const isRealtimeSetup: () => boolean;
|
|
8
|
-
export declare const dbReexportsPrismaClient: () => boolean;
|
|
9
8
|
//# sourceMappingURL=project.d.ts.map
|
package/dist/project.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,YAAY;;;CAuBxB,CAAA;AAED,eAAO,MAAM,mBAAmB,eAM/B,CAAA;AAED,eAAO,MAAM,iBAAiB,eAO7B,CAAA;AAED,eAAO,MAAM,eAAe,eAO3B,CAAA
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,YAAY;;;CAuBxB,CAAA;AAED,eAAO,MAAM,mBAAmB,eAM/B,CAAA;AAED,eAAO,MAAM,iBAAiB,eAO7B,CAAA;AAED,eAAO,MAAM,eAAe,eAO3B,CAAA"}
|
package/dist/project.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import { parseConfigFileTextToJson } from "typescript";
|
|
4
|
-
import { getPaths
|
|
4
|
+
import { getPaths } from "@cedarjs/project-config";
|
|
5
5
|
const getTsConfigs = () => {
|
|
6
6
|
const rwPaths = getPaths();
|
|
7
7
|
const apiTsConfigPath = path.join(rwPaths.api.base, "tsconfig.json");
|
|
@@ -37,16 +37,7 @@ const isRealtimeSetup = () => {
|
|
|
37
37
|
);
|
|
38
38
|
return fs.existsSync(realtimePath);
|
|
39
39
|
};
|
|
40
|
-
const dbReexportsPrismaClient = () => {
|
|
41
|
-
const dbPath = resolveFile(path.join(getPaths().api.lib, "db"));
|
|
42
|
-
if (!dbPath) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
const content = fs.readFileSync(dbPath, "utf-8");
|
|
46
|
-
return /export\s+\*\s+from\s+['"]@prisma\/client['"]/.test(content);
|
|
47
|
-
};
|
|
48
40
|
export {
|
|
49
|
-
dbReexportsPrismaClient,
|
|
50
41
|
getTsConfigs,
|
|
51
42
|
isRealtimeSetup,
|
|
52
43
|
isServerFileSetup,
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,EAAE,CAyBvD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,WAgBxC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IACnD,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAE9B;AAED,MAAM,WAAW,SAAU,SAAQ,mBAAmB;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,gBAAgB,QAAO,SAAS,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,gBAAgB,EAAE,CAyBvD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,WAgBxC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IACnD,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAE9B;AAED,MAAM,WAAW,SAAU,SAAQ,mBAAmB;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,gBAAgB,QAAO,SAAS,EAmC5C,CAAA"}
|
package/dist/routes.js
CHANGED
|
@@ -5,7 +5,7 @@ import { getRouteRegexAndParams } from "@cedarjs/router/dist/util";
|
|
|
5
5
|
import { getProject } from "@cedarjs/structure";
|
|
6
6
|
function getDuplicateRoutes() {
|
|
7
7
|
const duplicateRoutes = [];
|
|
8
|
-
const allRoutes = getProject(
|
|
8
|
+
const allRoutes = getProject().router.routes;
|
|
9
9
|
const uniqueNames = new Set(
|
|
10
10
|
allRoutes.filter((route) => route.name !== void 0).map((route) => route.name)
|
|
11
11
|
);
|
|
@@ -43,8 +43,7 @@ function warningForDuplicateRoutes() {
|
|
|
43
43
|
return message.trimEnd();
|
|
44
44
|
}
|
|
45
45
|
const getProjectRoutes = () => {
|
|
46
|
-
const
|
|
47
|
-
const routes = rwProject.getRouter().routes;
|
|
46
|
+
const routes = getProject().getRouter().routes;
|
|
48
47
|
return routes.map((route) => {
|
|
49
48
|
const { matchRegexString, routeParams } = route.isNotFound ? { matchRegexString: null, routeParams: null } : getRouteRegexAndParams(route.path);
|
|
50
49
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cedarjs/internal",
|
|
3
|
-
"version": "2.8.1-next.
|
|
3
|
+
"version": "2.8.1-next.116+784d2c048",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cedarjs/cedar.git",
|
|
@@ -145,30 +145,29 @@
|
|
|
145
145
|
},
|
|
146
146
|
"dependencies": {
|
|
147
147
|
"@babel/core": "^7.26.10",
|
|
148
|
-
"@babel/parser": "7.29.
|
|
148
|
+
"@babel/parser": "7.29.2",
|
|
149
149
|
"@babel/plugin-transform-react-jsx": "7.28.6",
|
|
150
150
|
"@babel/plugin-transform-typescript": "^7.26.8",
|
|
151
|
-
"@babel/runtime-corejs3": "7.29.0",
|
|
152
151
|
"@babel/traverse": "7.29.0",
|
|
153
|
-
"@cedarjs/babel-config": "2.8.1-next.
|
|
154
|
-
"@cedarjs/graphql-server": "2.8.1-next.
|
|
155
|
-
"@cedarjs/project-config": "2.8.1-next.
|
|
156
|
-
"@cedarjs/router": "2.8.1-next.
|
|
157
|
-
"@
|
|
158
|
-
"@graphql-codegen/
|
|
159
|
-
"@graphql-codegen/
|
|
160
|
-
"@graphql-codegen/
|
|
161
|
-
"@graphql-codegen/
|
|
162
|
-
"@graphql-codegen/
|
|
163
|
-
"@graphql-codegen/
|
|
164
|
-
"@graphql-codegen/
|
|
165
|
-
"@graphql-codegen/typescript
|
|
166
|
-
"@graphql-codegen/typescript-
|
|
167
|
-
"@graphql-codegen/typescript-
|
|
152
|
+
"@cedarjs/babel-config": "2.8.1-next.116+784d2c048",
|
|
153
|
+
"@cedarjs/graphql-server": "2.8.1-next.116+784d2c048",
|
|
154
|
+
"@cedarjs/project-config": "2.8.1-next.116+784d2c048",
|
|
155
|
+
"@cedarjs/router": "2.8.1-next.116+784d2c048",
|
|
156
|
+
"@cedarjs/structure": "2.8.1-next.116+784d2c048",
|
|
157
|
+
"@graphql-codegen/add": "6.0.0",
|
|
158
|
+
"@graphql-codegen/cli": "6.2.1",
|
|
159
|
+
"@graphql-codegen/client-preset": "5.2.4",
|
|
160
|
+
"@graphql-codegen/core": "5.0.1",
|
|
161
|
+
"@graphql-codegen/fragment-matcher": "6.0.0",
|
|
162
|
+
"@graphql-codegen/schema-ast": "5.0.1",
|
|
163
|
+
"@graphql-codegen/typed-document-node": "6.1.7",
|
|
164
|
+
"@graphql-codegen/typescript": "5.0.9",
|
|
165
|
+
"@graphql-codegen/typescript-operations": "5.0.9",
|
|
166
|
+
"@graphql-codegen/typescript-react-apollo": "4.4.1",
|
|
167
|
+
"@graphql-codegen/typescript-resolvers": "5.1.7",
|
|
168
168
|
"@graphql-tools/documents": "1.0.1",
|
|
169
169
|
"@sdl-codegen/node": "2.0.1",
|
|
170
170
|
"ansis": "4.2.0",
|
|
171
|
-
"core-js": "3.48.0",
|
|
172
171
|
"deepmerge": "4.3.1",
|
|
173
172
|
"esbuild": "0.21.5",
|
|
174
173
|
"fast-glob": "3.3.3",
|
|
@@ -178,14 +177,14 @@
|
|
|
178
177
|
"rimraf": "6.1.3",
|
|
179
178
|
"source-map": "0.7.6",
|
|
180
179
|
"string-env-interpolation": "1.0.1",
|
|
181
|
-
"systeminformation": "5.31.
|
|
180
|
+
"systeminformation": "5.31.4",
|
|
182
181
|
"termi-link": "1.1.0",
|
|
183
182
|
"ts-node": "10.9.2",
|
|
184
183
|
"typescript": "5.9.3"
|
|
185
184
|
},
|
|
186
185
|
"devDependencies": {
|
|
187
186
|
"@arethetypeswrong/cli": "0.18.2",
|
|
188
|
-
"@cedarjs/framework-tools": "2.8.1-next.
|
|
187
|
+
"@cedarjs/framework-tools": "2.8.1-next.116",
|
|
189
188
|
"concurrently": "9.2.1",
|
|
190
189
|
"graphql-tag": "2.12.6",
|
|
191
190
|
"publint": "0.3.18",
|
|
@@ -195,5 +194,5 @@
|
|
|
195
194
|
"publishConfig": {
|
|
196
195
|
"access": "public"
|
|
197
196
|
},
|
|
198
|
-
"gitHead": "
|
|
197
|
+
"gitHead": "784d2c0484936b2d853e5b316d167602bd80d996"
|
|
199
198
|
}
|