eddev 0.2.0-beta.1 → 0.2.0-beta.13
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/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 +19 -11
- package/build/reporter.js +0 -109
- package/build/serverless/create-next-app.d.ts +2 -0
- package/build/serverless/create-next-app.js +212 -76
- package/build/state/serverless-state.d.ts +26 -0
- package/build/state/serverless-state.js +2 -0
- package/build/workers/serverless-worker-dev-script.d.ts +1 -0
- package/build/workers/serverless-worker-dev-script.js +21 -0
- package/cli/build.dev.js +30 -7
- package/cli/build.prod.js +5 -0
- package/cli/cli.js +23 -15
- 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/config/config-schema.d.ts +50 -0
- package/config/config-schema.js +18 -0
- package/config/create-schema-file.d.ts +1 -0
- package/config/create-schema-file.js +20 -0
- package/config/get-config.d.ts +36 -0
- package/config/get-config.js +32 -0
- package/config/index.d.ts +2 -0
- package/config/index.js +14 -0
- package/config/parse-config.d.ts +23 -0
- package/config/parse-config.js +8 -0
- 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/BreakpointList.d.ts +6 -0
- package/dev-ui/components/BreakpointList.js +38 -0
- package/dev-ui/components/DevUI.d.ts +2 -0
- package/dev-ui/components/DevUI.js +29 -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/ResponsiveScaleHeader.d.ts +15 -0
- package/dev-ui/components/ResponsiveScaleHeader.js +51 -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 +88 -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 +33 -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 +5 -0
- package/dev-ui/panels.d.ts +11 -0
- package/dev-ui/panels.js +33 -0
- package/dev-ui/theme.d.ts +150 -0
- package/dev-ui/theme.js +50 -0
- package/entry/Root.js +6 -5
- package/hooks/useAppData.js +0 -1
- package/package.json +8 -7
- package/serverless/create-rpc-client.d.ts +33 -0
- package/serverless/create-rpc-client.js +20 -0
- package/serverless/define-api.d.ts +2 -0
- package/serverless/define-api.js +66 -0
- package/serverless/define-rpc-router.d.ts +2 -0
- package/serverless/define-rpc-router.js +27 -0
- package/serverless/error-codes.d.ts +2 -0
- package/serverless/error-codes.js +14 -0
- package/serverless/index.d.ts +4 -0
- package/serverless/index.js +16 -0
- package/serverless/rpc-provider.d.ts +1 -0
- package/serverless/rpc-provider.js +5 -0
- package/serverless-template/_utils/ed-config.ts +5 -0
- package/serverless-template/_utils/fetch-wordpress-props.ts +30 -6
- package/serverless-template/next.config.js +63 -52
- package/serverless-template/pages/_app.tsx +0 -2
- package/serverless-template/pages/_document.tsx +19 -0
- package/style/createStitches.d.ts +75 -6
- package/style/createStitches.js +151 -45
- package/utils/getRepoName.d.ts +2 -2
- package/utils/getRepoName.js +14 -52
- package/cli/prepare-next.d.ts +0 -0
- package/cli/prepare-next.js +0 -1
- package/fields/ImageWell.d.ts +0 -8
- package/fields/ImageWell.js +0 -64
- package/serverless-template/package-lock.json +0 -641
|
@@ -10,6 +10,25 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
+
if (mod && mod.__esModule) return mod;
|
|
27
|
+
var result = {};
|
|
28
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
+
__setModuleDefault(result, mod);
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
13
32
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
33
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
34
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -46,6 +65,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
46
65
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
66
|
}
|
|
48
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
|
+
};
|
|
49
77
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
78
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
79
|
};
|
|
@@ -59,65 +87,105 @@ var fs_1 = require("fs");
|
|
|
59
87
|
var manifest_blocks_1 = require("../manifests/manifest-blocks");
|
|
60
88
|
var promises_1 = require("fs/promises");
|
|
61
89
|
var manifest_views_1 = require("../manifests/manifest-views");
|
|
90
|
+
var getRepoName_1 = require("../../utils/getRepoName");
|
|
91
|
+
function requireConfig(dir) {
|
|
92
|
+
var configPath = (0, path_1.resolve)(dir, "ed.config.json");
|
|
93
|
+
return require(configPath);
|
|
94
|
+
}
|
|
62
95
|
function createNextApp(opts) {
|
|
96
|
+
var _a;
|
|
63
97
|
return __awaiter(this, void 0, void 0, function () {
|
|
64
|
-
var serverlessDirectory;
|
|
65
|
-
return __generator(this, function (
|
|
66
|
-
switch (
|
|
98
|
+
var isVercel, serverlessDirectory, sendSignal, repoName, port;
|
|
99
|
+
return __generator(this, function (_b) {
|
|
100
|
+
switch (_b.label) {
|
|
67
101
|
case 0:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
102
|
+
isVercel = process.env.VERCEL;
|
|
103
|
+
serverlessDirectory = isVercel ? opts.baseDirectory : (0, path_1.resolve)(opts.baseDirectory, ".serverless");
|
|
104
|
+
sendSignal = opts.sendSignal || (function () { });
|
|
105
|
+
sendSignal({ code: "preparing" });
|
|
106
|
+
repoName = (0, getRepoName_1.getRepoName)(opts.baseDirectory);
|
|
107
|
+
if (!!isVercel) return [3 /*break*/, 2];
|
|
108
|
+
return [4 /*yield*/, clean(serverlessDirectory)];
|
|
73
109
|
case 1:
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
];
|
|
80
|
-
case 2:
|
|
81
|
-
// Copy the template folder
|
|
82
|
-
_a.sent();
|
|
110
|
+
_b.sent();
|
|
111
|
+
_b.label = 2;
|
|
112
|
+
case 2:
|
|
113
|
+
// Copy the template folder
|
|
114
|
+
return [4 /*yield*/, copyTemplate(serverlessDirectory)
|
|
83
115
|
// Update package.json
|
|
84
|
-
|
|
85
|
-
// Update packages
|
|
86
|
-
// TODO: On vercel, can we maybe just symlink or copy node_modules?
|
|
87
|
-
];
|
|
116
|
+
];
|
|
88
117
|
case 3:
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return [4 /*yield*/, updatePackages(serverlessDirectory)
|
|
94
|
-
// Symlink important files and directories
|
|
95
|
-
];
|
|
118
|
+
// Copy the template folder
|
|
119
|
+
_b.sent();
|
|
120
|
+
if (!!isVercel) return [3 /*break*/, 5];
|
|
121
|
+
return [4 /*yield*/, updatePackagesFile(opts.baseDirectory, serverlessDirectory)];
|
|
96
122
|
case 4:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
_a.sent();
|
|
100
|
-
// Symlink important files and directories
|
|
101
|
-
return [4 /*yield*/, syncFiles(opts.baseDirectory, serverlessDirectory)
|
|
102
|
-
// Create manifests
|
|
103
|
-
];
|
|
123
|
+
_b.sent();
|
|
124
|
+
_b.label = 5;
|
|
104
125
|
case 5:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
126
|
+
if (!!isVercel) return [3 /*break*/, 9];
|
|
127
|
+
// Sync important files during development, as they change
|
|
128
|
+
return [4 /*yield*/, syncFiles(opts.baseDirectory, serverlessDirectory, __spreadArray([
|
|
129
|
+
"blocks/**/*",
|
|
130
|
+
"components/**/*",
|
|
131
|
+
"hooks/**/*",
|
|
132
|
+
"queries/**/*",
|
|
133
|
+
".env",
|
|
134
|
+
"views/**/*",
|
|
135
|
+
"theme.css.tsx",
|
|
136
|
+
"types.graphql.ts",
|
|
137
|
+
"types.views.ts",
|
|
138
|
+
"types.blocks.ts",
|
|
139
|
+
"utils/**/*",
|
|
140
|
+
"ed.config.json"
|
|
141
|
+
], (((_a = requireConfig(opts.baseDirectory).serverless) === null || _a === void 0 ? void 0 : _a.devAssets) || []), true))
|
|
142
|
+
// Also sync APIs into the APIs folder
|
|
143
|
+
];
|
|
111
144
|
case 6:
|
|
112
|
-
|
|
113
|
-
|
|
145
|
+
// Sync important files during development, as they change
|
|
146
|
+
_b.sent();
|
|
147
|
+
// Also sync APIs into the APIs folder
|
|
148
|
+
return [4 /*yield*/, syncFiles(opts.baseDirectory, (0, path_1.join)(serverlessDirectory, "pages/"), ["api/**/*"])
|
|
149
|
+
// And public folder
|
|
150
|
+
];
|
|
114
151
|
case 7:
|
|
115
|
-
|
|
116
|
-
|
|
152
|
+
// Also sync APIs into the APIs folder
|
|
153
|
+
_b.sent();
|
|
154
|
+
// And public folder
|
|
155
|
+
return [4 /*yield*/, syncFiles((0, path_1.join)(opts.baseDirectory, "assets"), (0, path_1.join)(serverlessDirectory, "public/wp-content/themes/".concat(repoName.repoName, "/assets")), ["**/*"])];
|
|
117
156
|
case 8:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
157
|
+
// And public folder
|
|
158
|
+
_b.sent();
|
|
159
|
+
_b.label = 9;
|
|
160
|
+
case 9:
|
|
161
|
+
if (!!isVercel) return [3 /*break*/, 11];
|
|
162
|
+
sendSignal({ code: "packaging" });
|
|
163
|
+
return [4 /*yield*/, updatePackages(serverlessDirectory)];
|
|
164
|
+
case 10:
|
|
165
|
+
_b.sent();
|
|
166
|
+
_b.label = 11;
|
|
167
|
+
case 11:
|
|
168
|
+
sendSignal({ code: "compiling" });
|
|
169
|
+
// Create manifests
|
|
170
|
+
initManifests(serverlessDirectory, opts.dev);
|
|
171
|
+
if (!opts.dev) return [3 /*break*/, 14];
|
|
172
|
+
return [4 /*yield*/, getPort(3000)];
|
|
173
|
+
case 12:
|
|
174
|
+
port = _b.sent();
|
|
175
|
+
sendSignal({ code: "url", url: "http://127.0.0.1:".concat(port) });
|
|
176
|
+
return [4 /*yield*/, devNext(serverlessDirectory, port)
|
|
177
|
+
// await runScript(serverlessDirectory, "dev")
|
|
178
|
+
];
|
|
179
|
+
case 13:
|
|
180
|
+
_b.sent();
|
|
181
|
+
return [3 /*break*/, 16];
|
|
182
|
+
case 14:
|
|
183
|
+
if (!opts.build) return [3 /*break*/, 16];
|
|
184
|
+
return [4 /*yield*/, runScript(serverlessDirectory, "build")];
|
|
185
|
+
case 15:
|
|
186
|
+
_b.sent();
|
|
187
|
+
_b.label = 16;
|
|
188
|
+
case 16: return [2 /*return*/];
|
|
121
189
|
}
|
|
122
190
|
});
|
|
123
191
|
});
|
|
@@ -152,7 +220,6 @@ function copyTemplate(targetFolder) {
|
|
|
152
220
|
switch (_a.label) {
|
|
153
221
|
case 0:
|
|
154
222
|
sourceFolder = (0, path_1.resolve)(__dirname, "../../serverless-template");
|
|
155
|
-
console.log("Copying from", sourceFolder, "to", targetFolder);
|
|
156
223
|
(0, fs_extra_1.mkdirp)(targetFolder);
|
|
157
224
|
return [4 /*yield*/, (0, glob_promise_1.default)((0, path_1.resolve)(sourceFolder, "**/*.*"))];
|
|
158
225
|
case 1:
|
|
@@ -160,9 +227,6 @@ function copyTemplate(targetFolder) {
|
|
|
160
227
|
return [4 /*yield*/, Promise.all(files.map(function (src) {
|
|
161
228
|
var dest = src.replace(sourceFolder, targetFolder);
|
|
162
229
|
return (0, fs_extra_1.copy)(src, dest);
|
|
163
|
-
// return new Promise((resolve) => {
|
|
164
|
-
// console.log("Copy", src, "to", dest)
|
|
165
|
-
// })
|
|
166
230
|
}))];
|
|
167
231
|
case 2:
|
|
168
232
|
_a.sent();
|
|
@@ -205,34 +269,68 @@ function updatePackagesFile(sourceFolder, targetFolder) {
|
|
|
205
269
|
});
|
|
206
270
|
});
|
|
207
271
|
}
|
|
208
|
-
function syncFiles(sourceFolder, targetFolder) {
|
|
272
|
+
function syncFiles(sourceFolder, targetFolder, patterns) {
|
|
209
273
|
return __awaiter(this, void 0, void 0, function () {
|
|
210
|
-
var
|
|
274
|
+
var _this = this;
|
|
275
|
+
return __generator(this, function (_a) {
|
|
276
|
+
return [2 /*return*/, new Promise(function (ready) { return __awaiter(_this, void 0, void 0, function () {
|
|
277
|
+
var chokidar;
|
|
278
|
+
return __generator(this, function (_a) {
|
|
279
|
+
switch (_a.label) {
|
|
280
|
+
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("chokidar")); })];
|
|
281
|
+
case 1:
|
|
282
|
+
chokidar = (_a.sent()).default;
|
|
283
|
+
chokidar
|
|
284
|
+
.watch(patterns, {
|
|
285
|
+
cwd: sourceFolder,
|
|
286
|
+
})
|
|
287
|
+
.on("add", function (path) {
|
|
288
|
+
(0, fs_extra_1.copy)((0, path_1.join)(sourceFolder, path), (0, path_1.join)(targetFolder, path));
|
|
289
|
+
})
|
|
290
|
+
.on("unlink", function (path) {
|
|
291
|
+
(0, fs_extra_1.remove)((0, path_1.join)(targetFolder, path));
|
|
292
|
+
})
|
|
293
|
+
.on("change", function (path) {
|
|
294
|
+
(0, fs_extra_1.copy)((0, path_1.join)(sourceFolder, path), (0, path_1.join)(targetFolder, path));
|
|
295
|
+
})
|
|
296
|
+
.on("ready", function () {
|
|
297
|
+
ready(undefined);
|
|
298
|
+
});
|
|
299
|
+
return [2 /*return*/];
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
}); })];
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
function devNext(dir, port) {
|
|
307
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
308
|
+
var createServer, parse, next, app, handle;
|
|
211
309
|
return __generator(this, function (_a) {
|
|
212
310
|
switch (_a.label) {
|
|
213
|
-
case 0:
|
|
214
|
-
links = [
|
|
215
|
-
"blocks",
|
|
216
|
-
"components",
|
|
217
|
-
"hooks",
|
|
218
|
-
"queries",
|
|
219
|
-
".env",
|
|
220
|
-
"views",
|
|
221
|
-
"theme.css.tsx",
|
|
222
|
-
"types.graphql.ts",
|
|
223
|
-
"types.views.ts",
|
|
224
|
-
"types.blocks.ts",
|
|
225
|
-
"utils",
|
|
226
|
-
];
|
|
227
|
-
return [4 /*yield*/, Promise.all(links.map(function (file) {
|
|
228
|
-
var src = (0, path_1.resolve)(sourceFolder, file);
|
|
229
|
-
var dest = (0, path_1.resolve)(targetFolder, file);
|
|
230
|
-
if ((0, fs_1.existsSync)(src)) {
|
|
231
|
-
return (0, fs_extra_1.copy)(src, dest);
|
|
232
|
-
}
|
|
233
|
-
}))];
|
|
311
|
+
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("http")); })];
|
|
234
312
|
case 1:
|
|
235
|
-
_a.sent();
|
|
313
|
+
createServer = (_a.sent()).createServer;
|
|
314
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("url")); })];
|
|
315
|
+
case 2:
|
|
316
|
+
parse = (_a.sent()).parse;
|
|
317
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("next")); })];
|
|
318
|
+
case 3:
|
|
319
|
+
next = (_a.sent()).default;
|
|
320
|
+
app = next({
|
|
321
|
+
dev: true,
|
|
322
|
+
dir: dir,
|
|
323
|
+
minimalMode: true,
|
|
324
|
+
customServer: true,
|
|
325
|
+
port: port,
|
|
326
|
+
});
|
|
327
|
+
handle = app.getRequestHandler();
|
|
328
|
+
app.prepare().then(function () {
|
|
329
|
+
console.log("http://127.0.0.1:".concat(port));
|
|
330
|
+
createServer(function (req, res) {
|
|
331
|
+
handle(req, res, parse(req.url || "", true));
|
|
332
|
+
}).listen(app.port);
|
|
333
|
+
});
|
|
236
334
|
return [2 /*return*/];
|
|
237
335
|
}
|
|
238
336
|
});
|
|
@@ -296,3 +394,41 @@ function initManifests(dir, dev) {
|
|
|
296
394
|
});
|
|
297
395
|
});
|
|
298
396
|
}
|
|
397
|
+
function getPort(port) {
|
|
398
|
+
if (port === void 0) { port = 3000; }
|
|
399
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
400
|
+
var createServer, p;
|
|
401
|
+
var _this = this;
|
|
402
|
+
return __generator(this, function (_a) {
|
|
403
|
+
switch (_a.label) {
|
|
404
|
+
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("http")); })];
|
|
405
|
+
case 1:
|
|
406
|
+
createServer = (_a.sent()).createServer;
|
|
407
|
+
for (p = port; p < port + 100; p++) { }
|
|
408
|
+
return [4 /*yield*/, new Promise(function (resolve) {
|
|
409
|
+
var server = createServer();
|
|
410
|
+
server.listen(port, function () {
|
|
411
|
+
server.once("close", function () {
|
|
412
|
+
resolve(port);
|
|
413
|
+
});
|
|
414
|
+
server.close();
|
|
415
|
+
});
|
|
416
|
+
server.on("error", function () { return __awaiter(_this, void 0, void 0, function () {
|
|
417
|
+
var _a;
|
|
418
|
+
return __generator(this, function (_b) {
|
|
419
|
+
switch (_b.label) {
|
|
420
|
+
case 0:
|
|
421
|
+
_a = resolve;
|
|
422
|
+
return [4 /*yield*/, getPort(port + 1)];
|
|
423
|
+
case 1:
|
|
424
|
+
_a.apply(void 0, [_b.sent()]);
|
|
425
|
+
return [2 /*return*/];
|
|
426
|
+
}
|
|
427
|
+
});
|
|
428
|
+
}); });
|
|
429
|
+
})];
|
|
430
|
+
case 2: return [2 /*return*/, _a.sent()];
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
});
|
|
434
|
+
}
|
|
@@ -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
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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
|
@@ -48,18 +48,37 @@ var ink_1 = require("ink");
|
|
|
48
48
|
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
|
+
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");
|
|
51
58
|
function devCommand(opts) {
|
|
59
|
+
var _a;
|
|
52
60
|
return __awaiter(this, void 0, void 0, function () {
|
|
53
|
-
var themeName, enableFrontend, enableAdmin, enableCodegen, frontendObservable, adminObservable, codegenObservable;
|
|
54
|
-
return __generator(this, function (
|
|
55
|
-
switch (
|
|
56
|
-
case 0:
|
|
61
|
+
var configResult, config, themeName, enableFrontend, enableAdmin, enableCodegen, enableServerless, frontendObservable, adminObservable, codegenObservable, configChanged, serverlessObservable;
|
|
62
|
+
return __generator(this, function (_b) {
|
|
63
|
+
switch (_b.label) {
|
|
64
|
+
case 0:
|
|
65
|
+
(0, create_schema_file_1.createConfigSchemaFile)(path_1.default.resolve(process.cwd(), ".ed.config.schema.json"));
|
|
66
|
+
(0, build_favicon_1.buildFavicon)().catch(function () { });
|
|
67
|
+
return [4 /*yield*/, (0, promptIfRepoNameIncorrect_1.promptIfRepoThemeMismatch)()];
|
|
57
68
|
case 1:
|
|
58
|
-
|
|
69
|
+
_b.sent();
|
|
70
|
+
configResult = (0, get_config_1.getEDConfig)();
|
|
71
|
+
if (!configResult.success) {
|
|
72
|
+
(0, print_zod_errors_1.printZodErrors)(configResult.error);
|
|
73
|
+
console.log("\nPlease fix the above config errors, and restart the dev command.");
|
|
74
|
+
return [2 /*return*/];
|
|
75
|
+
}
|
|
76
|
+
config = configResult.data;
|
|
59
77
|
themeName = path_1.default.basename(process.cwd());
|
|
60
78
|
enableFrontend = !opts.mode || opts.mode === "frontend";
|
|
61
79
|
enableAdmin = !opts.mode || opts.mode === "admin";
|
|
62
80
|
enableCodegen = !opts.mode || opts.mode === "codegen";
|
|
81
|
+
enableServerless = (_a = config.serverless) === null || _a === void 0 ? void 0 : _a.enabled;
|
|
63
82
|
frontendObservable = enableFrontend
|
|
64
83
|
? (0, create_webpack_worker_1.createWebpackWorker)({
|
|
65
84
|
title: "Frontend Bundle",
|
|
@@ -93,9 +112,13 @@ function devCommand(opts) {
|
|
|
93
112
|
retainLog: opts.retainLog,
|
|
94
113
|
})
|
|
95
114
|
: undefined;
|
|
96
|
-
|
|
115
|
+
configChanged = new Observable_1.Observable(false);
|
|
116
|
+
(0, fs_extra_1.watchFile)((0, get_config_1.getEDConfigFile)(), {}, function () {
|
|
117
|
+
configChanged.update(true);
|
|
118
|
+
});
|
|
119
|
+
serverlessObservable = enableServerless ? (0, create_serverless_dev_worker_1.createServerlessWorker)() : undefined;
|
|
97
120
|
// Render output to screen
|
|
98
|
-
(0, ink_1.render)((0, jsx_runtime_1.jsx)(DevCLIDisplay_1.DevCLIDisplay, { bundles: [frontendObservable, adminObservable].filter(Boolean), codegen: codegenObservable }, void 0));
|
|
121
|
+
(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));
|
|
99
122
|
return [2 /*return*/];
|
|
100
123
|
}
|
|
101
124
|
});
|
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();
|
package/cli/cli.js
CHANGED
|
@@ -60,25 +60,33 @@ program
|
|
|
60
60
|
program
|
|
61
61
|
.command("build")
|
|
62
62
|
.description("Build in production mode")
|
|
63
|
-
.option("-s, --serverless", 'Build in "serverless" mode')
|
|
64
63
|
.action(function (options) {
|
|
65
|
-
(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
});
|
|
64
|
+
if (process.env.VERCEL) {
|
|
65
|
+
(0, create_next_app_1.createNextApp)({
|
|
66
|
+
baseDirectory: process.cwd(),
|
|
67
|
+
dev: false,
|
|
68
|
+
build: true,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
(0, build_prod_1.prodCommand)({
|
|
73
|
+
serverless: options.serverless,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
78
76
|
});
|
|
77
|
+
// program
|
|
78
|
+
// .command("vercel-build")
|
|
79
|
+
// .description("Create and build a Next.js project in .serverless")
|
|
80
|
+
// .action((options) => {
|
|
81
|
+
// createNextApp({
|
|
82
|
+
// baseDirectory: process.cwd(),
|
|
83
|
+
// dev: false,
|
|
84
|
+
// build: true,
|
|
85
|
+
// })
|
|
86
|
+
// })
|
|
79
87
|
program
|
|
80
88
|
.command("next")
|
|
81
|
-
.description("
|
|
89
|
+
.description("Run the serverless app in standalone mode")
|
|
82
90
|
.action(function (options) {
|
|
83
91
|
(0, create_next_app_1.createNextApp)({
|
|
84
92
|
baseDirectory: process.cwd(),
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CodegenState } from "../../../build/state/codegen-state";
|
|
3
3
|
import { CompilerState } from "../../../build/state/compiler-state";
|
|
4
|
+
import { ServerlessState } from "../../../build/state/serverless-state";
|
|
4
5
|
import { Observable } from "../../../utils/Observable";
|
|
5
6
|
declare type Props = {
|
|
6
7
|
bundles: Observable<CompilerState>[];
|
|
8
|
+
serverless?: Observable<ServerlessState>;
|
|
7
9
|
codegen?: Observable<CodegenState>;
|
|
10
|
+
configChanged: Observable<boolean>;
|
|
8
11
|
};
|
|
9
12
|
export declare function DevCLIDisplay(props: Props): JSX.Element;
|
|
10
13
|
export {};
|
|
@@ -14,10 +14,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
14
14
|
exports.DevCLIDisplay = void 0;
|
|
15
15
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
16
|
var ink_1 = require("ink");
|
|
17
|
+
var react_1 = require("react");
|
|
18
|
+
var useObservable_1 = require("../../../utils/useObservable");
|
|
17
19
|
var BundleDisplay_1 = require("./BundleDisplay");
|
|
18
20
|
var CodegenDisplay_1 = require("./CodegenDisplay");
|
|
19
21
|
var Fullscreen_1 = require("./Fullscreen");
|
|
22
|
+
var ServerlessDisplay_1 = require("./ServerlessDisplay");
|
|
23
|
+
var MODE_LABELS = {
|
|
24
|
+
serverless: "Serverless Log",
|
|
25
|
+
bundles: "Build Log",
|
|
26
|
+
};
|
|
20
27
|
function DevCLIDisplay(props) {
|
|
21
|
-
|
|
28
|
+
var _a = (0, react_1.useState)("bundles"), mode = _a[0], setMode = _a[1];
|
|
29
|
+
(0, ink_1.useInput)(function (ev, key) {
|
|
30
|
+
if (ev.charAt(0) === "z") {
|
|
31
|
+
if (props.serverless) {
|
|
32
|
+
setMode(function (mode) { return (mode === "bundles" ? "serverless" : "bundles"); });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else if (ev.charAt(0) === "c" || ev.charAt(0) === "q" || key.escape) {
|
|
36
|
+
process.exit(0);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
var configChanged = (0, useObservable_1.useObservable)(props.configChanged);
|
|
40
|
+
return ((0, jsx_runtime_1.jsx)(Fullscreen_1.Fullscreen, { children: (0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ width: "100%", height: "100%", flexDirection: "column", minHeight: "100%" }, { children: [mode === "bundles" ? ((0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ width: "100%", flexGrow: 1, flexDirection: "column" }, { children: [props.bundles.map(function (bundle, i) { return ((0, jsx_runtime_1.jsx)(BundleDisplay_1.BundleDisplay, { bundle: bundle }, i)); }), props.codegen && (0, jsx_runtime_1.jsx)(CodegenDisplay_1.CodegenDisplay, { codegen: props.codegen }, void 0), props.serverless && (0, jsx_runtime_1.jsx)(ServerlessDisplay_1.ServerlessDisplay, { serverless: props.serverless }, void 0)] }), void 0)) : mode === "serverless" ? ((0, jsx_runtime_1.jsx)(ink_1.Box, __assign({ width: "100%", flexGrow: 1, flexDirection: "column" }, { children: (0, jsx_runtime_1.jsx)(ServerlessDisplay_1.ServerlessLog, { serverless: props.serverless }, void 0) }), void 0)) : null, configChanged && ((0, jsx_runtime_1.jsx)(ink_1.Box, __assign({ paddingX: 1, borderColor: "yellow", borderStyle: "round" }, { children: (0, jsx_runtime_1.jsxs)(ink_1.Text, __assign({ color: "yellow" }, { children: ["\uD83D\uDEA8 Change detected in ", (0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ color: "yellowBright" }, { children: "ed.config.json" }), void 0), " \u2014 Please restart", " ", (0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ color: "yellowBright" }, { children: "yarn dev" }), void 0)] }), void 0) }), void 0)), (0, jsx_runtime_1.jsxs)(ink_1.Box, __assign({ paddingX: 1, borderColor: "cyan", borderStyle: "round", flexDirection: "row", justifyContent: "space-between" }, { children: [(0, jsx_runtime_1.jsx)(ink_1.Box, { children: (0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ bold: true, color: "cyanBright" }, { children: MODE_LABELS[mode] }), void 0) }, void 0), (0, jsx_runtime_1.jsxs)(ink_1.Box, { children: [props.serverless && ((0, jsx_runtime_1.jsxs)(ink_1.Text, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ bold: true, color: "white" }, { children: "z" }), void 0), ": Toggle Serverless Log", " "] }, void 0)), (0, jsx_runtime_1.jsxs)(ink_1.Text, { children: [(0, jsx_runtime_1.jsx)(ink_1.Text, __assign({ bold: true, color: "white" }, { children: "q" }), void 0), ": Quit"] }, void 0)] }, void 0)] }), void 0)] }), void 0) }, void 0));
|
|
22
41
|
}
|
|
23
42
|
exports.DevCLIDisplay = DevCLIDisplay;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ServerlessState } from "../../../build/state/serverless-state";
|
|
3
|
+
import { Observable } from "../../../utils/Observable";
|
|
4
|
+
export declare function ServerlessDisplay(props: {
|
|
5
|
+
serverless: Observable<ServerlessState>;
|
|
6
|
+
}): JSX.Element;
|
|
7
|
+
export declare function ServerlessLog(props: {
|
|
8
|
+
serverless: Observable<ServerlessState>;
|
|
9
|
+
}): JSX.Element;
|