eddev 0.1.48 → 0.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/build/file-tree.js +4 -0
  2. package/build/get-webpack-config.js +53 -143
  3. package/build/manifests/manifest-blocks.d.ts +12 -0
  4. package/build/manifests/manifest-blocks.js +61 -0
  5. package/build/manifests/manifest-fields.d.ts +12 -0
  6. package/build/manifests/manifest-fields.js +42 -0
  7. package/build/manifests/manifest-views.d.ts +12 -0
  8. package/build/manifests/manifest-views.js +49 -0
  9. package/build/manifests/manifest.d.ts +11 -0
  10. package/build/manifests/manifest.js +96 -0
  11. package/build/prepare-next.d.ts +1 -0
  12. package/build/prepare-next.js +5 -0
  13. package/build/serverless/create-next-app.d.ts +6 -0
  14. package/build/serverless/create-next-app.js +291 -0
  15. package/cli/cli.js +10 -0
  16. package/cli/prepare-next.d.ts +0 -0
  17. package/cli/prepare-next.js +1 -0
  18. package/components/ServerlessRouter.d.ts +0 -0
  19. package/components/ServerlessRouter.js +1 -0
  20. package/dynamic/dynamic-component.d.ts +9 -0
  21. package/dynamic/dynamic-component.js +8 -0
  22. package/dynamic/index.d.ts +1 -0
  23. package/dynamic/index.js +13 -0
  24. package/fields/installFieldTypes.js +17 -5
  25. package/gravityforms/useGravityForm.js +6 -4
  26. package/hooks/queryUtils.js +2 -2
  27. package/hooks/useAppData.js +16 -4
  28. package/package.json +5 -1
  29. package/routing/routing.js +5 -0
  30. package/serverless-template/README.md +34 -0
  31. package/serverless-template/global.d.ts +9 -0
  32. package/serverless-template/next-env.d.ts +3 -0
  33. package/serverless-template/next.config.js +48 -0
  34. package/serverless-template/null.ts +1 -0
  35. package/serverless-template/package-lock.json +641 -0
  36. package/serverless-template/package.json +19 -0
  37. package/serverless-template/pages/[...slug].tsx +21 -0
  38. package/serverless-template/pages/_app.tsx +28 -0
  39. package/serverless-template/pages/api/hello.ts +10 -0
  40. package/serverless-template/pages/api/rest/[...method].ts +38 -0
  41. package/serverless-template/pages/index.tsx +11 -0
  42. package/serverless-template/tsconfig.json +37 -0
  43. package/style/createStitches.d.ts +0 -1
  44. package/utils/serverlessAppContext.d.ts +3 -0
  45. package/utils/serverlessAppContext.js +6 -0
  46. package/fields/ImageWell.d.ts +0 -8
  47. package/fields/ImageWell.js +0 -64
@@ -24,6 +24,10 @@ function watchFileTree(pattern, callback) {
24
24
  files.splice(i, 1);
25
25
  if (ready)
26
26
  callback(files);
27
+ })
28
+ .on("change", function () {
29
+ if (ready)
30
+ callback(files);
27
31
  })
