@cedarjs/internal 2.8.1-next.109 → 2.8.1-rc.3
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 +24 -58
- package/dist/cjs/generate/graphqlSchema.d.ts.map +1 -1
- package/dist/cjs/generate/graphqlSchema.js +14 -9
- 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 +2 -3
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.d.ts.map +1 -1
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.js +26 -34
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/project.d.ts +1 -0
- package/dist/cjs/project.d.ts.map +1 -1
- package/dist/cjs/project.js +10 -0
- package/dist/cjs/routes.d.ts.map +1 -1
- package/dist/cjs/routes.js +3 -2
- package/dist/generate/graphqlCodeGen.d.ts.map +1 -1
- package/dist/generate/graphqlCodeGen.js +22 -56
- package/dist/generate/graphqlSchema.d.ts.map +1 -1
- package/dist/generate/graphqlSchema.js +15 -10
- 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 +2 -3
- package/dist/generate/plugins/rw-typescript-resolvers/visitor.d.ts.map +1 -1
- package/dist/generate/plugins/rw-typescript-resolvers/visitor.js +30 -35
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/project.d.ts +1 -0
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +10 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +3 -2
- package/package.json +22 -21
|
@@ -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":"AAeA,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,CAmFvE,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,aAAa,CA0DvE,CAAA;AAiCD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;SACD,MAAM;GAQ5D;AAkHD,eAAO,MAAM,iBAAiB,4RAe7B,CAAA"}
|
|
@@ -35,8 +35,7 @@ __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
|
|
39
|
-
var import_node_url = require("node:url");
|
|
38
|
+
var import_path = __toESM(require("path"), 1);
|
|
40
39
|
var addPlugin = __toESM(require("@graphql-codegen/add"), 1);
|
|
41
40
|
var import_cli = require("@graphql-codegen/cli");
|
|
42
41
|
var import_core = require("@graphql-codegen/core");
|
|
@@ -77,12 +76,12 @@ const generateTypeDefGraphQLApi = async () => {
|
|
|
77
76
|
errors
|
|
78
77
|
};
|
|
79
78
|
}
|
|
80
|
-
const filename =
|
|
79
|
+
const filename = import_path.default.join((0, import_project_config.getPaths)().api.types, "graphql.d.ts");
|
|
81
80
|
const prismaModels = await getPrismaModels();
|
|
82
81
|
const prismaImports = Object.keys(prismaModels).map((key) => {
|
|
83
82
|
return `${key} as Prisma${key}`;
|
|
84
83
|
});
|
|
85
|
-
const prismaImportSource = "src/lib/db";
|
|
84
|
+
const prismaImportSource = (0, import_project.dbReexportsPrismaClient)() ? "src/lib/db" : "@prisma/client";
|
|
86
85
|
const extraPlugins = [
|
|
87
86
|
{
|
|
88
87
|
name: "add",
|
|
@@ -129,7 +128,7 @@ const generateTypeDefGraphQLApi = async () => {
|
|
|
129
128
|
}
|
|
130
129
|
};
|
|
131
130
|
const generateTypeDefGraphQLWeb = async () => {
|
|
132
|
-
const filename =
|
|
131
|
+
const filename = import_path.default.join((0, import_project_config.getPaths)().web.types, "graphql.d.ts");
|
|
133
132
|
const options = getLoadDocumentsOptions(filename);
|
|
134
133
|
const documentsGlob = "./web/src/**/!(*.d).{ts,tsx,js,jsx}";
|
|
135
134
|
let documents;
|
|
@@ -145,7 +144,7 @@ const generateTypeDefGraphQLWeb = async () => {
|
|
|
145
144
|
{
|
|
146
145
|
name: "add",
|
|
147
146
|
options: {
|
|
148
|
-
content: `import { Prisma } from "$api/src/lib/db"`,
|
|
147
|
+
content: `import { Prisma } from "${(0, import_project.dbReexportsPrismaClient)() ? "$api/src/lib/db" : "@prisma/client"}"`,
|
|
149
148
|
placement: "prepend"
|
|
150
149
|
},
|
|
151
150
|
codegenPlugin: addPlugin
|
|
@@ -182,14 +181,13 @@ async function runCodegenGraphQL(documents, extraPlugins, filename, side) {
|
|
|
182
181
|
const userCodegenConfig = await (0, import_cli.loadCodegenConfig)({
|
|
183
182
|
configFilePath: (0, import_project_config.getPaths)().base
|
|
184
183
|
});
|
|
185
|
-
const pluginConfig = await getPluginConfig(side);
|
|
186
184
|
const mergedConfig = {
|
|
187
|
-
...
|
|
185
|
+
...await getPluginConfig(side),
|
|
188
186
|
...userCodegenConfig?.config?.config
|
|
189
187
|
};
|
|
190
188
|
const options = getCodegenOptions(documents, mergedConfig, extraPlugins);
|
|
191
189
|
const output = await (0, import_core.codegen)(options);
|
|
192
|
-
import_node_fs.default.mkdirSync(
|
|
190
|
+
import_node_fs.default.mkdirSync(import_path.default.dirname(filename), { recursive: true });
|
|
193
191
|
import_node_fs.default.writeFileSync(filename, output);
|
|
194
192
|
return [filename];
|
|
195
193
|
}
|
|
@@ -202,58 +200,26 @@ function getLoadDocumentsOptions(filename) {
|
|
|
202
200
|
};
|
|
203
201
|
return loadTypedefsConfig;
|
|
204
202
|
}
|
|
205
|
-
async function
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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;
|
|
235
|
-
}
|
|
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 };
|
|
244
|
-
}
|
|
245
|
-
} catch {
|
|
203
|
+
async function getPrismaClient(hasGenerated = false) {
|
|
204
|
+
let localPrisma;
|
|
205
|
+
if (hasGenerated) {
|
|
206
|
+
const cacheBuster = `?t=${Date.now()}`;
|
|
207
|
+
const prismaClientPath = (0, import_project_config.resolveGeneratedPrismaClient)({ mustExist: true });
|
|
208
|
+
const { default: freshPrisma } = await import(`file://${prismaClientPath}${cacheBuster}`);
|
|
209
|
+
localPrisma = freshPrisma;
|
|
210
|
+
} else {
|
|
211
|
+
const { default: packagePrisma } = await import("@prisma/client");
|
|
212
|
+
localPrisma = packagePrisma;
|
|
246
213
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
return
|
|
214
|
+
if (!localPrisma.ModelName) {
|
|
215
|
+
if (hasGenerated) {
|
|
216
|
+
return { ModelName: {} };
|
|
217
|
+
} else {
|
|
218
|
+
import_execa.default.sync("yarn", ["cedar", "prisma", "generate"]);
|
|
219
|
+
return getPrismaClient(true);
|
|
253
220
|
}
|
|
254
|
-
} catch {
|
|
255
221
|
}
|
|
256
|
-
return
|
|
222
|
+
return localPrisma;
|
|
257
223
|
}
|
|
258
224
|
async function getPrismaModels() {
|
|
259
225
|
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":"AA4BA,eAAO,MAAM,qBAAqB;;;iBA6DP,MAAM;eAAS,OAAO;;EA8EhD,CAAA"}
|
|
@@ -36,14 +36,16 @@ 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);
|
|
39
40
|
var import_ansis = __toESM(require("ansis"), 1);
|
|
40
41
|
var import_graphql = require("graphql");
|
|
41
42
|
var import_termi_link = require("termi-link");
|
|
42
43
|
var import_graphql_server = require("@cedarjs/graphql-server");
|
|
43
44
|
var import_project_config = require("@cedarjs/project-config");
|
|
45
|
+
const { getSchemaWithPath } = import_internals.default;
|
|
44
46
|
const generateGraphQLSchema = async () => {
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
+
const redwoodProjectPaths = (0, import_project_config.getPaths)();
|
|
48
|
+
const redwoodProjectConfig = (0, import_project_config.getConfig)();
|
|
47
49
|
const schemaPointerMap = {
|
|
48
50
|
[(0, import_graphql.print)(import_graphql_server.rootSchema.schema)]: {},
|
|
49
51
|
"graphql/**/*.sdl.{js,ts}": {},
|
|
@@ -55,7 +57,7 @@ const generateGraphQLSchema = async () => {
|
|
|
55
57
|
"!subscriptions/**/*.spec.{js,ts}": {}
|
|
56
58
|
};
|
|
57
59
|
for (const [name, schema] of Object.entries(import_graphql_server.rootSchema.scalarSchemas)) {
|
|
58
|
-
if (
|
|
60
|
+
if (redwoodProjectConfig.graphql.includeScalars[name]) {
|
|
59
61
|
schemaPointerMap[(0, import_graphql.print)(schema)] = {};
|
|
60
62
|
}
|
|
61
63
|
}
|
|
@@ -74,10 +76,10 @@ const generateGraphQLSchema = async () => {
|
|
|
74
76
|
sort: true,
|
|
75
77
|
convertExtensions: true,
|
|
76
78
|
includeSources: true,
|
|
77
|
-
cwd:
|
|
79
|
+
cwd: redwoodProjectPaths.api.src,
|
|
78
80
|
schema: Object.keys(schemaPointerMap),
|
|
79
81
|
generates: {
|
|
80
|
-
[
|
|
82
|
+
[redwoodProjectPaths.generated.schema]: {
|
|
81
83
|
plugins: ["schema-ast"]
|
|
82
84
|
}
|
|
83
85
|
},
|
|
@@ -94,7 +96,10 @@ const generateGraphQLSchema = async () => {
|
|
|
94
96
|
if (e instanceof Error) {
|
|
95
97
|
const match = e.message.match(/Unknown type: "(\w+)"/);
|
|
96
98
|
const name = match?.[1];
|
|
97
|
-
const
|
|
99
|
+
const schemaPath = await (0, import_project_config.getSchemaPath)(
|
|
100
|
+
redwoodProjectPaths.api.prismaConfig
|
|
101
|
+
);
|
|
102
|
+
const result = await getSchemaWithPath(schemaPath);
|
|
98
103
|
const schemaPrisma = result.schemas.map(([, content]) => content).join("\n");
|
|
99
104
|
const errorObject = {
|
|
100
105
|
message: `Schema loading failed. ${e.message}`,
|
|
@@ -134,14 +139,14 @@ const generateGraphQLSchema = async () => {
|
|
|
134
139
|
pluginMap: { "schema-ast": schemaAstPlugin },
|
|
135
140
|
schema: {},
|
|
136
141
|
schemaAst: loadedSchema,
|
|
137
|
-
filename:
|
|
142
|
+
filename: redwoodProjectPaths.generated.schema,
|
|
138
143
|
documents: []
|
|
139
144
|
};
|
|
140
145
|
if (loadedSchema) {
|
|
141
146
|
try {
|
|
142
147
|
const schema = await (0, import_core.codegen)(options);
|
|
143
|
-
import_node_fs.default.writeFileSync(
|
|
144
|
-
return { schemaPath:
|
|
148
|
+
import_node_fs.default.writeFileSync(redwoodProjectPaths.generated.schema, schema);
|
|
149
|
+
return { schemaPath: redwoodProjectPaths.generated.schema, errors };
|
|
145
150
|
} catch (e) {
|
|
146
151
|
errors.push({
|
|
147
152
|
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,CAgF1B,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 =
|
|
28
|
+
const plugin = (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
|
|
33
|
+
const { prepend, content } = (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 = async (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().
|
|
47
|
+
const splitRootResolver = visitor.getRootResolver().split("\n");
|
|
48
48
|
const visitorResultEnd = splitContent.findIndex(
|
|
49
49
|
(line, index) => line === splitRootResolver[0] && splitContent[index + 1] === splitRootResolver[1]
|
|
50
50
|
);
|
|
@@ -1,10 +1,9 @@
|
|
|
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';
|
|
4
3
|
import type { FieldDefinitionNode, GraphQLSchema, ObjectTypeDefinitionNode } from 'graphql';
|
|
5
4
|
export declare class RwTypeScriptResolversVisitor extends TypeScriptResolversVisitor {
|
|
6
5
|
constructor(pluginConfig: TypeScriptResolversPluginConfig, schema: GraphQLSchema);
|
|
7
|
-
FieldDefinition(node: FieldDefinitionNode, key: string | number, parent: any):
|
|
8
|
-
ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string
|
|
6
|
+
FieldDefinition(node: FieldDefinitionNode, key: string | number, parent: any): (parentName: string) => string | null;
|
|
7
|
+
ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string;
|
|
9
8
|
}
|
|
10
9
|
//# 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":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAKlF,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;IAKvB,eAAe,CACb,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,MAAM,EAAE,GAAG,GACV,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI;IAuBxC,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM;CAgG7D"}
|
|
@@ -25,26 +25,17 @@ 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
|
-
|
|
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;
|
|
33
|
+
return (parentName) => {
|
|
34
|
+
const fieldDef = superFieldDefinition(parentName);
|
|
35
|
+
if (!hasArguments && fieldDef?.includes(": Resolver<")) {
|
|
36
|
+
return fieldDef.replace(": Resolver<", ": OptArgsResolverFn<");
|
|
47
37
|
}
|
|
38
|
+
return fieldDef;
|
|
48
39
|
};
|
|
49
40
|
}
|
|
50
41
|
// Original implementation is here:
|
|
@@ -54,35 +45,36 @@ class RwTypeScriptResolversVisitor extends import_typescript_resolvers.TypeScrip
|
|
|
54
45
|
const name = this.convertName(node, {
|
|
55
46
|
suffix: this.config.resolverTypeSuffix
|
|
56
47
|
});
|
|
57
|
-
const typeName = node.name
|
|
48
|
+
const typeName = node.name;
|
|
58
49
|
const parentType = this.getParentTypeToUse(typeName);
|
|
59
|
-
const fieldsContent = (node.fields || []).map((f) =>
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
50
|
+
const fieldsContent = (node.fields || []).map((f) => f(node.name));
|
|
51
|
+
const isRootType = [
|
|
52
|
+
this.schema.getQueryType()?.name,
|
|
53
|
+
this.schema.getMutationType()?.name,
|
|
54
|
+
this.schema.getSubscriptionType()?.name
|
|
55
|
+
].includes(typeName);
|
|
56
|
+
if (!isRootType) {
|
|
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
|
+
}
|
|
66
65
|
const blockRelationsResolver = new import_visitor_plugin_common.DeclarationBlock(
|
|
67
66
|
this._declarationBlockConfig
|
|
68
67
|
).export().asKind("type").withName(
|
|
69
68
|
name.replace("Resolvers", "RelationResolvers"),
|
|
70
69
|
`<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`
|
|
71
70
|
).withBlock(
|
|
72
|
-
fieldsContent.
|
|
73
|
-
(content) => (
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
content.replace(
|
|
77
|
-
/\??: (?:OptArgs)?Resolver(?:Fn)?/,
|
|
78
|
-
"?: RequiredResolverFn"
|
|
79
|
-
)
|
|
71
|
+
fieldsContent.map(
|
|
72
|
+
(content) => content.replace(
|
|
73
|
+
/: (?:OptArgs)?Resolver(?:Fn)?/,
|
|
74
|
+
"?: RequiredResolverFn"
|
|
80
75
|
)
|
|
81
76
|
).join("\n")
|
|
82
77
|
);
|
|
83
|
-
if (originalBlock === null) {
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
78
|
return originalBlock + "\n" + blockRelationsResolver.string;
|
|
87
79
|
}
|
|
88
80
|
}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ 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';
|
|
5
6
|
export * from './files.js';
|
|
6
7
|
export { generate } from './generate/generate.js';
|
|
7
8
|
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;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAEtD,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,6 +20,7 @@ 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,
|
|
23
24
|
generate: () => import_generate.generate,
|
|
24
25
|
listQueryTypeFieldsInProject: () => import_gql.listQueryTypeFieldsInProject
|
|
25
26
|
});
|
|
@@ -28,6 +29,7 @@ __reExport(src_exports, require("@cedarjs/project-config"), module.exports);
|
|
|
28
29
|
__reExport(src_exports, require("./ts2js.js"), module.exports);
|
|
29
30
|
__reExport(src_exports, require("./dev.js"), module.exports);
|
|
30
31
|
__reExport(src_exports, require("./routes.js"), module.exports);
|
|
32
|
+
var import_project = require("./project.js");
|
|
31
33
|
__reExport(src_exports, require("./files.js"), module.exports);
|
|
32
34
|
var import_generate = require("./generate/generate.js");
|
|
33
35
|
var import_api = require("./build/api.js");
|
|
@@ -37,6 +39,7 @@ var import_gql = require("./gql.js");
|
|
|
37
39
|
// Annotate the CommonJS export names for ESM import in node:
|
|
38
40
|
0 && (module.exports = {
|
|
39
41
|
buildApi,
|
|
42
|
+
dbReexportsPrismaClient,
|
|
40
43
|
generate,
|
|
41
44
|
listQueryTypeFieldsInProject,
|
|
42
45
|
...require("@cedarjs/project-config"),
|
package/dist/cjs/project.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ 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;
|
|
8
9
|
//# 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;AAED,eAAO,MAAM,uBAAuB,eAUnC,CAAA"}
|
package/dist/cjs/project.js
CHANGED
|
@@ -28,6 +28,7 @@ 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,
|
|
31
32
|
getTsConfigs: () => getTsConfigs,
|
|
32
33
|
isRealtimeSetup: () => isRealtimeSetup,
|
|
33
34
|
isServerFileSetup: () => isServerFileSetup,
|
|
@@ -73,8 +74,17 @@ const isRealtimeSetup = () => {
|
|
|
73
74
|
);
|
|
74
75
|
return import_node_fs.default.existsSync(realtimePath);
|
|
75
76
|
};
|
|
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
|
+
};
|
|
76
85
|
// Annotate the CommonJS export names for ESM import in node:
|
|
77
86
|
0 && (module.exports = {
|
|
87
|
+
dbReexportsPrismaClient,
|
|
78
88
|
getTsConfigs,
|
|
79
89
|
isRealtimeSetup,
|
|
80
90
|
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,EAoC5C,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)().router.routes;
|
|
43
|
+
const allRoutes = (0, import_structure.getProject)((0, import_project_config.getPaths)().base).router.routes;
|
|
44
44
|
const uniqueNames = new Set(
|
|
45
45
|
allRoutes.filter((route) => route.name !== void 0).map((route) => route.name)
|
|
46
46
|
);
|
|
@@ -78,7 +78,8 @@ function warningForDuplicateRoutes() {
|
|
|
78
78
|
return message.trimEnd();
|
|
79
79
|
}
|
|
80
80
|
const getProjectRoutes = () => {
|
|
81
|
-
const
|
|
81
|
+
const rwProject = (0, import_structure.getProject)((0, import_project_config.getPaths)().base);
|
|
82
|
+
const routes = rwProject.getRouter().routes;
|
|
82
83
|
return routes.map((route) => {
|
|
83
84
|
const { matchRegexString, routeParams } = route.isNotFound ? { matchRegexString: null, routeParams: null } : (0, import_util.getRouteRegexAndParams)(route.path);
|
|
84
85
|
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":"AAeA,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,CAmFvE,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,aAAa,CA0DvE,CAAA;AAiCD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;SACD,MAAM;GAQ5D;AAkHD,eAAO,MAAM,iBAAiB,4RAe7B,CAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
|
-
import path from "
|
|
3
|
-
import { pathToFileURL } from "node:url";
|
|
2
|
+
import path from "path";
|
|
4
3
|
import * as addPlugin from "@graphql-codegen/add";
|
|
5
4
|
import { loadCodegenConfig } from "@graphql-codegen/cli";
|
|
6
5
|
import { codegen } from "@graphql-codegen/core";
|
|
@@ -16,7 +15,7 @@ import {
|
|
|
16
15
|
getConfig,
|
|
17
16
|
resolveGeneratedPrismaClient
|
|
18
17
|
} from "@cedarjs/project-config";
|
|
19
|
-
import { getTsConfigs } from "../project.js";
|
|
18
|
+
import { getTsConfigs, dbReexportsPrismaClient } from "../project.js";
|
|
20
19
|
import * as rwTypescriptResolvers from "./plugins/rw-typescript-resolvers/index.js";
|
|
21
20
|
var CodegenSide = /* @__PURE__ */ ((CodegenSide2) => {
|
|
22
21
|
CodegenSide2[CodegenSide2["API"] = 0] = "API";
|
|
@@ -50,7 +49,7 @@ const generateTypeDefGraphQLApi = async () => {
|
|
|
50
49
|
const prismaImports = Object.keys(prismaModels).map((key) => {
|
|
51
50
|
return `${key} as Prisma${key}`;
|
|
52
51
|
});
|
|
53
|
-
const prismaImportSource = "src/lib/db";
|
|
52
|
+
const prismaImportSource = dbReexportsPrismaClient() ? "src/lib/db" : "@prisma/client";
|
|
54
53
|
const extraPlugins = [
|
|
55
54
|
{
|
|
56
55
|
name: "add",
|
|
@@ -113,7 +112,7 @@ const generateTypeDefGraphQLWeb = async () => {
|
|
|
113
112
|
{
|
|
114
113
|
name: "add",
|
|
115
114
|
options: {
|
|
116
|
-
content: `import { Prisma } from "$api/src/lib/db"`,
|
|
115
|
+
content: `import { Prisma } from "${dbReexportsPrismaClient() ? "$api/src/lib/db" : "@prisma/client"}"`,
|
|
117
116
|
placement: "prepend"
|
|
118
117
|
},
|
|
119
118
|
codegenPlugin: addPlugin
|
|
@@ -150,9 +149,8 @@ async function runCodegenGraphQL(documents, extraPlugins, filename, side) {
|
|
|
150
149
|
const userCodegenConfig = await loadCodegenConfig({
|
|
151
150
|
configFilePath: getPaths().base
|
|
152
151
|
});
|
|
153
|
-
const pluginConfig = await getPluginConfig(side);
|
|
154
152
|
const mergedConfig = {
|
|
155
|
-
...
|
|
153
|
+
...await getPluginConfig(side),
|
|
156
154
|
...userCodegenConfig?.config?.config
|
|
157
155
|
};
|
|
158
156
|
const options = getCodegenOptions(documents, mergedConfig, extraPlugins);
|
|
@@ -170,58 +168,26 @@ function getLoadDocumentsOptions(filename) {
|
|
|
170
168
|
};
|
|
171
169
|
return loadTypedefsConfig;
|
|
172
170
|
}
|
|
173
|
-
async function
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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;
|
|
203
|
-
}
|
|
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 };
|
|
212
|
-
}
|
|
213
|
-
} catch {
|
|
171
|
+
async function getPrismaClient(hasGenerated = false) {
|
|
172
|
+
let localPrisma;
|
|
173
|
+
if (hasGenerated) {
|
|
174
|
+
const cacheBuster = `?t=${Date.now()}`;
|
|
175
|
+
const prismaClientPath = resolveGeneratedPrismaClient({ mustExist: true });
|
|
176
|
+
const { default: freshPrisma } = await import(`file://${prismaClientPath}${cacheBuster}`);
|
|
177
|
+
localPrisma = freshPrisma;
|
|
178
|
+
} else {
|
|
179
|
+
const { default: packagePrisma } = await import("@prisma/client");
|
|
180
|
+
localPrisma = packagePrisma;
|
|
214
181
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
return
|
|
182
|
+
if (!localPrisma.ModelName) {
|
|
183
|
+
if (hasGenerated) {
|
|
184
|
+
return { ModelName: {} };
|
|
185
|
+
} else {
|
|
186
|
+
execa.sync("yarn", ["cedar", "prisma", "generate"]);
|
|
187
|
+
return getPrismaClient(true);
|
|
221
188
|
}
|
|
222
|
-
} catch {
|
|
223
189
|
}
|
|
224
|
-
return
|
|
190
|
+
return localPrisma;
|
|
225
191
|
}
|
|
226
192
|
async function getPrismaModels() {
|
|
227
193
|
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":"AA4BA,eAAO,MAAM,qBAAqB;;;iBA6DP,MAAM;eAAS,OAAO;;EA8EhD,CAAA"}
|
|
@@ -3,6 +3,7 @@ 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";
|
|
6
7
|
import ansis from "ansis";
|
|
7
8
|
import { print } from "graphql";
|
|
8
9
|
import { terminalLink } from "termi-link";
|
|
@@ -11,11 +12,12 @@ import {
|
|
|
11
12
|
getPaths,
|
|
12
13
|
getConfig,
|
|
13
14
|
resolveFile,
|
|
14
|
-
|
|
15
|
+
getSchemaPath
|
|
15
16
|
} from "@cedarjs/project-config";
|
|
17
|
+
const { getSchemaWithPath } = prismaInternals;
|
|
16
18
|
const generateGraphQLSchema = async () => {
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
+
const redwoodProjectPaths = getPaths();
|
|
20
|
+
const redwoodProjectConfig = getConfig();
|
|
19
21
|
const schemaPointerMap = {
|
|
20
22
|
[print(rootSchema.schema)]: {},
|
|
21
23
|
"graphql/**/*.sdl.{js,ts}": {},
|
|
@@ -27,7 +29,7 @@ const generateGraphQLSchema = async () => {
|
|
|
27
29
|
"!subscriptions/**/*.spec.{js,ts}": {}
|
|
28
30
|
};
|
|
29
31
|
for (const [name, schema] of Object.entries(rootSchema.scalarSchemas)) {
|
|
30
|
-
if (
|
|
32
|
+
if (redwoodProjectConfig.graphql.includeScalars[name]) {
|
|
31
33
|
schemaPointerMap[print(schema)] = {};
|
|
32
34
|
}
|
|
33
35
|
}
|
|
@@ -46,10 +48,10 @@ const generateGraphQLSchema = async () => {
|
|
|
46
48
|
sort: true,
|
|
47
49
|
convertExtensions: true,
|
|
48
50
|
includeSources: true,
|
|
49
|
-
cwd:
|
|
51
|
+
cwd: redwoodProjectPaths.api.src,
|
|
50
52
|
schema: Object.keys(schemaPointerMap),
|
|
51
53
|
generates: {
|
|
52
|
-
[
|
|
54
|
+
[redwoodProjectPaths.generated.schema]: {
|
|
53
55
|
plugins: ["schema-ast"]
|
|
54
56
|
}
|
|
55
57
|
},
|
|
@@ -66,7 +68,10 @@ const generateGraphQLSchema = async () => {
|
|
|
66
68
|
if (e instanceof Error) {
|
|
67
69
|
const match = e.message.match(/Unknown type: "(\w+)"/);
|
|
68
70
|
const name = match?.[1];
|
|
69
|
-
const
|
|
71
|
+
const schemaPath = await getSchemaPath(
|
|
72
|
+
redwoodProjectPaths.api.prismaConfig
|
|
73
|
+
);
|
|
74
|
+
const result = await getSchemaWithPath(schemaPath);
|
|
70
75
|
const schemaPrisma = result.schemas.map(([, content]) => content).join("\n");
|
|
71
76
|
const errorObject = {
|
|
72
77
|
message: `Schema loading failed. ${e.message}`,
|
|
@@ -106,14 +111,14 @@ const generateGraphQLSchema = async () => {
|
|
|
106
111
|
pluginMap: { "schema-ast": schemaAstPlugin },
|
|
107
112
|
schema: {},
|
|
108
113
|
schemaAst: loadedSchema,
|
|
109
|
-
filename:
|
|
114
|
+
filename: redwoodProjectPaths.generated.schema,
|
|
110
115
|
documents: []
|
|
111
116
|
};
|
|
112
117
|
if (loadedSchema) {
|
|
113
118
|
try {
|
|
114
119
|
const schema = await codegen(options);
|
|
115
|
-
fs.writeFileSync(
|
|
116
|
-
return { schemaPath:
|
|
120
|
+
fs.writeFileSync(redwoodProjectPaths.generated.schema, schema);
|
|
121
|
+
return { schemaPath: redwoodProjectPaths.generated.schema, errors };
|
|
117
122
|
} catch (e) {
|
|
118
123
|
errors.push({
|
|
119
124
|
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,CAgF1B,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 =
|
|
7
|
+
const plugin = (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
|
|
12
|
+
const { prepend, content } = 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 = async (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().
|
|
26
|
+
const splitRootResolver = visitor.getRootResolver().split("\n");
|
|
27
27
|
const visitorResultEnd = splitContent.findIndex(
|
|
28
28
|
(line, index) => line === splitRootResolver[0] && splitContent[index + 1] === splitRootResolver[1]
|
|
29
29
|
);
|
|
@@ -1,10 +1,9 @@
|
|
|
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';
|
|
4
3
|
import type { FieldDefinitionNode, GraphQLSchema, ObjectTypeDefinitionNode } from 'graphql';
|
|
5
4
|
export declare class RwTypeScriptResolversVisitor extends TypeScriptResolversVisitor {
|
|
6
5
|
constructor(pluginConfig: TypeScriptResolversPluginConfig, schema: GraphQLSchema);
|
|
7
|
-
FieldDefinition(node: FieldDefinitionNode, key: string | number, parent: any):
|
|
8
|
-
ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string
|
|
6
|
+
FieldDefinition(node: FieldDefinitionNode, key: string | number, parent: any): (parentName: string) => string | null;
|
|
7
|
+
ObjectTypeDefinition(node: ObjectTypeDefinitionNode): string;
|
|
9
8
|
}
|
|
10
9
|
//# 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":"AAAA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAA;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAKlF,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;IAKvB,eAAe,CACb,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,MAAM,GAAG,MAAM,EACpB,MAAM,EAAE,GAAG,GACV,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI;IAuBxC,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,MAAM;CAgG7D"}
|
|
@@ -1,27 +1,21 @@
|
|
|
1
1
|
import { TypeScriptResolversVisitor } from "@graphql-codegen/typescript-resolvers";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
indent,
|
|
4
|
+
DeclarationBlock
|
|
5
|
+
} from "@graphql-codegen/visitor-plugin-common";
|
|
3
6
|
class RwTypeScriptResolversVisitor extends TypeScriptResolversVisitor {
|
|
4
7
|
constructor(pluginConfig, schema) {
|
|
5
|
-
super(pluginConfig, schema
|
|
8
|
+
super(pluginConfig, schema);
|
|
6
9
|
}
|
|
7
10
|
FieldDefinition(node, key, parent) {
|
|
8
11
|
const hasArguments = node.arguments && node.arguments.length > 0;
|
|
9
12
|
const superFieldDefinition = super.FieldDefinition(node, key, parent);
|
|
10
|
-
return {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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;
|
|
13
|
+
return (parentName) => {
|
|
14
|
+
const fieldDef = superFieldDefinition(parentName);
|
|
15
|
+
if (!hasArguments && fieldDef?.includes(": Resolver<")) {
|
|
16
|
+
return fieldDef.replace(": Resolver<", ": OptArgsResolverFn<");
|
|
24
17
|
}
|
|
18
|
+
return fieldDef;
|
|
25
19
|
};
|
|
26
20
|
}
|
|
27
21
|
// Original implementation is here:
|
|
@@ -31,35 +25,36 @@ class RwTypeScriptResolversVisitor extends TypeScriptResolversVisitor {
|
|
|
31
25
|
const name = this.convertName(node, {
|
|
32
26
|
suffix: this.config.resolverTypeSuffix
|
|
33
27
|
});
|
|
34
|
-
const typeName = node.name
|
|
28
|
+
const typeName = node.name;
|
|
35
29
|
const parentType = this.getParentTypeToUse(typeName);
|
|
36
|
-
const fieldsContent = (node.fields || []).map((f) =>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
30
|
+
const fieldsContent = (node.fields || []).map((f) => f(node.name));
|
|
31
|
+
const isRootType = [
|
|
32
|
+
this.schema.getQueryType()?.name,
|
|
33
|
+
this.schema.getMutationType()?.name,
|
|
34
|
+
this.schema.getSubscriptionType()?.name
|
|
35
|
+
].includes(typeName);
|
|
36
|
+
if (!isRootType) {
|
|
37
|
+
fieldsContent.push(
|
|
38
|
+
indent(
|
|
39
|
+
`${this.config.internalResolversPrefix}isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>${this.getPunctuation(
|
|
40
|
+
"type"
|
|
41
|
+
)}`
|
|
42
|
+
)
|
|
43
|
+
);
|
|
44
|
+
}
|
|
43
45
|
const blockRelationsResolver = new DeclarationBlock(
|
|
44
46
|
this._declarationBlockConfig
|
|
45
47
|
).export().asKind("type").withName(
|
|
46
48
|
name.replace("Resolvers", "RelationResolvers"),
|
|
47
49
|
`<ContextType = ${this.config.contextType.type}, ${this.transformParentGenericType(parentType)}>`
|
|
48
50
|
).withBlock(
|
|
49
|
-
fieldsContent.
|
|
50
|
-
(content) => (
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
content.replace(
|
|
54
|
-
/\??: (?:OptArgs)?Resolver(?:Fn)?/,
|
|
55
|
-
"?: RequiredResolverFn"
|
|
56
|
-
)
|
|
51
|
+
fieldsContent.map(
|
|
52
|
+
(content) => content.replace(
|
|
53
|
+
/: (?:OptArgs)?Resolver(?:Fn)?/,
|
|
54
|
+
"?: RequiredResolverFn"
|
|
57
55
|
)
|
|
58
56
|
).join("\n")
|
|
59
57
|
);
|
|
60
|
-
if (originalBlock === null) {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
58
|
return originalBlock + "\n" + blockRelationsResolver.string;
|
|
64
59
|
}
|
|
65
60
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ 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';
|
|
5
6
|
export * from './files.js';
|
|
6
7
|
export { generate } from './generate/generate.js';
|
|
7
8
|
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;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAEtD,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,6 +2,7 @@ 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";
|
|
5
6
|
export * from "./files.js";
|
|
6
7
|
import { generate } from "./generate/generate.js";
|
|
7
8
|
import { buildApi } from "./build/api.js";
|
|
@@ -10,6 +11,7 @@ export * from "@cedarjs/babel-config";
|
|
|
10
11
|
import { listQueryTypeFieldsInProject } from "./gql.js";
|
|
11
12
|
export {
|
|
12
13
|
buildApi,
|
|
14
|
+
dbReexportsPrismaClient,
|
|
13
15
|
generate,
|
|
14
16
|
listQueryTypeFieldsInProject
|
|
15
17
|
};
|
package/dist/project.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ 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;
|
|
8
9
|
//# 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;AAED,eAAO,MAAM,uBAAuB,eAUnC,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 } from "@cedarjs/project-config";
|
|
4
|
+
import { getPaths, resolveFile } 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,7 +37,16 @@ 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
|
+
};
|
|
40
48
|
export {
|
|
49
|
+
dbReexportsPrismaClient,
|
|
41
50
|
getTsConfigs,
|
|
42
51
|
isRealtimeSetup,
|
|
43
52
|
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,EAoC5C,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().router.routes;
|
|
8
|
+
const allRoutes = getProject(getPaths().base).router.routes;
|
|
9
9
|
const uniqueNames = new Set(
|
|
10
10
|
allRoutes.filter((route) => route.name !== void 0).map((route) => route.name)
|
|
11
11
|
);
|
|
@@ -43,7 +43,8 @@ function warningForDuplicateRoutes() {
|
|
|
43
43
|
return message.trimEnd();
|
|
44
44
|
}
|
|
45
45
|
const getProjectRoutes = () => {
|
|
46
|
-
const
|
|
46
|
+
const rwProject = getProject(getPaths().base);
|
|
47
|
+
const routes = rwProject.getRouter().routes;
|
|
47
48
|
return routes.map((route) => {
|
|
48
49
|
const { matchRegexString, routeParams } = route.isNotFound ? { matchRegexString: null, routeParams: null } : getRouteRegexAndParams(route.path);
|
|
49
50
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cedarjs/internal",
|
|
3
|
-
"version": "2.8.1-
|
|
3
|
+
"version": "2.8.1-rc.3",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cedarjs/cedar.git",
|
|
@@ -145,29 +145,30 @@
|
|
|
145
145
|
},
|
|
146
146
|
"dependencies": {
|
|
147
147
|
"@babel/core": "^7.26.10",
|
|
148
|
-
"@babel/parser": "7.29.
|
|
148
|
+
"@babel/parser": "7.29.0",
|
|
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",
|
|
151
152
|
"@babel/traverse": "7.29.0",
|
|
152
|
-
"@cedarjs/babel-config": "2.8.1-
|
|
153
|
-
"@cedarjs/graphql-server": "2.8.1-
|
|
154
|
-
"@cedarjs/project-config": "2.8.1-
|
|
155
|
-
"@cedarjs/router": "2.8.1-
|
|
156
|
-
"@
|
|
157
|
-
"@graphql-codegen/
|
|
158
|
-
"@graphql-codegen/
|
|
159
|
-
"@graphql-codegen/
|
|
160
|
-
"@graphql-codegen/
|
|
161
|
-
"@graphql-codegen/
|
|
162
|
-
"@graphql-codegen/
|
|
163
|
-
"@graphql-codegen/
|
|
164
|
-
"@graphql-codegen/typescript": "
|
|
165
|
-
"@graphql-codegen/typescript-
|
|
166
|
-
"@graphql-codegen/typescript-
|
|
167
|
-
"@graphql-codegen/typescript-resolvers": "5.1.7",
|
|
153
|
+
"@cedarjs/babel-config": "2.8.1-rc.3",
|
|
154
|
+
"@cedarjs/graphql-server": "2.8.1-rc.3",
|
|
155
|
+
"@cedarjs/project-config": "2.8.1-rc.3",
|
|
156
|
+
"@cedarjs/router": "2.8.1-rc.3",
|
|
157
|
+
"@graphql-codegen/add": "4.0.1",
|
|
158
|
+
"@graphql-codegen/cli": "3.3.1",
|
|
159
|
+
"@graphql-codegen/client-preset": "4.8.3",
|
|
160
|
+
"@graphql-codegen/core": "3.1.0",
|
|
161
|
+
"@graphql-codegen/fragment-matcher": "5.1.0",
|
|
162
|
+
"@graphql-codegen/schema-ast": "3.0.1",
|
|
163
|
+
"@graphql-codegen/typed-document-node": "5.1.2",
|
|
164
|
+
"@graphql-codegen/typescript": "3.0.4",
|
|
165
|
+
"@graphql-codegen/typescript-operations": "3.0.4",
|
|
166
|
+
"@graphql-codegen/typescript-react-apollo": "3.3.7",
|
|
167
|
+
"@graphql-codegen/typescript-resolvers": "3.2.1",
|
|
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",
|
|
171
172
|
"deepmerge": "4.3.1",
|
|
172
173
|
"esbuild": "0.21.5",
|
|
173
174
|
"fast-glob": "3.3.3",
|
|
@@ -177,14 +178,14 @@
|
|
|
177
178
|
"rimraf": "6.1.3",
|
|
178
179
|
"source-map": "0.7.6",
|
|
179
180
|
"string-env-interpolation": "1.0.1",
|
|
180
|
-
"systeminformation": "5.31.
|
|
181
|
+
"systeminformation": "5.31.2",
|
|
181
182
|
"termi-link": "1.1.0",
|
|
182
183
|
"ts-node": "10.9.2",
|
|
183
184
|
"typescript": "5.9.3"
|
|
184
185
|
},
|
|
185
186
|
"devDependencies": {
|
|
186
187
|
"@arethetypeswrong/cli": "0.18.2",
|
|
187
|
-
"@cedarjs/framework-tools": "2.8.1-
|
|
188
|
+
"@cedarjs/framework-tools": "2.8.1-rc.3",
|
|
188
189
|
"concurrently": "9.2.1",
|
|
189
190
|
"graphql-tag": "2.12.6",
|
|
190
191
|
"publint": "0.3.18",
|
|
@@ -194,5 +195,5 @@
|
|
|
194
195
|
"publishConfig": {
|
|
195
196
|
"access": "public"
|
|
196
197
|
},
|
|
197
|
-
"gitHead": "
|
|
198
|
+
"gitHead": "f778a5b70b97c0b129246e918083f42c63a6dc0a"
|
|
198
199
|
}
|