@cedarjs/internal 0.6.1-next.0 → 0.7.0
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/ast.d.ts.map +1 -1
- package/dist/ast.js +28 -64
- package/dist/build/api.js +22 -56
- package/dist/cjs/ast.d.ts +26 -0
- package/dist/cjs/ast.d.ts.map +1 -0
- package/dist/cjs/ast.js +201 -0
- package/dist/cjs/build/api.d.ts +6 -0
- package/dist/cjs/build/api.d.ts.map +1 -0
- package/dist/cjs/build/api.js +109 -0
- package/dist/cjs/cliLogger.d.ts +11 -0
- package/dist/cjs/cliLogger.d.ts.map +1 -0
- package/dist/cjs/cliLogger.js +36 -0
- package/dist/cjs/dev.d.ts +2 -0
- package/dist/cjs/dev.d.ts.map +1 -0
- package/dist/cjs/dev.js +41 -0
- package/dist/cjs/files.d.ts +56 -0
- package/dist/cjs/files.d.ts.map +1 -0
- package/dist/cjs/files.js +230 -0
- package/dist/cjs/generate/clientPreset.d.ts +17 -0
- package/dist/cjs/generate/clientPreset.d.ts.map +1 -0
- package/dist/cjs/generate/clientPreset.js +85 -0
- package/dist/cjs/generate/generate.d.ts +10 -0
- package/dist/cjs/generate/generate.d.ts.map +1 -0
- package/dist/cjs/generate/generate.js +91 -0
- package/dist/cjs/generate/graphqlCodeGen.d.ts +16 -0
- package/dist/cjs/generate/graphqlCodeGen.d.ts.map +1 -0
- package/dist/cjs/generate/graphqlCodeGen.js +346 -0
- package/dist/cjs/generate/graphqlSchema.d.ts +8 -0
- package/dist/cjs/generate/graphqlSchema.d.ts.map +1 -0
- package/dist/cjs/generate/graphqlSchema.js +154 -0
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/index.d.ts +7 -0
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/index.d.ts.map +1 -0
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/index.js +65 -0
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.d.ts +9 -0
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.d.ts.map +1 -0
- package/dist/cjs/generate/plugins/rw-typescript-resolvers/visitor.js +84 -0
- package/dist/cjs/generate/possibleTypes.d.ts +36 -0
- package/dist/cjs/generate/possibleTypes.d.ts.map +1 -0
- package/dist/cjs/generate/possibleTypes.js +106 -0
- package/dist/cjs/generate/templates/all-currentUser.d.ts.template +30 -0
- package/dist/cjs/generate/templates/api-globImports.d.ts.template +9 -0
- package/dist/cjs/generate/templates/api-globalContext.d.ts.template +7 -0
- package/dist/cjs/generate/templates/api-scenarios.d.ts.template +10 -0
- package/dist/cjs/generate/templates/api-test-globals.d.ts.template +5 -0
- package/dist/cjs/generate/templates/mirror-cell.d.ts.template +13 -0
- package/dist/cjs/generate/templates/mirror-directoryNamedModule.d.ts.template +5 -0
- package/dist/cjs/generate/templates/web-routerRoutes.d.ts.template +20 -0
- package/dist/cjs/generate/templates/web-routesPages.d.ts.template +13 -0
- package/dist/cjs/generate/templates/web-test-globals.d.ts.template +7 -0
- package/dist/cjs/generate/templates.d.ts +6 -0
- package/dist/cjs/generate/templates.d.ts.map +1 -0
- package/dist/cjs/generate/templates.js +68 -0
- package/dist/cjs/generate/trustedDocuments.d.ts +3 -0
- package/dist/cjs/generate/trustedDocuments.d.ts.map +1 -0
- package/dist/cjs/generate/trustedDocuments.js +95 -0
- package/dist/cjs/generate/typeDefinitions.d.ts +30 -0
- package/dist/cjs/generate/typeDefinitions.d.ts.map +1 -0
- package/dist/cjs/generate/typeDefinitions.js +369 -0
- package/dist/cjs/generate/types.d.ts +6 -0
- package/dist/cjs/generate/types.d.ts.map +1 -0
- package/dist/cjs/generate/types.js +16 -0
- package/dist/cjs/generate/watch.d.ts +3 -0
- package/dist/cjs/generate/watch.d.ts.map +1 -0
- package/dist/cjs/generate/watch.js +124 -0
- package/dist/cjs/gql.d.ts +14 -0
- package/dist/cjs/gql.d.ts.map +1 -0
- package/dist/cjs/gql.js +108 -0
- package/dist/cjs/index.d.ts +11 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +49 -0
- package/dist/cjs/jsx.d.ts +16 -0
- package/dist/cjs/jsx.d.ts.map +1 -0
- package/dist/cjs/jsx.js +101 -0
- package/dist/cjs/jsxAttributeValue.d.ts +2 -0
- package/dist/cjs/jsxAttributeValue.d.ts.map +1 -0
- package/dist/cjs/jsxAttributeValue.js +129 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/project.d.ts +8 -0
- package/dist/cjs/project.d.ts.map +1 -0
- package/dist/cjs/project.js +82 -0
- package/dist/cjs/routes.d.ts +42 -0
- package/dist/cjs/routes.d.ts.map +1 -0
- package/dist/cjs/routes.js +111 -0
- package/dist/cjs/ts2js.d.ts +40 -0
- package/dist/cjs/ts2js.d.ts.map +1 -0
- package/dist/cjs/ts2js.js +159 -0
- package/dist/cjs/validateSchema.d.ts +14 -0
- package/dist/cjs/validateSchema.d.ts.map +1 -0
- package/dist/cjs/validateSchema.js +194 -0
- package/dist/cliLogger.js +4 -28
- package/dist/dev.js +4 -38
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +46 -95
- package/dist/generate/clientPreset.js +17 -39
- package/dist/generate/generate.js +14 -39
- package/dist/generate/graphqlCodeGen.d.ts.map +1 -1
- package/dist/generate/graphqlCodeGen.js +49 -79
- package/dist/generate/graphqlSchema.d.ts.map +1 -1
- package/dist/generate/graphqlSchema.js +26 -59
- package/dist/generate/plugins/rw-typescript-resolvers/index.d.ts +4 -3
- package/dist/generate/plugins/rw-typescript-resolvers/index.d.ts.map +1 -1
- package/dist/generate/plugins/rw-typescript-resolvers/index.js +11 -35
- package/dist/generate/plugins/rw-typescript-resolvers/visitor.js +10 -31
- package/dist/generate/possibleTypes.js +19 -53
- package/dist/generate/templates.d.ts.map +1 -1
- package/dist/generate/templates.js +14 -42
- package/dist/generate/trustedDocuments.js +13 -48
- package/dist/generate/typeDefinitions.d.ts +2 -2
- package/dist/generate/typeDefinitions.d.ts.map +1 -1
- package/dist/generate/typeDefinitions.js +83 -123
- package/dist/generate/types.js +0 -16
- package/dist/generate/watch.js +55 -63
- package/dist/gql.js +16 -42
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -47
- package/dist/jsx.d.ts.map +1 -1
- package/dist/jsx.js +7 -40
- package/dist/jsxAttributeValue.js +2 -26
- package/dist/project.js +21 -58
- package/dist/routes.d.ts +1 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +12 -48
- package/dist/ts2js.d.ts +1 -1
- package/dist/ts2js.js +33 -73
- package/dist/validateSchema.js +19 -47
- package/package.json +91 -31
package/dist/files.js
CHANGED
|
@@ -1,81 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var files_exports = {};
|
|
30
|
-
__export(files_exports, {
|
|
31
|
-
findApiDistFunctions: () => findApiDistFunctions,
|
|
32
|
-
findApiFiles: () => findApiFiles,
|
|
33
|
-
findApiServerFunctions: () => findApiServerFunctions,
|
|
34
|
-
findCells: () => findCells,
|
|
35
|
-
findDirectoryNamedModules: () => findDirectoryNamedModules,
|
|
36
|
-
findGraphQLSchemas: () => findGraphQLSchemas,
|
|
37
|
-
findPages: () => findPages,
|
|
38
|
-
findRouteHooksSrc: () => findRouteHooksSrc,
|
|
39
|
-
findScripts: () => findScripts,
|
|
40
|
-
findWebFiles: () => findWebFiles,
|
|
41
|
-
isApiFunction: () => isApiFunction,
|
|
42
|
-
isCellFile: () => isCellFile,
|
|
43
|
-
isDirectoryNamedModuleFile: () => isDirectoryNamedModuleFile,
|
|
44
|
-
isFileInsideFolder: () => isFileInsideFolder,
|
|
45
|
-
isGraphQLSchemaFile: () => isGraphQLSchemaFile,
|
|
46
|
-
isPageFile: () => isPageFile
|
|
47
|
-
});
|
|
48
|
-
module.exports = __toCommonJS(files_exports);
|
|
49
|
-
var import_path = __toESM(require("path"));
|
|
50
|
-
var import_fast_glob = __toESM(require("fast-glob"));
|
|
51
|
-
var import_project_config = require("@cedarjs/project-config");
|
|
52
|
-
var import_ast = require("./ast");
|
|
53
|
-
const findCells = (cwd = (0, import_project_config.getPaths)().web.src) => {
|
|
54
|
-
const modules = import_fast_glob.default.sync("**/*Cell.{js,jsx,ts,tsx}", {
|
|
1
|
+
import path from "path";
|
|
2
|
+
import fg from "fast-glob";
|
|
3
|
+
import { getPaths } from "@cedarjs/project-config";
|
|
4
|
+
import { getNamedExports, hasDefaultExport, fileToAst } from "./ast.js";
|
|
5
|
+
const findCells = (cwd = getPaths().web.src) => {
|
|
6
|
+
const modules = fg.sync("**/*Cell.{js,jsx,ts,tsx}", {
|
|
55
7
|
cwd,
|
|
56
8
|
absolute: true,
|
|
57
9
|
ignore: ["node_modules"]
|
|
58
10
|
});
|
|
59
11
|
return modules.filter(isCellFile);
|
|
60
12
|
};
|
|
61
|
-
const findPages = (cwd =
|
|
62
|
-
const modules =
|
|
13
|
+
const findPages = (cwd = getPaths().web.pages) => {
|
|
14
|
+
const modules = fg.sync("**/*Page.{tsx,js,jsx}", {
|
|
63
15
|
cwd,
|
|
64
16
|
absolute: true,
|
|
65
17
|
ignore: ["node_modules"]
|
|
66
18
|
});
|
|
67
19
|
return modules.filter(isPageFile);
|
|
68
20
|
};
|
|
69
|
-
const findDirectoryNamedModules = (cwd =
|
|
70
|
-
const modules =
|
|
21
|
+
const findDirectoryNamedModules = (cwd = getPaths().base) => {
|
|
22
|
+
const modules = fg.sync("(api|web)/src/**/*.{ts,js,jsx,tsx}", {
|
|
71
23
|
cwd,
|
|
72
24
|
absolute: true,
|
|
73
25
|
ignore: ["node_modules"]
|
|
74
26
|
});
|
|
75
27
|
return modules.filter(isDirectoryNamedModuleFile).filter((p) => !isCellFile(p));
|
|
76
28
|
};
|
|
77
|
-
const findGraphQLSchemas = (cwd =
|
|
78
|
-
return
|
|
29
|
+
const findGraphQLSchemas = (cwd = getPaths().api.graphql) => {
|
|
30
|
+
return fg.sync("**/*.sdl.{ts,js}", { cwd, absolute: true }).filter(isGraphQLSchemaFile);
|
|
79
31
|
};
|
|
80
32
|
const ignoreApiFiles = [
|
|
81
33
|
"**/*.test.{js,ts}",
|
|
@@ -83,16 +35,16 @@ const ignoreApiFiles = [
|
|
|
83
35
|
"**/*.fixtures.{js,ts}",
|
|
84
36
|
"**/*.d.ts"
|
|
85
37
|
];
|
|
86
|
-
const findApiFiles = (cwd =
|
|
87
|
-
const files =
|
|
38
|
+
const findApiFiles = (cwd = getPaths().api.src) => {
|
|
39
|
+
const files = fg.sync("**/*.{js,ts,jsx,tsx}", {
|
|
88
40
|
cwd,
|
|
89
41
|
absolute: true,
|
|
90
42
|
ignore: ignoreApiFiles
|
|
91
43
|
});
|
|
92
44
|
return files;
|
|
93
45
|
};
|
|
94
|
-
const findWebFiles = (cwd =
|
|
95
|
-
const files =
|
|
46
|
+
const findWebFiles = (cwd = getPaths().web.src) => {
|
|
47
|
+
const files = fg.sync("**/*.{js,ts,jsx,tsx}", {
|
|
96
48
|
cwd,
|
|
97
49
|
absolute: true,
|
|
98
50
|
ignore: [
|
|
@@ -104,8 +56,8 @@ const findWebFiles = (cwd = (0, import_project_config.getPaths)().web.src) => {
|
|
|
104
56
|
});
|
|
105
57
|
return files;
|
|
106
58
|
};
|
|
107
|
-
const findApiServerFunctions = (cwd =
|
|
108
|
-
const files =
|
|
59
|
+
const findApiServerFunctions = (cwd = getPaths().api.functions) => {
|
|
60
|
+
const files = fg.sync("**/*.{js,ts}", {
|
|
109
61
|
cwd,
|
|
110
62
|
absolute: true,
|
|
111
63
|
deep: 2,
|
|
@@ -116,11 +68,11 @@ const findApiServerFunctions = (cwd = (0, import_project_config.getPaths)().api.
|
|
|
116
68
|
};
|
|
117
69
|
const findApiDistFunctions = (params) => {
|
|
118
70
|
const {
|
|
119
|
-
cwd =
|
|
71
|
+
cwd = getPaths().api.base,
|
|
120
72
|
options = {},
|
|
121
73
|
discoverFunctionsGlob = "dist/functions/**/*.{ts,js}"
|
|
122
74
|
} = params;
|
|
123
|
-
return
|
|
75
|
+
return fg.sync(discoverFunctionsGlob, {
|
|
124
76
|
cwd,
|
|
125
77
|
// We don't support deeply nested api functions, to maximise compatibility
|
|
126
78
|
// with deployment providers
|
|
@@ -129,68 +81,68 @@ const findApiDistFunctions = (params) => {
|
|
|
129
81
|
...options
|
|
130
82
|
});
|
|
131
83
|
};
|
|
132
|
-
const findRouteHooksSrc = (cwd =
|
|
133
|
-
return
|
|
84
|
+
const findRouteHooksSrc = (cwd = getPaths().web.src) => {
|
|
85
|
+
return fg.sync("**/*.routeHooks.{js,ts,tsx,jsx}", {
|
|
134
86
|
absolute: true,
|
|
135
87
|
cwd
|
|
136
88
|
});
|
|
137
89
|
};
|
|
138
90
|
const isCellFile = (p) => {
|
|
139
|
-
const { dir, name } =
|
|
140
|
-
if (!isFileInsideFolder(p,
|
|
91
|
+
const { dir, name } = path.parse(p);
|
|
92
|
+
if (!isFileInsideFolder(p, getPaths().web.src)) {
|
|
141
93
|
return false;
|
|
142
94
|
}
|
|
143
95
|
if (!dir.endsWith(name)) {
|
|
144
96
|
return false;
|
|
145
97
|
}
|
|
146
|
-
const ast =
|
|
147
|
-
if (
|
|
98
|
+
const ast = fileToAst(p);
|
|
99
|
+
if (hasDefaultExport(ast)) {
|
|
148
100
|
return false;
|
|
149
101
|
}
|
|
150
|
-
const
|
|
151
|
-
const exportedQUERY =
|
|
152
|
-
const exportedSuccess =
|
|
102
|
+
const exports = getNamedExports(ast);
|
|
103
|
+
const exportedQUERY = exports.findIndex((v) => v.name === "QUERY") !== -1;
|
|
104
|
+
const exportedSuccess = exports.findIndex((v) => v.name === "Success") !== -1;
|
|
153
105
|
if (!exportedQUERY && !exportedSuccess) {
|
|
154
106
|
return false;
|
|
155
107
|
}
|
|
156
108
|
return true;
|
|
157
109
|
};
|
|
158
|
-
const findScripts = (cwd =
|
|
159
|
-
return
|
|
110
|
+
const findScripts = (cwd = getPaths().scripts) => {
|
|
111
|
+
return fg.sync("./**/*.{js,jsx,ts,tsx}", {
|
|
160
112
|
cwd,
|
|
161
113
|
absolute: true,
|
|
162
114
|
ignore: ["node_modules"]
|
|
163
115
|
});
|
|
164
116
|
};
|
|
165
117
|
const isPageFile = (p) => {
|
|
166
|
-
const { name } =
|
|
118
|
+
const { name } = path.parse(p);
|
|
167
119
|
if (!name.endsWith("Page")) {
|
|
168
120
|
return false;
|
|
169
121
|
}
|
|
170
|
-
if (!isFileInsideFolder(p,
|
|
122
|
+
if (!isFileInsideFolder(p, getPaths().web.pages)) {
|
|
171
123
|
return false;
|
|
172
124
|
}
|
|
173
|
-
const ast =
|
|
174
|
-
if (!
|
|
125
|
+
const ast = fileToAst(p);
|
|
126
|
+
if (!hasDefaultExport(ast)) {
|
|
175
127
|
return false;
|
|
176
128
|
}
|
|
177
129
|
return true;
|
|
178
130
|
};
|
|
179
131
|
const isDirectoryNamedModuleFile = (p) => {
|
|
180
|
-
const { dir, name } =
|
|
132
|
+
const { dir, name } = path.parse(p);
|
|
181
133
|
return dir.endsWith(name);
|
|
182
134
|
};
|
|
183
135
|
const isGraphQLSchemaFile = (p) => {
|
|
184
136
|
if (!p.match(/\.sdl\.(ts|js)$/)?.[0]) {
|
|
185
137
|
return false;
|
|
186
138
|
}
|
|
187
|
-
const ast =
|
|
188
|
-
const
|
|
189
|
-
return
|
|
139
|
+
const ast = fileToAst(p);
|
|
140
|
+
const exports = getNamedExports(ast);
|
|
141
|
+
return exports.findIndex((v) => v.name === "schema") !== -1;
|
|
190
142
|
};
|
|
191
143
|
const isApiFunction = (p, functionsPath) => {
|
|
192
|
-
p =
|
|
193
|
-
const { dir, name } =
|
|
144
|
+
p = path.relative(functionsPath, p);
|
|
145
|
+
const { dir, name } = path.parse(p);
|
|
194
146
|
if (dir === name) {
|
|
195
147
|
return true;
|
|
196
148
|
} else if (dir === "") {
|
|
@@ -201,16 +153,15 @@ const isApiFunction = (p, functionsPath) => {
|
|
|
201
153
|
return false;
|
|
202
154
|
};
|
|
203
155
|
const isFileInsideFolder = (filePath, folderPath) => {
|
|
204
|
-
const { dir } =
|
|
205
|
-
const relativePathFromFolder =
|
|
206
|
-
if (!relativePathFromFolder || relativePathFromFolder.startsWith("..") ||
|
|
156
|
+
const { dir } = path.parse(filePath);
|
|
157
|
+
const relativePathFromFolder = path.relative(folderPath, dir);
|
|
158
|
+
if (!relativePathFromFolder || relativePathFromFolder.startsWith("..") || path.isAbsolute(relativePathFromFolder)) {
|
|
207
159
|
return false;
|
|
208
160
|
} else {
|
|
209
161
|
return true;
|
|
210
162
|
}
|
|
211
163
|
};
|
|
212
|
-
|
|
213
|
-
0 && (module.exports = {
|
|
164
|
+
export {
|
|
214
165
|
findApiDistFunctions,
|
|
215
166
|
findApiFiles,
|
|
216
167
|
findApiServerFunctions,
|
|
@@ -227,4 +178,4 @@ const isFileInsideFolder = (filePath, folderPath) => {
|
|
|
227
178
|
isFileInsideFolder,
|
|
228
179
|
isGraphQLSchemaFile,
|
|
229
180
|
isPageFile
|
|
230
|
-
}
|
|
181
|
+
};
|
|
@@ -1,33 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var clientPreset_exports = {};
|
|
20
|
-
__export(clientPreset_exports, {
|
|
21
|
-
generateClientPreset: () => generateClientPreset,
|
|
22
|
-
shouldGenerateTrustedDocuments: () => shouldGenerateTrustedDocuments
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(clientPreset_exports);
|
|
25
|
-
var import_cli = require("@graphql-codegen/cli");
|
|
26
|
-
var import_client_preset = require("@graphql-codegen/client-preset");
|
|
27
|
-
var import_project_config = require("@cedarjs/project-config");
|
|
28
|
-
var import_trustedDocuments = require("./trustedDocuments");
|
|
1
|
+
import { generate } from "@graphql-codegen/cli";
|
|
2
|
+
import { addTypenameSelectionDocumentTransform } from "@graphql-codegen/client-preset";
|
|
3
|
+
import { getConfig, getPaths } from "@cedarjs/project-config";
|
|
4
|
+
import {
|
|
5
|
+
trustedDocumentsStore,
|
|
6
|
+
replaceGqlTagWithTrustedDocumentGraphql
|
|
7
|
+
} from "./trustedDocuments.js";
|
|
29
8
|
const shouldGenerateTrustedDocuments = () => {
|
|
30
|
-
const config =
|
|
9
|
+
const config = getConfig();
|
|
31
10
|
return config.graphql.trustedDocuments;
|
|
32
11
|
};
|
|
33
12
|
const generateClientPreset = async () => {
|
|
@@ -37,19 +16,19 @@ const generateClientPreset = async () => {
|
|
|
37
16
|
if (!shouldGenerateTrustedDocuments()) {
|
|
38
17
|
return { clientPresetFiles, trustedDocumentsStoreFile: [], errors };
|
|
39
18
|
}
|
|
40
|
-
const documentsGlob = `${
|
|
19
|
+
const documentsGlob = `${getPaths().web.src}/**/!(*.d).{ts,tsx,js,jsx}`;
|
|
41
20
|
const config = {
|
|
42
|
-
schema:
|
|
21
|
+
schema: getPaths().generated.schema,
|
|
43
22
|
documents: documentsGlob,
|
|
44
23
|
silent: true,
|
|
45
24
|
// Plays nicely with cli task output
|
|
46
25
|
generates: {
|
|
47
|
-
[`${
|
|
26
|
+
[`${getPaths().web.src}/graphql/`]: {
|
|
48
27
|
preset: "client",
|
|
49
28
|
presetConfig: {
|
|
50
29
|
persistedDocuments: true
|
|
51
30
|
},
|
|
52
|
-
documentTransforms: [
|
|
31
|
+
documentTransforms: [addTypenameSelectionDocumentTransform],
|
|
53
32
|
config: {
|
|
54
33
|
// DO NOT USE documentMode: 'string',
|
|
55
34
|
}
|
|
@@ -57,10 +36,10 @@ const generateClientPreset = async () => {
|
|
|
57
36
|
}
|
|
58
37
|
};
|
|
59
38
|
try {
|
|
60
|
-
generatedFiles = await
|
|
39
|
+
generatedFiles = await generate(config, true);
|
|
61
40
|
clientPresetFiles = generatedFiles.map((f) => f.filename);
|
|
62
|
-
const trustedDocumentsStoreFile = await
|
|
63
|
-
|
|
41
|
+
const trustedDocumentsStoreFile = await trustedDocumentsStore(generatedFiles);
|
|
42
|
+
replaceGqlTagWithTrustedDocumentGraphql(generatedFiles);
|
|
64
43
|
return {
|
|
65
44
|
clientPresetFiles,
|
|
66
45
|
trustedDocumentsStoreFile,
|
|
@@ -78,8 +57,7 @@ const generateClientPreset = async () => {
|
|
|
78
57
|
};
|
|
79
58
|
}
|
|
80
59
|
};
|
|
81
|
-
|
|
82
|
-
0 && (module.exports = {
|
|
60
|
+
export {
|
|
83
61
|
generateClientPreset,
|
|
84
62
|
shouldGenerateTrustedDocuments
|
|
85
|
-
}
|
|
63
|
+
};
|
|
@@ -1,41 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
-
var generate_exports = {};
|
|
21
|
-
__export(generate_exports, {
|
|
22
|
-
generate: () => generate,
|
|
23
|
-
run: () => run
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(generate_exports);
|
|
26
|
-
var import_project_config = require("@cedarjs/project-config");
|
|
27
|
-
var import_clientPreset = require("./clientPreset");
|
|
28
|
-
var import_graphqlSchema = require("./graphqlSchema");
|
|
29
|
-
var import_possibleTypes = require("./possibleTypes");
|
|
30
|
-
var import_typeDefinitions = require("./typeDefinitions");
|
|
2
|
+
import { getConfig, getPaths } from "@cedarjs/project-config";
|
|
3
|
+
import { generateClientPreset } from "./clientPreset.js";
|
|
4
|
+
import { generateGraphQLSchema } from "./graphqlSchema.js";
|
|
5
|
+
import { generatePossibleTypes } from "./possibleTypes.js";
|
|
6
|
+
import { generateTypeDefs } from "./typeDefinitions.js";
|
|
31
7
|
const generate = async () => {
|
|
32
|
-
const config =
|
|
33
|
-
const { schemaPath, errors: generateGraphQLSchemaErrors } = await
|
|
34
|
-
const { typeDefFiles, errors: generateTypeDefsErrors } = await
|
|
8
|
+
const config = getConfig();
|
|
9
|
+
const { schemaPath, errors: generateGraphQLSchemaErrors } = await generateGraphQLSchema();
|
|
10
|
+
const { typeDefFiles, errors: generateTypeDefsErrors } = await generateTypeDefs();
|
|
35
11
|
const clientPresetFiles = [];
|
|
36
|
-
const { possibleTypesFiles, errors: generatePossibleTypesErrors } = await
|
|
12
|
+
const { possibleTypesFiles, errors: generatePossibleTypesErrors } = await generatePossibleTypes();
|
|
37
13
|
if (config.graphql.trustedDocuments) {
|
|
38
|
-
const preset = await
|
|
14
|
+
const preset = await generateClientPreset();
|
|
39
15
|
clientPresetFiles.push(...preset.clientPresetFiles);
|
|
40
16
|
}
|
|
41
17
|
let files = [];
|
|
@@ -61,7 +37,7 @@ const run = async () => {
|
|
|
61
37
|
console.log("Generating...");
|
|
62
38
|
console.log();
|
|
63
39
|
const { files, errors } = await generate();
|
|
64
|
-
const rwjsPaths =
|
|
40
|
+
const rwjsPaths = getPaths();
|
|
65
41
|
for (const f of files) {
|
|
66
42
|
console.log("-", f.replace(rwjsPaths.base + "/", ""));
|
|
67
43
|
}
|
|
@@ -81,11 +57,10 @@ const run = async () => {
|
|
|
81
57
|
console.log();
|
|
82
58
|
}
|
|
83
59
|
};
|
|
84
|
-
if (
|
|
60
|
+
if (process.env.NODE_ENV !== "test" && process.argv[1]?.endsWith("generate.js")) {
|
|
85
61
|
run();
|
|
86
62
|
}
|
|
87
|
-
|
|
88
|
-
0 && (module.exports = {
|
|
63
|
+
export {
|
|
89
64
|
generate,
|
|
90
65
|
run
|
|
91
|
-
}
|
|
66
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphqlCodeGen.d.ts","sourceRoot":"","sources":["../../src/generate/graphqlCodeGen.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAc9D,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,CAgFvE,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,aAAa,CAwDvE,CAAA;AAiCD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;SACD,MAAM;GAQ5D;
|
|
1
|
+
{"version":3,"file":"graphqlCodeGen.d.ts","sourceRoot":"","sources":["../../src/generate/graphqlCodeGen.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAc9D,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,CAgFvE,CAAA;AAED,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,aAAa,CAwDvE,CAAA;AAiCD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;SACD,MAAM;GAQ5D;AAqHD,eAAO,MAAM,iBAAiB,4RAe7B,CAAA"}
|
|
@@ -1,64 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var graphqlCodeGen_exports = {};
|
|
30
|
-
__export(graphqlCodeGen_exports, {
|
|
31
|
-
generateTypeDefGraphQLApi: () => generateTypeDefGraphQLApi,
|
|
32
|
-
generateTypeDefGraphQLWeb: () => generateTypeDefGraphQLWeb,
|
|
33
|
-
getLoadDocumentsOptions: () => getLoadDocumentsOptions,
|
|
34
|
-
getResolverFnType: () => getResolverFnType
|
|
35
|
-
});
|
|
36
|
-
module.exports = __toCommonJS(graphqlCodeGen_exports);
|
|
37
|
-
var import_fs = __toESM(require("fs"));
|
|
38
|
-
var import_path = __toESM(require("path"));
|
|
39
|
-
var addPlugin = __toESM(require("@graphql-codegen/add"));
|
|
40
|
-
var import_cli = require("@graphql-codegen/cli");
|
|
41
|
-
var import_core = require("@graphql-codegen/core");
|
|
42
|
-
var typescriptPlugin = __toESM(require("@graphql-codegen/typescript"));
|
|
43
|
-
var typescriptOperations = __toESM(require("@graphql-codegen/typescript-operations"));
|
|
44
|
-
var import_code_file_loader = require("@graphql-tools/code-file-loader");
|
|
45
|
-
var import_graphql_file_loader = require("@graphql-tools/graphql-file-loader");
|
|
46
|
-
var import_load = require("@graphql-tools/load");
|
|
47
|
-
var import_execa = __toESM(require("execa"));
|
|
48
|
-
var import_graphql = require("graphql");
|
|
49
|
-
var import_project_config = require("@cedarjs/project-config");
|
|
50
|
-
var import_project = require("../project");
|
|
51
|
-
var rwTypescriptResolvers = __toESM(require("./plugins/rw-typescript-resolvers"));
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import * as addPlugin from "@graphql-codegen/add";
|
|
4
|
+
import { loadCodegenConfig } from "@graphql-codegen/cli";
|
|
5
|
+
import { codegen } from "@graphql-codegen/core";
|
|
6
|
+
import * as typescriptPlugin from "@graphql-codegen/typescript";
|
|
7
|
+
import * as typescriptOperations from "@graphql-codegen/typescript-operations";
|
|
8
|
+
import { CodeFileLoader } from "@graphql-tools/code-file-loader";
|
|
9
|
+
import { GraphQLFileLoader } from "@graphql-tools/graphql-file-loader";
|
|
10
|
+
import { loadDocuments, loadSchemaSync } from "@graphql-tools/load";
|
|
11
|
+
import execa from "execa";
|
|
12
|
+
import { Kind } from "graphql";
|
|
13
|
+
import { getPaths, getConfig } from "@cedarjs/project-config";
|
|
14
|
+
import { getTsConfigs } from "../project.js";
|
|
15
|
+
import * as rwTypescriptResolvers from "./plugins/rw-typescript-resolvers/index.js";
|
|
52
16
|
var CodegenSide = /* @__PURE__ */ ((CodegenSide2) => {
|
|
53
17
|
CodegenSide2[CodegenSide2["API"] = 0] = "API";
|
|
54
18
|
CodegenSide2[CodegenSide2["WEB"] = 1] = "WEB";
|
|
55
19
|
return CodegenSide2;
|
|
56
20
|
})(CodegenSide || {});
|
|
57
21
|
const generateTypeDefGraphQLApi = async () => {
|
|
58
|
-
const config =
|
|
22
|
+
const config = getConfig();
|
|
59
23
|
const errors = [];
|
|
60
24
|
if (config.experimental.useSDLCodeGenForGraphQLTypes) {
|
|
61
|
-
const paths =
|
|
25
|
+
const paths = getPaths();
|
|
62
26
|
const sdlCodegen = await import("@sdl-codegen/node");
|
|
63
27
|
const dtsFiles = [];
|
|
64
28
|
try {
|
|
@@ -77,7 +41,7 @@ const generateTypeDefGraphQLApi = async () => {
|
|
|
77
41
|
errors
|
|
78
42
|
};
|
|
79
43
|
}
|
|
80
|
-
const filename =
|
|
44
|
+
const filename = path.join(getPaths().api.types, "graphql.d.ts");
|
|
81
45
|
const prismaModels = await getPrismaModels();
|
|
82
46
|
const prismaImports = Object.keys(prismaModels).map((key) => {
|
|
83
47
|
return `${key} as Prisma${key}`;
|
|
@@ -128,12 +92,12 @@ const generateTypeDefGraphQLApi = async () => {
|
|
|
128
92
|
}
|
|
129
93
|
};
|
|
130
94
|
const generateTypeDefGraphQLWeb = async () => {
|
|
131
|
-
const filename =
|
|
95
|
+
const filename = path.join(getPaths().web.types, "graphql.d.ts");
|
|
132
96
|
const options = getLoadDocumentsOptions(filename);
|
|
133
97
|
const documentsGlob = "./web/src/**/!(*.d).{ts,tsx,js,jsx}";
|
|
134
98
|
let documents;
|
|
135
99
|
try {
|
|
136
|
-
documents = await
|
|
100
|
+
documents = await loadDocuments([documentsGlob], options);
|
|
137
101
|
} catch {
|
|
138
102
|
return {
|
|
139
103
|
typeDefFiles: [],
|
|
@@ -178,40 +142,47 @@ const generateTypeDefGraphQLWeb = async () => {
|
|
|
178
142
|
}
|
|
179
143
|
};
|
|
180
144
|
async function runCodegenGraphQL(documents, extraPlugins, filename, side) {
|
|
181
|
-
const userCodegenConfig = await
|
|
182
|
-
configFilePath:
|
|
145
|
+
const userCodegenConfig = await loadCodegenConfig({
|
|
146
|
+
configFilePath: getPaths().base
|
|
183
147
|
});
|
|
184
148
|
const mergedConfig = {
|
|
185
149
|
...await getPluginConfig(side),
|
|
186
150
|
...userCodegenConfig?.config?.config
|
|
187
151
|
};
|
|
188
152
|
const options = getCodegenOptions(documents, mergedConfig, extraPlugins);
|
|
189
|
-
const output = await
|
|
190
|
-
|
|
191
|
-
|
|
153
|
+
const output = await codegen(options);
|
|
154
|
+
fs.mkdirSync(path.dirname(filename), { recursive: true });
|
|
155
|
+
fs.writeFileSync(filename, output);
|
|
192
156
|
return [filename];
|
|
193
157
|
}
|
|
194
158
|
function getLoadDocumentsOptions(filename) {
|
|
195
159
|
const loadTypedefsConfig = {
|
|
196
|
-
cwd:
|
|
197
|
-
ignore: [
|
|
198
|
-
loaders: [new
|
|
160
|
+
cwd: getPaths().base,
|
|
161
|
+
ignore: [path.join(process.cwd(), filename)],
|
|
162
|
+
loaders: [new CodeFileLoader()],
|
|
199
163
|
sort: true
|
|
200
164
|
};
|
|
201
165
|
return loadTypedefsConfig;
|
|
202
166
|
}
|
|
203
167
|
async function getPrismaClient(hasGenerated = false) {
|
|
204
|
-
|
|
168
|
+
let localPrisma;
|
|
169
|
+
if (hasGenerated) {
|
|
170
|
+
const cacheBuster = `?t=${Date.now()}`;
|
|
171
|
+
const prismaClientPath = path.resolve(
|
|
172
|
+
process.cwd(),
|
|
173
|
+
"node_modules/.prisma/client/index.js"
|
|
174
|
+
);
|
|
175
|
+
const { default: freshPrisma } = await import(`file://${prismaClientPath}${cacheBuster}`);
|
|
176
|
+
localPrisma = freshPrisma;
|
|
177
|
+
} else {
|
|
178
|
+
const { default: packagePrisma } = await import("@prisma/client");
|
|
179
|
+
localPrisma = packagePrisma;
|
|
180
|
+
}
|
|
205
181
|
if (!localPrisma.ModelName) {
|
|
206
182
|
if (hasGenerated) {
|
|
207
183
|
return { ModelName: {} };
|
|
208
184
|
} else {
|
|
209
|
-
|
|
210
|
-
Object.keys(require.cache).forEach((key) => {
|
|
211
|
-
if (key.includes("/node_modules/@prisma/client/") || key.includes("/node_modules/.prisma/client/")) {
|
|
212
|
-
delete require.cache[key];
|
|
213
|
-
}
|
|
214
|
-
});
|
|
185
|
+
execa.sync("yarn rw prisma generate", { shell: true });
|
|
215
186
|
return getPrismaClient(true);
|
|
216
187
|
}
|
|
217
188
|
}
|
|
@@ -241,7 +212,7 @@ async function getPluginConfig(side) {
|
|
|
241
212
|
Time: side === 1 /* WEB */ ? "string" : "Date | string",
|
|
242
213
|
Byte: "Buffer"
|
|
243
214
|
};
|
|
244
|
-
const config =
|
|
215
|
+
const config = getConfig();
|
|
245
216
|
if (config.graphql.includeScalars.File) {
|
|
246
217
|
scalars.File = "File";
|
|
247
218
|
}
|
|
@@ -267,7 +238,7 @@ async function getPluginConfig(side) {
|
|
|
267
238
|
return pluginConfig;
|
|
268
239
|
}
|
|
269
240
|
const getResolverFnType = () => {
|
|
270
|
-
const tsConfig =
|
|
241
|
+
const tsConfig = getTsConfigs();
|
|
271
242
|
if (tsConfig.api?.compilerOptions?.strict) {
|
|
272
243
|
return `(
|
|
273
244
|
args: TArgs,
|
|
@@ -283,7 +254,7 @@ const getResolverFnType = () => {
|
|
|
283
254
|
const printMappedModelsPlugin = {
|
|
284
255
|
plugin: (schema, _documents, config) => {
|
|
285
256
|
const sdlTypesWhichAreMapped = Object.values(schema.getTypeMap()).filter((type) => {
|
|
286
|
-
return type.astNode?.kind ===
|
|
257
|
+
return type.astNode?.kind === Kind.OBJECT_TYPE_DEFINITION;
|
|
287
258
|
}).filter((objectDefType) => {
|
|
288
259
|
const modelName = objectDefType.astNode?.name.value;
|
|
289
260
|
return modelName && modelName in config.mappers;
|
|
@@ -318,8 +289,8 @@ function getCodegenOptions(documents, config, extraPlugins) {
|
|
|
318
289
|
// When that happens we'll have have to remove our `schema` line, and
|
|
319
290
|
// rename `schemaAst` to `schema`
|
|
320
291
|
schema: void 0,
|
|
321
|
-
schemaAst:
|
|
322
|
-
loaders: [new
|
|
292
|
+
schemaAst: loadSchemaSync(getPaths().generated.schema, {
|
|
293
|
+
loaders: [new GraphQLFileLoader()],
|
|
323
294
|
sort: true
|
|
324
295
|
}),
|
|
325
296
|
documents,
|
|
@@ -330,10 +301,9 @@ function getCodegenOptions(documents, config, extraPlugins) {
|
|
|
330
301
|
};
|
|
331
302
|
return options;
|
|
332
303
|
}
|
|
333
|
-
|
|
334
|
-
0 && (module.exports = {
|
|
304
|
+
export {
|
|
335
305
|
generateTypeDefGraphQLApi,
|
|
336
306
|
generateTypeDefGraphQLWeb,
|
|
337
307
|
getLoadDocumentsOptions,
|
|
338
308
|
getResolverFnType
|
|
339
|
-
}
|
|
309
|
+
};
|
|
@@ -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":"AAuBA,eAAO,MAAM,qBAAqB;;;iBAyDP,MAAM;eAAS,OAAO;;EAyEhD,CAAA"}
|