28
32
  .on("ready", function () {
29
33
  ready = true;
@@ -67,8 +67,6 @@ var webpack_virtual_modules_1 = __importDefault(require("webpack-virtual-modules
67
67
  var friendly_errors_webpack_plugin_1 = __importDefault(require("@soda/friendly-errors-webpack-plugin"));
68
68
  // @ts-ignore
69
69
  var webpack_plugin_1 = __importDefault(require("@loadable/webpack-plugin"));
70
- var file_tree_1 = require("./file-tree");
71
- var change_case_1 = require("change-case");
72
70
  // @ts-ignore
73
71
  var webpack_bundle_analyzer_1 = require("webpack-bundle-analyzer");
74
72
  // @ts-ignore
@@ -76,11 +74,14 @@ var mini_css_extract_plugin_1 = __importDefault(require("mini-css-extract-plugin
76
74
  var autoprefixer_1 = __importDefault(require("autoprefixer"));
77
75
  // Custom Babel plugins
78
76
  var plugin_name_defined_components_1 = __importDefault(require("./babel/plugin-name-defined-components"));
77
+ var manifest_blocks_1 = require("./manifests/manifest-blocks");
78
+ var manifest_fields_1 = require("./manifests/manifest-fields");
79
+ var manifest_views_1 = require("./manifests/manifest-views");
79
80
  function getWebpackConfig(opts) {
80
81
  return __awaiter(this, void 0, void 0, function () {
81
- var compiling, ALIAS, ENTRY, PLUGINS, RULES, DEFINES, VIRTUAL_MODULES, EXTERNALS, virtualModules, isServerless, isBrowser, isSSR, isDev, entryDir, distSuffix, outputFolder, loadableManifestFile, writeVirtualModule, updateTemplateRouter, templateLookupPattern, _a, updateFieldManifest, fieldTypeLookupPattern, _b, updateBlocksManifest, blockLookupManifest, _c, buildID;
82
- return __generator(this, function (_d) {
83
- switch (_d.label) {
82
+ var compiling, ALIAS, ENTRY, PLUGINS, RULES, DEFINES, VIRTUAL_MODULES, EXTERNALS, virtualModules, isServerless, isBrowser, isSSR, isDev, entryDir, distSuffix, outputFolder, loadableManifestFile, writeVirtualModule, manifestLoaders, buildID;
83
+ return __generator(this, function (_a) {
84
+ switch (_a.label) {
84
85
  case 0:
85
86
  compiling = false;
86
87
  ALIAS = {};
@@ -243,146 +244,55 @@ function getWebpackConfig(opts) {
243
244
  VIRTUAL_MODULES[name] = contents;
244
245
  }
245
246
  };
247
+ manifestLoaders = [];
248
+ // Views
246
249
  ALIAS["@manifest/views"] = path_1.default.resolve(opts.baseDirectory, "_view_manifest.js");
247
- updateTemplateRouter = function (fileNames) {
248
- var files = fileNames
249
- .filter(function (file) { return !file.includes("/_app"); })
250
- .map(function (file) {
251
- var relative = path_1.default.relative(opts.baseDirectory, file);
252
- var name = path_1.default.basename(file).replace(/\.(jsx|tsx|ts|js)$/i, "");
253
- var module = JSON.stringify("./" + relative);
254
- var componentName = "View" + (0, change_case_1.pascalCase)(name);
255
- return { relative: relative, name: name, module: module, componentName: componentName };
256
- });
257
- var useLoadableViews = false;
258
- writeVirtualModule(ALIAS["@manifest/views"], "\n ".concat(useLoadableViews && "import loadable from '".concat(require.resolve("@loadable/component"), "';"), "\n import App from ").concat(JSON.stringify("./views/_app.tsx"), "\n\n ").concat(!useLoadableViews
259
- ? files.map(function (_a) {
260
- var componentName = _a.componentName, module = _a.module;
261
- return "import ".concat(componentName, " from ").concat(module);
262
- }).join("\n")
263
- : "", "\n\n export { App }\n\n export default {\n ").concat(files
264
- .map(function (_a) {
265
- var relative = _a.relative, componentName = _a.componentName, module = _a.module;
266
- if (useLoadableViews) {
267
- // In serverless mode, export @loadable components. Script tags will be
268
- // auto-included in output HTML
269
- return "\"".concat(relative, "\": loadable(() => import(").concat(module, "))");
270
- }
271
- else {
272
- // On non-serverless, the templates are bundled straight into the main app.
273
- return "\"".concat(relative, "\": ").concat(componentName);
274
- }
275
- })
276
- .join(",\n"), "\n }\n "));
277
- };
278
- templateLookupPattern = path_1.default.resolve(opts.baseDirectory, "views/**/*.tsx");
279
- if (!opts.isAdmin) return [3 /*break*/, 1];
280
- writeVirtualModule(ALIAS["@manifest/views"], "\n export const App = null\n export default {}\n ");
281
- return [3 /*break*/, 5];
282
- case 1:
283
- if (!isDev) return [3 /*break*/, 3];
284
- return [4 /*yield*/, (0, file_tree_1.watchFileTree)(templateLookupPattern, updateTemplateRouter)];
285
- case 2:
286
- _d.sent();
287
- return [3 /*break*/, 5];
288
- case 3:
289
- _a = updateTemplateRouter;
290
- return [4 /*yield*/, (0, file_tree_1.getFileTree)(templateLookupPattern)];
291
- case 4:
292
- _a.apply(void 0, [_d.sent()]);
293
- _d.label = 5;
294
- case 5:
250
+ manifestLoaders.push((0, manifest_views_1.createViewManifestGenerator)({
251
+ baseDirectory: opts.baseDirectory,
252
+ isAdmin: true,
253
+ isDev: isDev,
254
+ isServerless: isServerless,
255
+ watch: isDev,
256
+ onGenerate: function (manifest) {
257
+ writeVirtualModule(ALIAS["@manifest/views"], manifest);
258
+ },
259
+ }));
260
+ // Field manifest
295
261
  ALIAS["@manifest/fields"] = path_1.default.resolve(opts.baseDirectory, "_fields_manifest.js");
296
- updateFieldManifest = function (fileNames) {
297
- var files = fileNames
298
- .filter(function (file) { return !file.includes("/_app"); })
299
- .map(function (file) {
300
- var relative = path_1.default.relative(opts.baseDirectory, file);
301
- var name = path_1.default.basename(file).replace(/\.(jsx|tsx|ts|js)$/i, "");
302
- var module = JSON.stringify("./" + relative);
303
- var componentName = "FieldType" + (0, change_case_1.pascalCase)(name);
304
- return { relative: relative, name: name, module: module, componentName: componentName };
305
- });
306
- writeVirtualModule(ALIAS["@manifest/fields"], "\n ".concat(files.map(function (_a) {
307
- var componentName = _a.componentName, module = _a.module;
308
- return "import ".concat(componentName, " from ").concat(module);
309
- }).join("\n"), "\n\n export default {\n ").concat(files
310
- .map(function (_a) {
311
- var relative = _a.relative, componentName = _a.componentName, module = _a.module, name = _a.name;
312
- return "\"".concat(name, "\": ").concat(componentName);
313
- })
314
- .join(",\n"), "\n }\n "));
315
- };
316
- fieldTypeLookupPattern = path_1.default.resolve(opts.baseDirectory, "backend/fields/**.tsx");
317
- if (!!opts.isAdmin) return [3 /*break*/, 6];
318
- writeVirtualModule(ALIAS["@manifest/fields"], "\n export default {}\n ");
319
- return [3 /*break*/, 10];
320
- case 6:
321
- if (!isDev) return [3 /*break*/, 8];
322
- return [4 /*yield*/, (0, file_tree_1.watchFileTree)(fieldTypeLookupPattern, updateFieldManifest)];
323
- case 7:
324
- _d.sent();
325
- return [3 /*break*/, 10];
326
- case 8:
327
- _b = updateFieldManifest;
328
- return [4 /*yield*/, (0, file_tree_1.getFileTree)(fieldTypeLookupPattern)];
329
- case 9:
330
- _b.apply(void 0, [_d.sent()]);
331
- _d.label = 10;
332
- case 10:
262
+ if (opts.isAdmin) {
263
+ manifestLoaders.push((0, manifest_fields_1.createFieldManifestGenerator)({
264
+ baseDirectory: opts.baseDirectory,
265
+ isAdmin: true,
266
+ isDev: isDev,
267
+ isServerless: isServerless,
268
+ watch: isDev,
269
+ onGenerate: function (manifest) {
270
+ writeVirtualModule(ALIAS["@manifest/fields"], manifest);
271
+ },
272
+ }));
273
+ }
274
+ else {
275
+ writeVirtualModule(ALIAS["@manifest/fields"], "\n export default {}\n ");
276
+ }
277
+ // Block manifest
333
278
  ALIAS["@manifest/blocks"] = path_1.default.resolve(opts.baseDirectory, "_blocks_manifest.js");
334
- updateBlocksManifest = function (fileNames) {
335
- var files = fileNames
336
- .filter(function (file) { return !file.includes("/_core"); })
337
- .map(function (file) {
338
- var relative = path_1.default.relative(opts.baseDirectory, file);
339
- var name = path_1.default.basename(file).replace(/\.(jsx|tsx|ts|js)$/i, "");
340
- var module = JSON.stringify("./" + relative);
341
- var componentName = (0, change_case_1.pascalCase)(name);
342
- return { relative: relative, name: name, module: module, componentName: componentName };
343
- });
344
- var useLoadableBlocks = false;
345
- if (useLoadableBlocks) {
346
- writeVirtualModule(ALIAS["@manifest/blocks"], "\n import coreBlocks from './blocks/_core.tsx'\n ".concat(!isServerless && "import loadable from '".concat(require.resolve("@loadable/component"), "';"), "\n\n export default {\n ...coreBlocks,\n ").concat(files
347
- .map(function (_a) {
348
- var relative = _a.relative, componentName = _a.componentName, module = _a.module;
349
- var parts = relative.replace(/\.tsx$/, "").split("/");
350
- var blockName = "acf/" + parts.slice(1).join("-");
351
- return "\"".concat(blockName, "\": loadable(() => import(").concat(module, "))");
352
- })
353
- .join(",\n"), "\n }\n "));
354
- }
355
- else {
356
- writeVirtualModule(ALIAS["@manifest/blocks"], "\n import coreBlocks from './blocks/_core.tsx'\n\n ".concat(files
357
- .map(function (_a) {
358
- var relative = _a.relative, componentName = _a.componentName, module = _a.module;
359
- var parts = relative.replace(/\.tsx$/, "").split("/");
360
- var blockName = "acf/" + parts.slice(1).join("-");
361
- return "import ".concat(componentName, " from ").concat(module);
362
- })
363
- .join("\n"), "\n\n export default {\n ...coreBlocks,\n ").concat(files
364
- .map(function (_a) {
365
- var relative = _a.relative, componentName = _a.componentName, module = _a.module;
366
- var parts = relative.replace(/\.tsx$/, "").split("/");
367
- var blockName = "acf/" + parts.slice(1).join("-");
368
- return "\"".concat(blockName, "\": ").concat(componentName);
369
- })
370
- .join(",\n"), "\n }\n "));
371
- }
372
- };
373
- blockLookupManifest = path_1.default.resolve(opts.baseDirectory, "blocks/**/*.tsx");
374
- if (!isDev) return [3 /*break*/, 12];
375
- return [4 /*yield*/, (0, file_tree_1.watchFileTree)(blockLookupManifest, updateBlocksManifest)];
376
- case 11:
377
- _d.sent();
378
- return [3 /*break*/, 14];
379
- case 12:
380
- _c = updateBlocksManifest;
381
- return [4 /*yield*/, (0, file_tree_1.getFileTree)(blockLookupManifest)];
382
- case 13:
383
- _c.apply(void 0, [_d.sent()]);
384
- _d.label = 14;
385
- case 14:
279
+ manifestLoaders.push((0, manifest_blocks_1.createBlockManifestGenerator)({
280
+ baseDirectory: opts.baseDirectory,
281
+ isAdmin: opts.isAdmin,
282
+ isDev: isDev,
283
+ isServerless: isServerless,
284
+ watch: isDev,
285
+ onGenerate: function (manifest) {
286
+ writeVirtualModule(ALIAS["@manifest/blocks"], manifest);
287
+ },
288
+ }));
289
+ // Wait for all manifests to resolve
290
+ return [4 /*yield*/, Promise.all(manifestLoaders)
291
+ // External Gutenberg
292
+ ];
293
+ case 1:
294
+ // Wait for all manifests to resolve
295
+ _a.sent();
386
296
  // External Gutenberg
387
297
  EXTERNALS["@wordpress/components"] = ["window", "wp"];
388
298
  EXTERNALS["@wordpress/element"] = ["window", "wp"];
@@ -404,6 +314,7 @@ function getWebpackConfig(opts) {
404
314
  }
405
315
  // Define some values
406
316
  DEFINES["process.browser"] = JSON.stringify(isBrowser);
317
+ DEFINES["process.serverless"] = "false";
407
318
  DEFINES["process.ssr"] = JSON.stringify(isServerless && !isBrowser);
408
319
  DEFINES["process.LOADABLE_STATS_FILE"] = JSON.stringify(loadableManifestFile);
409
320
  DEFINES["process.dev"] = isDev ? "true" : "false";
@@ -431,7 +342,6 @@ function getWebpackConfig(opts) {
431
342
  output: {
432
343
  filename: "[name].".concat(opts.isAdmin ? "admin" : "frontend", ".js?v=").concat(buildID),
433
344
  chunkFilename: "[name].".concat(opts.isAdmin ? "admin" : "frontend", ".js?v=").concat(buildID),
434
- // publicPath: isDev ? `//127.0.0.1:${opts.hotPort}/` : `/wp-content/themes/${opts.themeName}/dist/${distSuffix}/`,
435
345
  publicPath: "/wp-content/themes/".concat(opts.themeName, "/dist/").concat(distSuffix, "/"),
436
346
  path: outputFolder,
437
347
  globalObject: isSSR ? "this" : "self",
@@ -0,0 +1,12 @@
1
+ declare type Options = {
2
+ baseDirectory: string;
3
+ isAdmin: boolean;
4
+ isDev: boolean;
5
+ isServerless: boolean;
6
+ onGenerate: (value: string) => void;
7
+ watch: boolean;
8
+ };
9
+ export declare function createBlockManifestGenerator(opts: Options): Promise<{
10
+ close(): void;
11
+ }>;
12
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createBlockManifestGenerator = void 0;
7
+ var manifest_1 = require("./manifest");
8
+ var path_1 = __importDefault(require("path"));
9
+ var change_case_1 = require("change-case");
10
+ var fs_1 = require("fs");
11
+ var JSX = /\.(jsx|tsx|ts|js)$/i;
12
+ function createBlockManifestGenerator(opts) {
13
+ return (0, manifest_1.createManifestGenerator)({
14
+ glob: path_1.default.join(opts.baseDirectory, "/blocks/**/*.tsx"),
15
+ onGenerate: opts.onGenerate,
16
+ watch: opts.watch,
17
+ generate: function (fileNames) {
18
+ var files = fileNames
19
+ .filter(function (file) { return !file.includes("/_core"); })
20
+ .map(function (file) {
21
+ var relative = path_1.default.relative(opts.baseDirectory, file).replace(JSX, "");
22
+ var name = path_1.default.basename(file).replace(JSX, "");
23
+ var module = JSON.stringify("./" + relative).replace(JSX, "");
24
+ var componentName = (0, change_case_1.pascalCase)(name);
25
+ // Test if the block has Dynamic: true in the header
26
+ var dynamic = !opts.isAdmin &&
27
+ !!(0, fs_1.readFileSync)(file)
28
+ .toString()
29
+ .match(/\*[\s]*dynamic: true/i);
30
+ return { relative: relative, name: name, module: module, componentName: componentName, dynamic: dynamic };
31
+ });
32
+ return "\n import coreBlocks from './blocks/_core'\n import { dynamic } from 'eddev/dynamic';\n \n ".concat(files
33
+ .map(function (_a) {
34
+ var relative = _a.relative, componentName = _a.componentName, module = _a.module, dynamic = _a.dynamic;
35
+ var parts = relative.replace(/\.tsx$/, "").split("/");
36
+ var blockName = "acf/" + parts.slice(1).join("-");
37
+ if (dynamic) {
38
+ return null;
39
+ }
40
+ else {
41
+ return "import ".concat(componentName, " from ").concat(module);
42
+ }
43
+ })
44
+ .filter(Boolean)
45
+ .join("\n"), "\n \n export default {\n ...coreBlocks,\n ").concat(files
46
+ .map(function (_a) {
47
+ var relative = _a.relative, componentName = _a.componentName, module = _a.module, dynamic = _a.dynamic;
48
+ var parts = relative.replace(/\.tsx$/, "").split("/");
49
+ var blockName = "acf/" + parts.slice(1).join("-");
50
+ if (dynamic) {
51
+ return "\"".concat(blockName, "\": dynamic(() => import(").concat(module, "))");
52
+ }
53
+ else {
54
+ return "\"".concat(blockName, "\": ").concat(componentName);
55
+ }
56
+ })
57
+ .join(",\n"), "\n }\n ");
58
+ },
59
+ });
60
+ }
61
+ exports.createBlockManifestGenerator = createBlockManifestGenerator;
@@ -0,0 +1,12 @@
1
+ declare type Options = {
2
+ baseDirectory: string;
3
+ isAdmin: boolean;
4
+ isDev: boolean;
5
+ isServerless: boolean;
6
+ onGenerate: (value: string) => void;
7
+ watch: boolean;
8
+ };
9
+ export declare function createFieldManifestGenerator(opts: Options): Promise<{
10
+ close(): void;
11
+ }>;
12
+ export {};
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createFieldManifestGenerator = void 0;
7
+ var manifest_1 = require("./manifest");
8
+ var path_1 = __importDefault(require("path"));
9
+ var change_case_1 = require("change-case");
10
+ function createFieldManifestGenerator(opts) {
11
+ return (0, manifest_1.createManifestGenerator)({
12
+ glob: path_1.default.join(opts.baseDirectory, "/backend/fields/**.tsx"),
13
+ onGenerate: opts.onGenerate,
14
+ watch: opts.watch,
15
+ generate: function (fileNames) {
16
+ if (opts.isAdmin) {
17
+ var files = fileNames
18
+ .filter(function (file) { return !file.includes("/_app"); })
19
+ .map(function (file) {
20
+ var relative = path_1.default.relative(opts.baseDirectory, file);
21
+ var name = path_1.default.basename(file).replace(/\.(jsx|tsx|ts|js)$/i, "");
22
+ var module = JSON.stringify("./" + relative);
23
+ var componentName = "FieldType" + (0, change_case_1.pascalCase)(name);
24
+ return { relative: relative, name: name, module: module, componentName: componentName };
25
+ });
26
+ return "\n ".concat(files.map(function (_a) {
27
+ var componentName = _a.componentName, module = _a.module;
28
+ return "import ".concat(componentName, " from ").concat(module);
29
+ }).join("\n"), "\n\n export default {\n ").concat(files
30
+ .map(function (_a) {
31
+ var relative = _a.relative, componentName = _a.componentName, module = _a.module, name = _a.name;
32
+ return "\"".concat(name, "\": ").concat(componentName);
33
+ })
34
+ .join(",\n"), "\n }\n ");
35
+ }
36
+ else {
37
+ return "export default {}";
38
+ }
39
+ },
40
+ });
41
+ }
42
+ exports.createFieldManifestGenerator = createFieldManifestGenerator;
@@ -0,0 +1,12 @@
1
+ declare type Options = {
2
+ baseDirectory: string;
3
+ isAdmin: boolean;
4
+ isDev: boolean;
5
+ isServerless: boolean;
6
+ onGenerate: (value: string) => void;
7
+ watch: boolean;
8
+ };
9
+ export declare function createViewManifestGenerator(opts: Options): Promise<{
10
+ close(): void;
11
+ }>;
12
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createViewManifestGenerator = void 0;
7
+ var manifest_1 = require("./manifest");
8
+ var path_1 = __importDefault(require("path"));
9
+ var change_case_1 = require("change-case");
10
+ var JSX = /\.(jsx|tsx|ts|js)$/i;
11
+ function createViewManifestGenerator(opts) {
12
+ return (0, manifest_1.createManifestGenerator)({
13
+ glob: path_1.default.join(opts.baseDirectory, "/views/**/*.tsx"),
14
+ onGenerate: opts.onGenerate,
15
+ watch: opts.watch,
16
+ generate: function (fileNames) {
17
+ var files = fileNames
18
+ .filter(function (file) { return !file.includes("/_app"); })
19
+ .map(function (file) {
20
+ var relative = path_1.default.relative(opts.baseDirectory, file).replace(JSX, "");
21
+ var name = path_1.default.basename(file).replace(JSX, "");
22
+ var module = JSON.stringify("./" + relative);
23
+ var componentName = "View" + (0, change_case_1.pascalCase)(name);
24
+ return { relative: relative, name: name, module: module, componentName: componentName };
25
+ });
26
+ var useDynamicViews = opts.isServerless;
27
+ return "\n ".concat(useDynamicViews && "import { dynamic } from 'eddev/dynamic';", "\n import App from ").concat(JSON.stringify("./views/_app"), "\n\n ").concat(!useDynamicViews
28
+ ? files.map(function (_a) {
29
+ var componentName = _a.componentName, module = _a.module;
30
+ return "import ".concat(componentName, " from ").concat(module);
31
+ }).join("\n")
32
+ : "", "\n\n export { App }\n\n export default {\n ").concat(files
33
+ .map(function (_a) {
34
+ var relative = _a.relative, componentName = _a.componentName, module = _a.module;
35
+ if (useDynamicViews) {
36
+ // In serverless mode, export @loadable components. Script tags will be
37
+ // auto-included in output HTML
38
+ return "\"".concat(relative, "\": dynamic(() => import(").concat(module, "))");
39
+ }
40
+ else {
41
+ // On non-serverless, the templates are bundled straight into the main app.
42
+ return "\"".concat(relative, "\": ").concat(componentName);
43
+ }
44
+ })
45
+ .join(",\n"), "\n }\n ");
46
+ },
47
+ });
48
+ }
49
+ exports.createViewManifestGenerator = createViewManifestGenerator;
@@ -0,0 +1,11 @@
1
+ declare type Options = {
2
+ glob: string;
3
+ watch: boolean;
4
+ generate: (files: string[]) => Promise<string> | string;
5
+ onGenerate: (value: string) => void;
6
+ };
7
+ declare type ManifestGenerator = {
8
+ close(): void;
9
+ };
10
+ export declare function createManifestGenerator(opts: Options): Promise<ManifestGenerator>;
11
+ export {};
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.createManifestGenerator = void 0;
40
+ var file_tree_1 = require("../file-tree");
41
+ function createManifestGenerator(opts) {
42
+ return __awaiter(this, void 0, void 0, function () {
43
+ var resolvedFirst;
44
+ var _this = this;
45
+ return __generator(this, function (_a) {
46
+ resolvedFirst = false;
47
+ return [2 /*return*/, new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, function () {
48
+ var close, self, files, update;
49
+ var _this = this;
50
+ return __generator(this, function (_a) {
51
+ switch (_a.label) {
52
+ case 0:
53
+ self = {
54
+ close: function () {
55
+ if (close)
56
+ close();
57
+ },
58
+ };
59
+ files = [];
60
+ update = function () { return __awaiter(_this, void 0, void 0, function () {
61
+ var value;
62
+ return __generator(this, function (_a) {
63
+ switch (_a.label) {
64
+ case 0: return [4 /*yield*/, opts.generate(files)];
65
+ case 1:
66
+ value = _a.sent();
67
+ opts.onGenerate(value);
68
+ if (!resolvedFirst) {
69
+ resolvedFirst = true;
70
+ resolve(self);
71
+ }
72
+ return [2 /*return*/];
73
+ }
74
+ });
75
+ }); };
76
+ if (!opts.watch) return [3 /*break*/, 2];
77
+ return [4 /*yield*/, (0, file_tree_1.watchFileTree)(opts.glob, function (updatedFiles) {
78
+ files = updatedFiles;
79
+ update();
80
+ })];
81
+ case 1:
82
+ close = _a.sent();
83
+ return [3 /*break*/, 4];
84
+ case 2: return [4 /*yield*/, (0, file_tree_1.getFileTree)(opts.glob)];
85
+ case 3:
86
+ files = _a.sent();
87
+ update();
88
+ _a.label = 4;
89
+ case 4: return [2 /*return*/];
90
+ }
91
+ });
92
+ }); })];
93
+ });
94
+ });
95
+ }
96
+ exports.createManifestGenerator = createManifestGenerator;
@@ -0,0 +1 @@
1
+ export declare function prepareNextDirectory(): void;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.prepareNextDirectory = void 0;
4
+ function prepareNextDirectory() { }
5
+ exports.prepareNextDirectory = prepareNextDirectory;
@@ -0,0 +1,6 @@
1
+ declare type Options = {
2
+ baseDirectory: string;
3
+ dev: boolean;
4
+ };
5
+ export declare function createNextApp(opts: Options): Promise<void>;
6
+ export {};