eddev 0.2.0-beta.9 → 0.2.2-beta.10
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/blocks/ContentBlocks.js +4 -1
- package/blocks/blockAttributes.d.ts +4 -0
- package/blocks/blockAttributes.js +23 -7
- package/blocks/inlineEditing.d.ts +9 -3
- package/blocks/inlineEditing.js +28 -5
- package/blocks/installGutenbergHooks.js +24 -3
- package/build/build-favicon.d.ts +1 -0
- package/build/build-favicon.js +71 -0
- package/build/create-serverless-dev-worker.d.ts +3 -0
- package/build/create-serverless-dev-worker.js +99 -0
- package/build/get-webpack-config.js +11 -1
- package/build/graphql-codegen/graphql-codegen-blocks.js +0 -1
- package/build/manifests/manifest-views.js +1 -1
- package/build/reporter.js +0 -109
- package/build/serverless/create-next-app.d.ts +2 -0
- package/build/serverless/create-next-app.js +239 -47
- package/build/state/serverless-state.d.ts +26 -0
- package/{config/schema.js → build/state/serverless-state.js} +0 -0
- package/build/workers/codegen-worker-script.js +36 -1
- package/{config/schema.d.ts → build/workers/serverless-worker-dev-script.d.ts} +0 -0
- package/build/workers/serverless-worker-dev-script.js +21 -0
- package/cli/build.dev.js +34 -6
- package/cli/build.prod.js +13 -1
- package/cli/cli.js +32 -17
- package/cli/display/components/DevCLIDisplay.d.ts +3 -0
- package/cli/display/components/DevCLIDisplay.js +20 -1
- package/cli/display/components/ServerlessDisplay.d.ts +9 -0
- package/cli/display/components/ServerlessDisplay.js +68 -0
- package/cli/preinstall.d.ts +1 -0
- package/cli/preinstall.js +19 -0
- package/components/NextRouter.js +3 -2
- package/config/config-schema.d.ts +17 -9
- package/config/config-schema.js +3 -1
- package/config/get-config.d.ts +39 -0
- package/config/get-config.js +32 -0
- package/config/parse-config.d.ts +8 -4
- package/config/print-zod-errors.d.ts +2 -0
- package/config/print-zod-errors.js +14 -0
- package/dev-ui/components/BreakpointColumnHeader.d.ts +11 -0
- package/dev-ui/components/BreakpointColumnHeader.js +47 -0
- package/dev-ui/components/BreakpointIndicator.d.ts +2 -0
- package/dev-ui/components/BreakpointIndicator.js +138 -0
- package/dev-ui/components/DevUI.d.ts +2 -0
- package/dev-ui/components/DevUI.js +28 -0
- package/dev-ui/components/Launcher.d.ts +98 -0
- package/dev-ui/components/Launcher.js +94 -0
- package/dev-ui/components/PanelWrapper.d.ts +8 -0
- package/dev-ui/components/PanelWrapper.js +37 -0
- package/dev-ui/components/ResponsiveLerpControl.d.ts +8 -0
- package/dev-ui/components/ResponsiveLerpControl.js +177 -0
- package/dev-ui/components/ResponsiveScaleEditor.d.ts +26 -0
- package/dev-ui/components/ResponsiveScaleEditor.js +233 -0
- package/dev-ui/components/atoms/Button.d.ts +47 -0
- package/dev-ui/components/atoms/Button.js +67 -0
- package/dev-ui/components/atoms/Dropdown.d.ts +13 -0
- package/dev-ui/components/atoms/Dropdown.js +50 -0
- package/dev-ui/components/atoms/NumberField.d.ts +12 -0
- package/dev-ui/components/atoms/NumberField.js +111 -0
- package/dev-ui/components/atoms/Spacer.d.ts +42 -0
- package/dev-ui/components/atoms/Spacer.js +8 -0
- package/dev-ui/components/atoms/Text.d.ts +45 -0
- package/dev-ui/components/atoms/Text.js +39 -0
- package/dev-ui/components/atoms/ToggleButton.d.ts +8 -0
- package/dev-ui/components/atoms/ToggleButton.js +41 -0
- package/dev-ui/components/atoms/Tooltip.d.ts +9 -0
- package/dev-ui/components/atoms/Tooltip.js +66 -0
- package/dev-ui/components/panels/PageDataDebugger.d.ts +2 -0
- package/dev-ui/components/panels/PageDataDebugger.js +30 -0
- package/dev-ui/components/panels/SpacingEditor.d.ts +2 -0
- package/dev-ui/components/panels/SpacingEditor.js +88 -0
- package/dev-ui/components/panels/TypographyEditor.d.ts +2 -0
- package/dev-ui/components/panels/TypographyEditor.js +95 -0
- package/dev-ui/hooks/useBreakpoint.d.ts +11 -0
- package/dev-ui/hooks/useBreakpoint.js +59 -0
- package/dev-ui/hooks/usePersistState.d.ts +1 -0
- package/dev-ui/hooks/usePersistState.js +36 -0
- package/dev-ui/hooks/useStylesheet.d.ts +4 -0
- package/dev-ui/hooks/useStylesheet.js +31 -0
- package/dev-ui/icons.d.ts +15 -0
- package/dev-ui/icons.js +29 -0
- package/dev-ui/index.d.ts +1 -0
- package/dev-ui/index.js +13 -0
- package/dev-ui/loader.d.ts +2 -0
- package/dev-ui/loader.js +42 -0
- package/dev-ui/panels.d.ts +11 -0
- package/dev-ui/panels.js +33 -0
- package/dev-ui/theme.d.ts +151 -0
- package/dev-ui/theme.js +50 -0
- package/entry/Root.d.ts +3 -1
- package/entry/Root.js +18 -6
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +1 -0
- package/hooks/useAppData.js +4 -0
- package/{serverless/create-rpc-client.d.ts → hooks/useRPC.d.ts} +18 -18
- package/hooks/useRPC.js +18 -0
- package/package.json +17 -9
- package/routing/routing.js +1 -1
- package/serverless/define-rpc-router.d.ts +5 -1
- package/serverless/define-rpc-router.js +11 -3
- package/serverless/index.d.ts +2 -1
- package/serverless/index.js +3 -1
- package/serverless-template/_utils/PageMeta.tsx +44 -0
- package/serverless-template/_utils/fetch-wordpress-props.ts +14 -3
- package/serverless-template/_utils/fetch-wp.ts +17 -0
- package/serverless-template/global.d.ts +7 -1
- package/serverless-template/next.config.js +10 -3
- package/serverless-template/package.json +6 -4
- package/serverless-template/pages/404.tsx +12 -0
- package/serverless-template/pages/[...slug].tsx +7 -2
- package/serverless-template/pages/_app.tsx +34 -12
- package/serverless-template/pages/_document.tsx +19 -0
- package/serverless-template/pages/api/rest/{[...method].ts → [method].ts} +4 -2
- package/serverless-template/pages/api/trpc/[...trpc].ts +26 -0
- package/serverless-template/pages/index.tsx +2 -2
- package/style/createStitches.d.ts +71 -1
- package/style/createStitches.js +181 -74
- package/utils/getRepoName.js +13 -5
- package/utils/updateEnvFile.d.ts +1 -0
- package/utils/updateEnvFile.js +76 -0
- package/cli/prepare-next.d.ts +0 -0
- package/cli/prepare-next.js +0 -1
- package/entry/entry.serverless.dev.d.ts +0 -0
- package/entry/entry.serverless.dev.js +0 -2
- package/fields/ImageWell.d.ts +0 -8
- package/fields/ImageWell.js +0 -64
- package/serverless/create-rpc-client.js +0 -20
- package/serverless-template/package-lock.json +0 -641
- package/serverless-template/pages/api/hello.ts +0 -10
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { ServerlessSignal } from "../state/serverless-state";
|
|
1
2
|
declare type Options = {
|
|
2
3
|
baseDirectory: string;
|
|
3
4
|
dev: boolean;
|
|
4
5
|
build: boolean;
|
|
6
|
+
sendSignal?: (signal: ServerlessSignal) => void;
|
|
5
7
|
};
|
|
6
8
|
export declare function createNextApp(opts: Options): Promise<void>;
|
|
7
9
|
export {};
|
|
@@ -65,15 +65,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
65
65
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
66
66
|
}
|
|
67
67
|
};
|
|
68
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
69
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
70
|
-
if (ar || !(i in from)) {
|
|
71
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
72
|
-
ar[i] = from[i];
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
76
|
-
};
|
|
77
68
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
78
69
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
79
70
|
};
|
|
@@ -85,8 +76,9 @@ var glob_promise_1 = __importDefault(require("glob-promise"));
|
|
|
85
76
|
var child_process_1 = require("child_process");
|
|
86
77
|
var fs_1 = require("fs");
|
|
87
78
|
var manifest_blocks_1 = require("../manifests/manifest-blocks");
|
|
88
|
-
var promises_1 = require("fs/promises");
|
|
89
79
|
var manifest_views_1 = require("../manifests/manifest-views");
|
|
80
|
+
var getRepoName_1 = require("../../utils/getRepoName");
|
|
81
|
+
var updateEnvFile_1 = require("../../utils/updateEnvFile");
|
|
90
82
|
function requireConfig(dir) {
|
|
91
83
|
var configPath = (0, path_1.resolve)(dir, "ed.config.json");
|
|
92
84
|
return require(configPath);
|
|
@@ -94,12 +86,15 @@ function requireConfig(dir) {
|
|
|
94
86
|
function createNextApp(opts) {
|
|
95
87
|
var _a;
|
|
96
88
|
return __awaiter(this, void 0, void 0, function () {
|
|
97
|
-
var isVercel, serverlessDirectory;
|
|
89
|
+
var isVercel, serverlessDirectory, sendSignal, repoName, assetPaths, port;
|
|
98
90
|
return __generator(this, function (_b) {
|
|
99
91
|
switch (_b.label) {
|
|
100
92
|
case 0:
|
|
101
93
|
isVercel = process.env.VERCEL;
|
|
102
94
|
serverlessDirectory = isVercel ? opts.baseDirectory : (0, path_1.resolve)(opts.baseDirectory, ".serverless");
|
|
95
|
+
sendSignal = opts.sendSignal || (function () { });
|
|
96
|
+
sendSignal({ code: "preparing" });
|
|
97
|
+
repoName = (0, getRepoName_1.getRepoName)(opts.baseDirectory);
|
|
103
98
|
if (!!isVercel) return [3 /*break*/, 2];
|
|
104
99
|
return [4 /*yield*/, clean(serverlessDirectory)];
|
|
105
100
|
case 1:
|
|
@@ -113,21 +108,20 @@ function createNextApp(opts) {
|
|
|
113
108
|
case 3:
|
|
114
109
|
// Copy the template folder
|
|
115
110
|
_b.sent();
|
|
116
|
-
if (
|
|
117
|
-
return [4 /*yield*/, updatePackagesFile(opts.baseDirectory,
|
|
111
|
+
if (!isVercel) return [3 /*break*/, 5];
|
|
112
|
+
return [4 /*yield*/, updatePackagesFile((0, path_1.resolve)(__dirname, "../../serverless-template"), opts.baseDirectory, opts.baseDirectory)];
|
|
118
113
|
case 4:
|
|
119
114
|
_b.sent();
|
|
120
|
-
|
|
121
|
-
case 5:
|
|
122
|
-
if (!!isVercel) return [3 /*break*/, 7];
|
|
123
|
-
return [4 /*yield*/, updatePackages(serverlessDirectory)];
|
|
115
|
+
return [3 /*break*/, 7];
|
|
116
|
+
case 5: return [4 /*yield*/, updatePackagesFile((0, path_1.resolve)(__dirname, "../../serverless-template"), opts.baseDirectory, serverlessDirectory)];
|
|
124
117
|
case 6:
|
|
125
118
|
_b.sent();
|
|
126
119
|
_b.label = 7;
|
|
127
120
|
case 7:
|
|
128
|
-
|
|
121
|
+
assetPaths = ((_a = requireConfig(opts.baseDirectory).serverless) === null || _a === void 0 ? void 0 : _a.themeAssets) || [];
|
|
122
|
+
if (!!isVercel) return [3 /*break*/, 14];
|
|
129
123
|
// Sync important files during development, as they change
|
|
130
|
-
return [4 /*yield*/, syncFiles(opts.baseDirectory, serverlessDirectory,
|
|
124
|
+
return [4 /*yield*/, syncFiles(opts.baseDirectory, serverlessDirectory, [
|
|
131
125
|
"blocks/**/*",
|
|
132
126
|
"components/**/*",
|
|
133
127
|
"hooks/**/*",
|
|
@@ -138,35 +132,104 @@ function createNextApp(opts) {
|
|
|
138
132
|
"types.graphql.ts",
|
|
139
133
|
"types.views.ts",
|
|
140
134
|
"types.blocks.ts",
|
|
135
|
+
"types.api.ts",
|
|
141
136
|
"utils/**/*",
|
|
142
|
-
"ed.config.json"
|
|
143
|
-
]
|
|
137
|
+
"ed.config.json",
|
|
138
|
+
])
|
|
144
139
|
// Also sync APIs into the APIs folder
|
|
145
140
|
];
|
|
146
141
|
case 8:
|
|
147
142
|
// Sync important files during development, as they change
|
|
148
143
|
_b.sent();
|
|
149
144
|
// Also sync APIs into the APIs folder
|
|
150
|
-
return [4 /*yield*/, syncFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "
|
|
145
|
+
return [4 /*yield*/, syncFiles((0, path_1.join)(opts.baseDirectory, "apis"), (0, path_1.join)(serverlessDirectory, "apis"), ["**/*.{tsx,ts,js,jsx}"])];
|
|
151
146
|
case 9:
|
|
152
147
|
// Also sync APIs into the APIs folder
|
|
153
148
|
_b.sent();
|
|
154
|
-
|
|
149
|
+
return [4 /*yield*/, syncAPIProxies((0, path_1.join)(opts.baseDirectory, "apis"), (0, path_1.join)(serverlessDirectory, "pages/api"))
|
|
150
|
+
// Sync the public folder
|
|
151
|
+
];
|
|
155
152
|
case 10:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
return [4 /*yield*/, runScript(serverlessDirectory, "dev")];
|
|
153
|
+
_b.sent();
|
|
154
|
+
if (!assetPaths.length) return [3 /*break*/, 12];
|
|
155
|
+
return [4 /*yield*/, syncFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "public/wp-content/themes/".concat(repoName.repoName)), assetPaths)];
|
|
160
156
|
case 11:
|
|
161
157
|
_b.sent();
|
|
162
|
-
|
|
163
|
-
case 12:
|
|
164
|
-
|
|
165
|
-
|
|
158
|
+
_b.label = 12;
|
|
159
|
+
case 12:
|
|
160
|
+
// Sync favicon
|
|
161
|
+
return [4 /*yield*/, syncFiles((0, path_1.join)(opts.baseDirectory), (0, path_1.join)(serverlessDirectory, "public/"), ["favicon.ico"])];
|
|
166
162
|
case 13:
|
|
163
|
+
// Sync favicon
|
|
164
|
+
_b.sent();
|
|
165
|
+
return [3 /*break*/, 19];
|
|
166
|
+
case 14:
|
|
167
|
+
if (!assetPaths.length) return [3 /*break*/, 16];
|
|
168
|
+
return [4 /*yield*/, copyFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "public/wp-content/themes/".concat(repoName.repoName)), assetPaths)];
|
|
169
|
+
case 15:
|
|
170
|
+
_b.sent();
|
|
171
|
+
_b.label = 16;
|
|
172
|
+
case 16:
|
|
173
|
+
// Sync favicon
|
|
174
|
+
return [4 /*yield*/, copyFiles((0, path_1.join)(opts.baseDirectory), (0, path_1.join)(serverlessDirectory, "public/"), ["favicon.ico"])
|
|
175
|
+
// Write APIs proxy code
|
|
176
|
+
];
|
|
177
|
+
case 17:
|
|
178
|
+
// Sync favicon
|
|
179
|
+
_b.sent();
|
|
180
|
+
// Write APIs proxy code
|
|
181
|
+
return [4 /*yield*/, writeAPIProxies((0, path_1.join)(opts.baseDirectory, "apis"), (0, path_1.join)(serverlessDirectory, "pages/api"))
|
|
182
|
+
// Remove pages/api/trpc directory if no _rpc is found
|
|
183
|
+
];
|
|
184
|
+
case 18:
|
|
185
|
+
// Write APIs proxy code
|
|
186
|
+
_b.sent();
|
|
187
|
+
// Remove pages/api/trpc directory if no _rpc is found
|
|
188
|
+
if (!(0, fs_1.existsSync)((0, path_1.join)(opts.baseDirectory, "apis/_rpc/index.ts")) &&
|
|
189
|
+
!(0, fs_1.existsSync)((0, path_1.join)(opts.baseDirectory, "apis/_rpc.ts"))) {
|
|
190
|
+
// removeSync(join(serverlessDirectory, "pages/api/trpc"))
|
|
191
|
+
}
|
|
192
|
+
_b.label = 19;
|
|
193
|
+
case 19:
|
|
194
|
+
// Create manifests
|
|
195
|
+
return [4 /*yield*/, initManifests(serverlessDirectory, opts.dev)
|
|
196
|
+
// Update packages
|
|
197
|
+
];
|
|
198
|
+
case 20:
|
|
199
|
+
// Create manifests
|
|
200
|
+
_b.sent();
|
|
201
|
+
if (!!isVercel) return [3 /*break*/, 22];
|
|
202
|
+
sendSignal({ code: "packaging" });
|
|
203
|
+
return [4 /*yield*/, updatePackages(serverlessDirectory)];
|
|
204
|
+
case 21:
|
|
205
|
+
_b.sent();
|
|
206
|
+
_b.label = 22;
|
|
207
|
+
case 22:
|
|
208
|
+
sendSignal({ code: "compiling" });
|
|
209
|
+
if (!opts.dev) return [3 /*break*/, 25];
|
|
210
|
+
return [4 /*yield*/, getPort(3000)
|
|
211
|
+
// Write the endpoint URL to .env
|
|
212
|
+
];
|
|
213
|
+
case 23:
|
|
214
|
+
port = _b.sent();
|
|
215
|
+
// Write the endpoint URL to .env
|
|
216
|
+
(0, updateEnvFile_1.updateEnvFile)({
|
|
217
|
+
DEBUG_SERVERLESS_ENDPOINT: "http://localhost:".concat(port),
|
|
218
|
+
}, opts.baseDirectory);
|
|
219
|
+
sendSignal({ code: "url", url: "http://127.0.0.1:".concat(port) });
|
|
220
|
+
// await devNext(serverlessDirectory, port)
|
|
221
|
+
return [4 /*yield*/, runScript(serverlessDirectory, ["dev", "--port", String(port)])];
|
|
222
|
+
case 24:
|
|
223
|
+
// await devNext(serverlessDirectory, port)
|
|
224
|
+
_b.sent();
|
|
225
|
+
return [3 /*break*/, 27];
|
|
226
|
+
case 25:
|
|
227
|
+
if (!opts.build) return [3 /*break*/, 27];
|
|
228
|
+
return [4 /*yield*/, runScript(serverlessDirectory, ["build"])];
|
|
229
|
+
case 26:
|
|
167
230
|
_b.sent();
|
|
168
|
-
_b.label =
|
|
169
|
-
case
|
|
231
|
+
_b.label = 27;
|
|
232
|
+
case 27: return [2 /*return*/];
|
|
170
233
|
}
|
|
171
234
|
});
|
|
172
235
|
});
|
|
@@ -206,6 +269,8 @@ function copyTemplate(targetFolder) {
|
|
|
206
269
|
case 1:
|
|
207
270
|
files = _a.sent();
|
|
208
271
|
return [4 /*yield*/, Promise.all(files.map(function (src) {
|
|
272
|
+
if (src.includes("package.json"))
|
|
273
|
+
return null;
|
|
209
274
|
var dest = src.replace(sourceFolder, targetFolder);
|
|
210
275
|
return (0, fs_extra_1.copy)(src, dest);
|
|
211
276
|
}))];
|
|
@@ -234,23 +299,81 @@ function updatePackages(dir) {
|
|
|
234
299
|
});
|
|
235
300
|
});
|
|
236
301
|
}
|
|
237
|
-
function updatePackagesFile(
|
|
302
|
+
function updatePackagesFile(templateFolder, appFolder, outDirectory) {
|
|
238
303
|
return __awaiter(this, void 0, void 0, function () {
|
|
239
|
-
var sourcePackageFile, targetPackageFile, sourcePackage, targetPackage, mergedPackage;
|
|
304
|
+
var sourcePackageFile, targetPackageFile, outPackageFile, sourcePackage, targetPackage, mergedPackage;
|
|
240
305
|
return __generator(this, function (_a) {
|
|
241
|
-
sourcePackageFile = (0, path_1.resolve)(
|
|
242
|
-
targetPackageFile = (0, path_1.resolve)(
|
|
306
|
+
sourcePackageFile = (0, path_1.resolve)(templateFolder, "package.json");
|
|
307
|
+
targetPackageFile = (0, path_1.resolve)(appFolder, "package.json");
|
|
308
|
+
outPackageFile = (0, path_1.resolve)(outDirectory, "package.json");
|
|
243
309
|
sourcePackage = require(sourcePackageFile);
|
|
244
310
|
targetPackage = require(targetPackageFile);
|
|
245
|
-
mergedPackage = __assign(__assign({},
|
|
246
|
-
(0, fs_extra_1.writeJSON)(
|
|
311
|
+
mergedPackage = __assign(__assign({}, sourcePackage), { dependencies: __assign(__assign({}, (sourcePackage.dependencies || {})), (targetPackage.dependencies || {})), devDependencies: __assign(__assign({}, (sourcePackage.devDependencies || {})), (targetPackage.devDependencies || {})) });
|
|
312
|
+
(0, fs_extra_1.writeJSON)(outPackageFile, mergedPackage, {
|
|
247
313
|
spaces: 2,
|
|
248
314
|
});
|
|
249
315
|
return [2 /*return*/];
|
|
250
316
|
});
|
|
251
317
|
});
|
|
252
318
|
}
|
|
253
|
-
function
|
|
319
|
+
function writeAPIProxies(sourceFolder, targetFolder) {
|
|
320
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
321
|
+
var files;
|
|
322
|
+
return __generator(this, function (_a) {
|
|
323
|
+
switch (_a.label) {
|
|
324
|
+
case 0: return [4 /*yield*/, (0, glob_promise_1.default)((0, path_1.join)(sourceFolder, "**/*.{tsx,ts,js}"))];
|
|
325
|
+
case 1:
|
|
326
|
+
files = _a.sent();
|
|
327
|
+
return [4 /*yield*/, Promise.all(files.map(function (file) {
|
|
328
|
+
var name = file.replace(sourceFolder, "");
|
|
329
|
+
var outputPath = (0, path_1.join)(targetFolder, name);
|
|
330
|
+
if (name.includes("_rpc"))
|
|
331
|
+
return;
|
|
332
|
+
(0, fs_extra_1.ensureFileSync)((0, path_1.join)(outputPath));
|
|
333
|
+
return (0, fs_extra_1.writeFile)(outputPath, "import handler from \"".concat(file, "\"; export default handler;"));
|
|
334
|
+
}))];
|
|
335
|
+
case 2:
|
|
336
|
+
_a.sent();
|
|
337
|
+
return [2 /*return*/];
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
function syncAPIProxies(sourceFolder, targetFolder) {
|
|
343
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
344
|
+
return __generator(this, function (_a) {
|
|
345
|
+
return [2 /*return*/, syncFiles(sourceFolder, targetFolder, ["**/*"], function (inputPath) {
|
|
346
|
+
if (inputPath.includes("_rpc"))
|
|
347
|
+
return null;
|
|
348
|
+
return "import handler from \"".concat(inputPath.replace(/\.(ts|js)x?$/, ""), "\"; export default handler;");
|
|
349
|
+
})];
|
|
350
|
+
});
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
function copyFiles(sourceFolder, targetFolder, patterns) {
|
|
354
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
355
|
+
var files;
|
|
356
|
+
return __generator(this, function (_a) {
|
|
357
|
+
switch (_a.label) {
|
|
358
|
+
case 0: return [4 /*yield*/, Promise.all(patterns.map(function (pattern) { return (0, glob_promise_1.default)((0, path_1.resolve)(sourceFolder, pattern)); }))];
|
|
359
|
+
case 1:
|
|
360
|
+
files = (_a.sent()).flat();
|
|
361
|
+
// Replace sourceFolder in each path, and copy to target folder
|
|
362
|
+
return [4 /*yield*/, Promise.all(files.map(function (file) {
|
|
363
|
+
var stat = (0, fs_1.statSync)(file);
|
|
364
|
+
if (!stat.isDirectory()) {
|
|
365
|
+
return (0, fs_extra_1.copy)(file, file.replace(sourceFolder, targetFolder));
|
|
366
|
+
}
|
|
367
|
+
}))];
|
|
368
|
+
case 2:
|
|
369
|
+
// Replace sourceFolder in each path, and copy to target folder
|
|
370
|
+
_a.sent();
|
|
371
|
+
return [2 /*return*/];
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
function syncFiles(sourceFolder, targetFolder, patterns, proxy) {
|
|
254
377
|
return __awaiter(this, void 0, void 0, function () {
|
|
255
378
|
var _this = this;
|
|
256
379
|
return __generator(this, function (_a) {
|
|
@@ -262,15 +385,28 @@ function syncFiles(sourceFolder, targetFolder, patterns) {
|
|
|
262
385
|
case 1:
|
|
263
386
|
chokidar = (_a.sent()).default;
|
|
264
387
|
chokidar
|
|
265
|
-
.watch(patterns
|
|
388
|
+
.watch(patterns, {
|
|
389
|
+
cwd: sourceFolder,
|
|
390
|
+
})
|
|
266
391
|
.on("add", function (path) {
|
|
267
|
-
|
|
392
|
+
if (proxy) {
|
|
393
|
+
var output = proxy((0, path_1.relative)(targetFolder, (0, path_1.join)(sourceFolder, path)), (0, path_1.join)(targetFolder, path));
|
|
394
|
+
if (typeof output === "string") {
|
|
395
|
+
(0, fs_extra_1.ensureFileSync)((0, path_1.join)(targetFolder, path));
|
|
396
|
+
(0, fs_extra_1.writeFile)((0, path_1.join)(targetFolder, path), output);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
(0, fs_extra_1.copy)((0, path_1.join)(sourceFolder, path), (0, path_1.join)(targetFolder, path));
|
|
401
|
+
}
|
|
268
402
|
})
|
|
269
403
|
.on("unlink", function (path) {
|
|
270
404
|
(0, fs_extra_1.remove)((0, path_1.join)(targetFolder, path));
|
|
271
405
|
})
|
|
272
406
|
.on("change", function (path) {
|
|
273
|
-
|
|
407
|
+
if (!proxy) {
|
|
408
|
+
(0, fs_extra_1.copy)((0, path_1.join)(sourceFolder, path), (0, path_1.join)(targetFolder, path));
|
|
409
|
+
}
|
|
274
410
|
})
|
|
275
411
|
.on("ready", function () {
|
|
276
412
|
ready(undefined);
|
|
@@ -282,12 +418,30 @@ function syncFiles(sourceFolder, targetFolder, patterns) {
|
|
|
282
418
|
});
|
|
283
419
|
});
|
|
284
420
|
}
|
|
285
|
-
function
|
|
421
|
+
// async function devNext(dir: string, port: number) {
|
|
422
|
+
// const { createServer } = await import("http")
|
|
423
|
+
// const { parse } = await import("url")
|
|
424
|
+
// const { default: next } = await import("next")
|
|
425
|
+
// const app = next({
|
|
426
|
+
// dev: true,
|
|
427
|
+
// dir: dir,
|
|
428
|
+
// minimalMode: true,
|
|
429
|
+
// customServer: true,
|
|
430
|
+
// port: port,
|
|
431
|
+
// })
|
|
432
|
+
// const handle = app.getRequestHandler()
|
|
433
|
+
// app.prepare().then(() => {
|
|
434
|
+
// createServer((req, res) => {
|
|
435
|
+
// handle(req, res, parse(req.url || "", true))
|
|
436
|
+
// }).listen(app.port)
|
|
437
|
+
// })
|
|
438
|
+
// }
|
|
439
|
+
function runScript(dir, args) {
|
|
286
440
|
var _a, _b;
|
|
287
441
|
return __awaiter(this, void 0, void 0, function () {
|
|
288
442
|
var proc;
|
|
289
443
|
return __generator(this, function (_c) {
|
|
290
|
-
proc = (0, child_process_1.spawn)("yarn",
|
|
444
|
+
proc = (0, child_process_1.spawn)("yarn", args, {
|
|
291
445
|
cwd: dir,
|
|
292
446
|
});
|
|
293
447
|
(_a = proc.stdout) === null || _a === void 0 ? void 0 : _a.pipe(process.stdout);
|
|
@@ -313,7 +467,7 @@ function initManifests(dir, dev) {
|
|
|
313
467
|
isServerless: true,
|
|
314
468
|
onGenerate: function (manifest) { return __awaiter(_this, void 0, void 0, function () {
|
|
315
469
|
return __generator(this, function (_a) {
|
|
316
|
-
(0,
|
|
470
|
+
(0, fs_extra_1.writeFile)((0, path_1.resolve)(dir, "manifest_blocks.ts"), manifest);
|
|
317
471
|
return [2 /*return*/];
|
|
318
472
|
});
|
|
319
473
|
}); },
|
|
@@ -326,7 +480,7 @@ function initManifests(dir, dev) {
|
|
|
326
480
|
isServerless: true,
|
|
327
481
|
onGenerate: function (manifest) { return __awaiter(_this, void 0, void 0, function () {
|
|
328
482
|
return __generator(this, function (_a) {
|
|
329
|
-
(0,
|
|
483
|
+
(0, fs_extra_1.writeFile)((0, path_1.resolve)(dir, "manifest_views.ts"), manifest);
|
|
330
484
|
return [2 /*return*/];
|
|
331
485
|
});
|
|
332
486
|
}); },
|
|
@@ -340,3 +494,41 @@ function initManifests(dir, dev) {
|
|
|
340
494
|
});
|
|
341
495
|
});
|
|
342
496
|
}
|
|
497
|
+
function getPort(port) {
|
|
498
|
+
if (port === void 0) { port = 3000; }
|
|
499
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
500
|
+
var createServer;
|
|
501
|
+
var _this = this;
|
|
502
|
+
return __generator(this, function (_a) {
|
|
503
|
+
switch (_a.label) {
|
|
504
|
+
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("net")); })];
|
|
505
|
+
case 1:
|
|
506
|
+
createServer = (_a.sent()).createServer;
|
|
507
|
+
return [4 /*yield*/, new Promise(function (resolve) {
|
|
508
|
+
var server = createServer();
|
|
509
|
+
server.listen(port, "127.0.0.1");
|
|
510
|
+
server.on("listening", function () {
|
|
511
|
+
server.once("close", function () {
|
|
512
|
+
resolve(port);
|
|
513
|
+
});
|
|
514
|
+
server.close();
|
|
515
|
+
});
|
|
516
|
+
server.on("error", function () { return __awaiter(_this, void 0, void 0, function () {
|
|
517
|
+
var _a;
|
|
518
|
+
return __generator(this, function (_b) {
|
|
519
|
+
switch (_b.label) {
|
|
520
|
+
case 0:
|
|
521
|
+
_a = resolve;
|
|
522
|
+
return [4 /*yield*/, getPort(port + 1)];
|
|
523
|
+
case 1:
|
|
524
|
+
_a.apply(void 0, [_b.sent()]);
|
|
525
|
+
return [2 /*return*/];
|
|
526
|
+
}
|
|
527
|
+
});
|
|
528
|
+
}); });
|
|
529
|
+
})];
|
|
530
|
+
case 2: return [2 /*return*/, _a.sent()];
|
|
531
|
+
}
|
|
532
|
+
});
|
|
533
|
+
});
|
|
534
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare type ServerlessStatus = "starting" | "packaging" | "preparing" | "compiling" | "success" | "waiting" | "error";
|
|
2
|
+
export declare type ServerlessState = {
|
|
3
|
+
title: string;
|
|
4
|
+
status: ServerlessStatus;
|
|
5
|
+
statusLabel?: string;
|
|
6
|
+
duration?: number;
|
|
7
|
+
log?: string;
|
|
8
|
+
url?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare type ServerlessSignal = {
|
|
11
|
+
code: "packaging";
|
|
12
|
+
} | {
|
|
13
|
+
code: "preparing";
|
|
14
|
+
} | {
|
|
15
|
+
code: "compiling";
|
|
16
|
+
} | {
|
|
17
|
+
code: "finished";
|
|
18
|
+
duration: number;
|
|
19
|
+
} | {
|
|
20
|
+
code: "error";
|
|
21
|
+
} | {
|
|
22
|
+
code: "log";
|
|
23
|
+
} | {
|
|
24
|
+
code: "url";
|
|
25
|
+
url: string;
|
|
26
|
+
};
|
|
File without changes
|
|
@@ -150,6 +150,7 @@ function beginWork(opts) {
|
|
|
150
150
|
schemaDescription: false,
|
|
151
151
|
specifiedByUrl: true,
|
|
152
152
|
});
|
|
153
|
+
processSchema(schema);
|
|
153
154
|
hash = JSON.stringify(schema);
|
|
154
155
|
if (hash !== lastSchemaHash) {
|
|
155
156
|
lastSchemaHash = hash;
|
|
@@ -162,6 +163,8 @@ function beginWork(opts) {
|
|
|
162
163
|
}
|
|
163
164
|
});
|
|
164
165
|
}); };
|
|
166
|
+
// Create RPC/API types
|
|
167
|
+
(0, promises_1.writeFile)(Path.join(opts.baseDirectory, "types.api.ts"), "\n import type { router, createContext } from \"./apis/_rpc\"\n import { createReactQueryHooks } from \"@trpc/react\"\n export {}\n \n const createQueryHooks = () => createReactQueryHooks<typeof router>()\n \n declare global {\n type RPCUse = ReturnType<typeof createQueryHooks>\n type RPCRouter = typeof router\n type RPCContextType = Awaited<ReturnType<typeof createContext>>\n type RPCClient = ReturnType<RPCUse[\"createClient\"]>\n type RPCUseQuery = RPCUse[\"useQuery\"]\n type RPCUseMutation = RPCUse[\"useMutation\"]\n type RPCUseInfiniteQuery = RPCUse[\"useInfiniteQuery\"]\n }\n\n declare global {\n namespace NodeJS {\n interface Process {\n // @ts-ignore\n browser: boolean\n dev: boolean\n admin: boolean\n serverless: boolean\n }\n }\n }\n \n ");
|
|
165
168
|
regenerate = debounce(100, function () { return __awaiter(_this, void 0, void 0, function () {
|
|
166
169
|
var startTime, hasChanged, err_1, documentSets, parseErrors, _loop_1, _a, _b, _i, key, generates, errors, _c, _d, _e, file, base, config, output, err_2;
|
|
167
170
|
var _this = this;
|
|
@@ -178,7 +181,9 @@ function beginWork(opts) {
|
|
|
178
181
|
if (!endpoint) {
|
|
179
182
|
sendSignal({
|
|
180
183
|
code: "error",
|
|
181
|
-
errors: [
|
|
184
|
+
errors: [
|
|
185
|
+
"Could not find DEBUG_GRAPHQL_URL value in .env. This will be automatically populated once you visit WP Admin first the first time!",
|
|
186
|
+
],
|
|
182
187
|
});
|
|
183
188
|
regenerating = false;
|
|
184
189
|
return [2 /*return*/];
|
|
@@ -575,4 +580,34 @@ function debounce(wait, fn) {
|
|
|
575
580
|
};
|
|
576
581
|
return debounced;
|
|
577
582
|
}
|
|
583
|
+
function processSchema(schema) {
|
|
584
|
+
var walkFields = function (fields) { };
|
|
585
|
+
var updateFieldType = function (fieldType) {
|
|
586
|
+
var _a;
|
|
587
|
+
if (fieldType.kind === "LIST") {
|
|
588
|
+
if (((_a = fieldType.ofType) === null || _a === void 0 ? void 0 : _a.kind) !== "NON_NULL") {
|
|
589
|
+
fieldType.ofType = {
|
|
590
|
+
kind: "NON_NULL",
|
|
591
|
+
name: null,
|
|
592
|
+
ofType: fieldType.ofType,
|
|
593
|
+
};
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
};
|
|
597
|
+
var updateType = function (type) {
|
|
598
|
+
if (typeof type.type === "object" && type.type) {
|
|
599
|
+
updateFieldType(type.type);
|
|
600
|
+
}
|
|
601
|
+
if (type.fields) {
|
|
602
|
+
for (var _i = 0, _a = type.fields; _i < _a.length; _i++) {
|
|
603
|
+
var field = _a[_i];
|
|
604
|
+
updateType(field);
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
};
|
|
608
|
+
for (var _i = 0, _a = schema.__schema.types; _i < _a.length; _i++) {
|
|
609
|
+
var type = _a[_i];
|
|
610
|
+
updateType(type);
|
|
611
|
+
}
|
|
612
|
+
}
|
|
578
613
|
beginWork(worker_threads_1.workerData);
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var worker_threads_1 = require("worker_threads");
|
|
4
|
+
var create_next_app_1 = require("../serverless/create-next-app");
|
|
5
|
+
var sendSignal = function (sig) {
|
|
6
|
+
if (worker_threads_1.parentPort) {
|
|
7
|
+
worker_threads_1.parentPort.postMessage(sig);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
function beginWork() {
|
|
11
|
+
process.on("uncaughtException", function (err) {
|
|
12
|
+
sendSignal({ code: "error" });
|
|
13
|
+
});
|
|
14
|
+
(0, create_next_app_1.createNextApp)({
|
|
15
|
+
baseDirectory: process.cwd(),
|
|
16
|
+
build: false,
|
|
17
|
+
dev: true,
|
|
18
|
+
sendSignal: sendSignal,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
beginWork();
|
package/cli/build.dev.js
CHANGED
|
@@ -49,20 +49,44 @@ var DevCLIDisplay_1 = require("./display/components/DevCLIDisplay");
|
|
|
49
49
|
var create_webpack_worker_1 = require("../build/create-webpack-worker");
|
|
50
50
|
var create_codegen_worker_1 = require("../build/create-codegen-worker");
|
|
51
51
|
var create_schema_file_1 = require("../config/create-schema-file");
|
|
52
|
+
var get_config_1 = require("../config/get-config");
|
|
53
|
+
var print_zod_errors_1 = require("../config/print-zod-errors");
|
|
54
|
+
var Observable_1 = require("../utils/Observable");
|
|
55
|
+
var fs_extra_1 = require("fs-extra");
|
|
56
|
+
var create_serverless_dev_worker_1 = require("../build/create-serverless-dev-worker");
|
|
57
|
+
var build_favicon_1 = require("../build/build-favicon");
|
|
58
|
+
var compare_versions_1 = __importDefault(require("compare-versions"));
|
|
59
|
+
var chalk_1 = __importDefault(require("chalk"));
|
|
52
60
|
function devCommand(opts) {
|
|
61
|
+
var _a;
|
|
53
62
|
return __awaiter(this, void 0, void 0, function () {
|
|
54
|
-
var themeName, enableFrontend, enableAdmin, enableCodegen, frontendObservable, adminObservable, codegenObservable;
|
|
55
|
-
return __generator(this, function (
|
|
56
|
-
switch (
|
|
63
|
+
var version, requiredVersion, configResult, config, themeName, enableFrontend, enableAdmin, enableCodegen, enableServerless, frontendObservable, adminObservable, codegenObservable, configChanged, serverlessObservable;
|
|
64
|
+
return __generator(this, function (_b) {
|
|
65
|
+
switch (_b.label) {
|
|
57
66
|
case 0:
|
|
67
|
+
version = require(path_1.default.join(__dirname, "../package.json")).version;
|
|
68
|
+
requiredVersion = require(path_1.default.join(process.cwd(), "package.json")).devDependencies.eddev;
|
|
69
|
+
if ((0, compare_versions_1.default)(version, requiredVersion) < 0) {
|
|
70
|
+
console.log(chalk_1.default.red("\uD83D\uDEA8 Incorrect 'eddev' version installed!\n\uD83D\uDEA8 Your package.json requires ".concat(chalk_1.default.yellow(requiredVersion), ", but you have ").concat(chalk_1.default.yellow(version), ".\n\uD83D\uDEA8 Do you need to run 'yarn'?")));
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
58
73
|
(0, create_schema_file_1.createConfigSchemaFile)(path_1.default.resolve(process.cwd(), ".ed.config.schema.json"));
|
|
74
|
+
(0, build_favicon_1.buildFavicon)().catch(function () { });
|
|
59
75
|
return [4 /*yield*/, (0, promptIfRepoNameIncorrect_1.promptIfRepoThemeMismatch)()];
|
|
60
76
|
case 1:
|
|
61
|
-
|
|
77
|
+
_b.sent();
|
|
78
|
+
configResult = (0, get_config_1.getEDConfig)();
|
|
79
|
+
if (configResult.success === false) {
|
|
80
|
+
(0, print_zod_errors_1.printZodErrors)(configResult.error);
|
|
81
|
+
console.log("\nPlease fix the above config errors, and restart the dev command.");
|
|
82
|
+
return [2 /*return*/];
|
|
83
|
+
}
|
|
84
|
+
config = configResult.data;
|
|
62
85
|
themeName = path_1.default.basename(process.cwd());
|
|
63
86
|
enableFrontend = !opts.mode || opts.mode === "frontend";
|
|
64
87
|
enableAdmin = !opts.mode || opts.mode === "admin";
|
|
65
88
|
enableCodegen = !opts.mode || opts.mode === "codegen";
|
|
89
|
+
enableServerless = (_a = config.serverless) === null || _a === void 0 ? void 0 : _a.enabled;
|
|
66
90
|
frontendObservable = enableFrontend
|
|
67
91
|
? (0, create_webpack_worker_1.createWebpackWorker)({
|
|
68
92
|
title: "Frontend Bundle",
|
|
@@ -96,9 +120,13 @@ function devCommand(opts) {
|
|
|
96
120
|
retainLog: opts.retainLog,
|
|
97
121
|
})
|
|
98
122
|
: undefined;
|
|
99
|
-
|
|
123
|
+
configChanged = new Observable_1.Observable(false);
|
|
124
|
+
(0, fs_extra_1.watchFile)((0, get_config_1.getEDConfigFile)(), {}, function () {
|
|
125
|
+
configChanged.update(true);
|
|
126
|
+
});
|
|
127
|
+
serverlessObservable = enableServerless ? (0, create_serverless_dev_worker_1.createServerlessWorker)() : undefined;
|
|
100
128
|
// Render output to screen
|
|
101
|
-
(0, ink_1.render)((0, jsx_runtime_1.jsx)(DevCLIDisplay_1.DevCLIDisplay, { bundles: [frontendObservable, adminObservable].filter(Boolean), codegen: codegenObservable }, void 0));
|
|
129
|
+
(0, ink_1.render)((0, jsx_runtime_1.jsx)(DevCLIDisplay_1.DevCLIDisplay, { bundles: [frontendObservable, adminObservable].filter(Boolean), serverless: serverlessObservable, codegen: codegenObservable, configChanged: configChanged }, void 0));
|
|
102
130
|
return [2 /*return*/];
|
|
103
131
|
}
|
|
104
132
|
});
|
package/cli/build.prod.js
CHANGED
|
@@ -45,6 +45,7 @@ var webpack_1 = require("webpack");
|
|
|
45
45
|
var promptIfRepoNameIncorrect_1 = require("../utils/promptIfRepoNameIncorrect");
|
|
46
46
|
var path_1 = __importDefault(require("path"));
|
|
47
47
|
var clean_1 = require("../build/clean");
|
|
48
|
+
var build_favicon_1 = require("../build/build-favicon");
|
|
48
49
|
function prodCommand(opts) {
|
|
49
50
|
return __awaiter(this, void 0, void 0, function () {
|
|
50
51
|
var contentBase, themeName, compiler, _a, _b;
|
|
@@ -52,6 +53,10 @@ function prodCommand(opts) {
|
|
|
52
53
|
switch (_c.label) {
|
|
53
54
|
case 0:
|
|
54
55
|
contentBase = process.cwd() + "/dist/";
|
|
56
|
+
(0, build_favicon_1.buildFavicon)().catch(function (err) {
|
|
57
|
+
console.log("Error building favicon:");
|
|
58
|
+
console.error(err);
|
|
59
|
+
});
|
|
55
60
|
return [4 /*yield*/, (0, promptIfRepoNameIncorrect_1.promptIfRepoThemeMismatch)()];
|
|
56
61
|
case 1:
|
|
57
62
|
_c.sent();
|
|
@@ -86,7 +91,14 @@ function prodCommand(opts) {
|
|
|
86
91
|
compiler = _a.apply(void 0, [_b.concat([
|
|
87
92
|
_c.sent()
|
|
88
93
|
])]);
|
|
89
|
-
compiler.run(function () {
|
|
94
|
+
compiler.run(function (err, stats) {
|
|
95
|
+
if (stats === null || stats === void 0 ? void 0 : stats.hasErrors()) {
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
if (err) {
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
90
102
|
return [2 /*return*/];
|
|
91
103
|
}
|
|
92
104
|
});
|