eddev 0.2.0-beta.0 → 0.2.0-beta.12
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 +3 -0
- package/build/serverless/create-next-app.js +213 -70
- 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/prepare-next.d.ts → build/workers/serverless-worker-script.d.ts} +0 -0
- package/{cli/prepare-next.js → build/workers/serverless-worker-script.js} +0 -0
- package/cli/build.dev.js +30 -7
- package/cli/build.prod.js +5 -0
- package/cli/cli.js +24 -5
- 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/components/NextRouter.d.ts +9 -0
- package/components/NextRouter.js +36 -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/BreakpointItemHeader.d.ts +11 -0
- package/dev-ui/components/BreakpointItemHeader.js +50 -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 +19 -0
- package/dev-ui/components/Launcher.d.ts +9 -0
- package/dev-ui/components/Launcher.js +118 -0
- package/dev-ui/components/PanelWrapper.d.ts +4 -0
- package/dev-ui/components/PanelWrapper.js +21 -0
- package/dev-ui/components/Pill.d.ts +0 -0
- package/dev-ui/components/Pill.js +1 -0
- package/dev-ui/components/SpacingEditor.d.ts +2 -0
- package/dev-ui/components/SpacingEditor.js +10 -0
- package/dev-ui/components/Text.d.ts +39 -0
- package/dev-ui/components/Text.js +13 -0
- package/dev-ui/components/panels/SpacingEditor.d.ts +2 -0
- package/dev-ui/components/panels/SpacingEditor.js +56 -0
- package/dev-ui/hooks/usePersistState.d.ts +1 -0
- package/dev-ui/hooks/usePersistState.js +28 -0
- package/dev-ui/icons.d.ts +11 -0
- package/dev-ui/icons.js +25 -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 +31 -0
- package/dev-ui/theme.d.ts +135 -0
- package/dev-ui/theme.js +45 -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 +32 -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 +39 -0
- package/serverless-template/next.config.js +63 -42
- package/serverless-template/pages/[...slug].tsx +6 -7
- package/serverless-template/pages/_app.tsx +9 -5
- package/serverless-template/pages/_document.tsx +19 -0
- package/serverless-template/pages/index.tsx +3 -2
- package/style/createStitches.d.ts +63 -1
- package/style/createStitches.js +182 -40
- package/utils/getRepoName.d.ts +2 -2
- package/utils/getRepoName.js +14 -52
- package/build/prepare-next.d.ts +0 -1
- package/build/prepare-next.js +0 -5
- 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,59 +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
|
-
|
|
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
|
+
];
|
|
144
|
+
case 6:
|
|
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
|
+
];
|
|
151
|
+
case 7:
|
|
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")), ["**/*"])];
|
|
156
|
+
case 8:
|
|
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" });
|
|
107
169
|
// Create manifests
|
|
108
170
|
initManifests(serverlessDirectory, opts.dev);
|
|
109
|
-
|
|
110
|
-
return [4 /*yield*/,
|
|
111
|
-
case
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return [
|
|
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*/];
|
|
115
189
|
}
|
|
116
190
|
});
|
|
117
191
|
});
|
|
@@ -146,7 +220,6 @@ function copyTemplate(targetFolder) {
|
|
|
146
220
|
switch (_a.label) {
|
|
147
221
|
case 0:
|
|
148
222
|
sourceFolder = (0, path_1.resolve)(__dirname, "../../serverless-template");
|
|
149
|
-
console.log("Copying from", sourceFolder, "to", targetFolder);
|
|
150
223
|
(0, fs_extra_1.mkdirp)(targetFolder);
|
|
151
224
|
return [4 /*yield*/, (0, glob_promise_1.default)((0, path_1.resolve)(sourceFolder, "**/*.*"))];
|
|
152
225
|
case 1:
|
|
@@ -154,9 +227,6 @@ function copyTemplate(targetFolder) {
|
|
|
154
227
|
return [4 /*yield*/, Promise.all(files.map(function (src) {
|
|
155
228
|
var dest = src.replace(sourceFolder, targetFolder);
|
|
156
229
|
return (0, fs_extra_1.copy)(src, dest);
|
|
157
|
-
// return new Promise((resolve) => {
|
|
158
|
-
// console.log("Copy", src, "to", dest)
|
|
159
|
-
// })
|
|
160
230
|
}))];
|
|
161
231
|
case 2:
|
|
162
232
|
_a.sent();
|
|
@@ -199,33 +269,68 @@ function updatePackagesFile(sourceFolder, targetFolder) {
|
|
|
199
269
|
});
|
|
200
270
|
});
|
|
201
271
|
}
|
|
202
|
-
function syncFiles(sourceFolder, targetFolder) {
|
|
272
|
+
function syncFiles(sourceFolder, targetFolder, patterns) {
|
|
273
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
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) {
|
|
203
307
|
return __awaiter(this, void 0, void 0, function () {
|
|
204
|
-
var
|
|
308
|
+
var createServer, parse, next, app, handle;
|
|
205
309
|
return __generator(this, function (_a) {
|
|
206
310
|
switch (_a.label) {
|
|
207
|
-
case 0:
|
|
208
|
-
links = [
|
|
209
|
-
"blocks",
|
|
210
|
-
"components",
|
|
211
|
-
"hooks",
|
|
212
|
-
"queries",
|
|
213
|
-
".env",
|
|
214
|
-
"views",
|
|
215
|
-
"theme.css.tsx",
|
|
216
|
-
"types.graphql.ts",
|
|
217
|
-
"types.views.ts",
|
|
218
|
-
"types.blocks.ts",
|
|
219
|
-
];
|
|
220
|
-
return [4 /*yield*/, Promise.all(links.map(function (file) {
|
|
221
|
-
var src = (0, path_1.resolve)(sourceFolder, file);
|
|
222
|
-
var dest = (0, path_1.resolve)(targetFolder, file);
|
|
223
|
-
if ((0, fs_1.existsSync)(src)) {
|
|
224
|
-
return (0, fs_extra_1.copy)(src, dest);
|
|
225
|
-
}
|
|
226
|
-
}))];
|
|
311
|
+
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("http")); })];
|
|
227
312
|
case 1:
|
|
228
|
-
_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
|
+
});
|
|
229
334
|
return [2 /*return*/];
|
|
230
335
|
}
|
|
231
336
|
});
|
|
@@ -289,3 +394,41 @@ function initManifests(dir, dev) {
|
|
|
289
394
|
});
|
|
290
395
|
});
|
|
291
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();
|
|
File without changes
|
|
File without changes
|
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,19 +60,38 @@ 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
|
-
|
|
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
|
+
}
|
|
68
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
|
+
// })
|
|
69
87
|
program
|
|
70
88
|
.command("next")
|
|
71
|
-
.description("
|
|
89
|
+
.description("Run the serverless app in standalone mode")
|
|
72
90
|
.action(function (options) {
|
|
73
91
|
(0, create_next_app_1.createNextApp)({
|
|
74
92
|
baseDirectory: process.cwd(),
|
|
75
93
|
dev: true,
|
|
94
|
+
build: false,
|
|
76
95
|
});
|
|
77
96
|
});
|
|
78
97
|
program
|
|
@@ -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;
|