@modern-js/app-tools 2.5.1-alpha.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/dist/cjs/analyze/generateCode.js +4 -0
- package/dist/cjs/analyze/getBundleEntry.js +4 -0
- package/dist/cjs/analyze/getClientRoutes/getRoutes.js +4 -0
- package/dist/cjs/analyze/getClientRoutes/getRoutesLegacy.js +4 -0
- package/dist/cjs/analyze/getClientRoutes/utils.js +4 -0
- package/dist/cjs/analyze/getFileSystemEntry.js +4 -0
- package/dist/cjs/analyze/getHtmlTemplate.js +4 -0
- package/dist/cjs/analyze/getServerRoutes.js +4 -0
- package/dist/cjs/analyze/index.js +5 -0
- package/dist/cjs/analyze/isDefaultExportFunction.js +4 -0
- package/dist/cjs/analyze/nestedRoutes.js +4 -0
- package/dist/cjs/analyze/templates.js +5 -1
- package/dist/cjs/analyze/utils.js +4 -0
- package/dist/cjs/builder/builder-webpack/index.js +4 -0
- package/dist/cjs/builder/builder-webpack/webpackPlugins/RouterPlugin.js +4 -0
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +1 -0
- package/dist/cjs/builder/generator/index.js +4 -0
- package/dist/cjs/builder/index.js +4 -0
- package/dist/cjs/builder/shared/builderPlugins/adapterModern.js +4 -0
- package/dist/cjs/builder/shared/createCopyPattern.js +8 -0
- package/dist/cjs/commands/build.js +2 -0
- package/dist/cjs/commands/dev.js +2 -1
- package/dist/cjs/commands/serve.js +4 -0
- package/dist/cjs/config/default.js +2 -0
- package/dist/cjs/config/initialize/inits.js +4 -0
- package/dist/cjs/config/legacy/createOutputConfig.js +2 -0
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/schema/index.js +4 -0
- package/dist/cjs/utils/config.js +4 -0
- package/dist/cjs/utils/createServer.js +4 -0
- package/dist/cjs/utils/generateWatchFiles.js +4 -0
- package/dist/cjs/utils/routes.js +4 -0
- package/dist/esm/analyze/index.js +2 -1
- package/dist/esm/builder/generator/createBuilderProviderConfig.js +1 -0
- package/dist/esm/builder/shared/createCopyPattern.js +4 -0
- package/dist/esm/commands/build.js +2 -0
- package/dist/esm/commands/dev.js +2 -1
- package/dist/esm/config/default.js +2 -0
- package/dist/esm/config/legacy/createOutputConfig.js +2 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm-node/analyze/index.js +1 -0
- package/dist/esm-node/analyze/templates.js +1 -1
- package/dist/esm-node/builder/generator/createBuilderProviderConfig.js +1 -0
- package/dist/esm-node/builder/shared/createCopyPattern.js +4 -0
- package/dist/esm-node/commands/build.js +2 -0
- package/dist/esm-node/commands/dev.js +2 -1
- package/dist/esm-node/config/default.js +2 -0
- package/dist/esm-node/config/legacy/createOutputConfig.js +2 -0
- package/dist/esm-node/index.js +1 -0
- package/package.json +26 -26
- package/dist/js/modern/analyze/constants.js +0 -54
- package/dist/js/modern/analyze/generateCode.js +0 -247
- package/dist/js/modern/analyze/getBundleEntry.js +0 -71
- package/dist/js/modern/analyze/getClientRoutes/getRoutes.js +0 -220
- package/dist/js/modern/analyze/getClientRoutes/getRoutesLegacy.js +0 -216
- package/dist/js/modern/analyze/getClientRoutes/index.js +0 -6
- package/dist/js/modern/analyze/getClientRoutes/utils.js +0 -31
- package/dist/js/modern/analyze/getFileSystemEntry.js +0 -109
- package/dist/js/modern/analyze/getHtmlTemplate.js +0 -115
- package/dist/js/modern/analyze/getServerRoutes.js +0 -175
- package/dist/js/modern/analyze/index.js +0 -332
- package/dist/js/modern/analyze/isDefaultExportFunction.js +0 -42
- package/dist/js/modern/analyze/makeLegalIdentifier.js +0 -13
- package/dist/js/modern/analyze/nestedRoutes.js +0 -157
- package/dist/js/modern/analyze/templates.js +0 -334
- package/dist/js/modern/analyze/utils.js +0 -141
- package/dist/js/modern/builder/builderPlugins/compatModern.js +0 -233
- package/dist/js/modern/builder/index.js +0 -159
- package/dist/js/modern/builder/loaders/routerLoader.js +0 -17
- package/dist/js/modern/builder/loaders/serverModuleLoader.js +0 -7
- package/dist/js/modern/builder/share.js +0 -46
- package/dist/js/modern/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -30
- package/dist/js/modern/builder/webpackPlugins/htmlBottomTemplate.js +0 -37
- package/dist/js/modern/builder/webpackPlugins/routerPlugin.js +0 -113
- package/dist/js/modern/commands/build.js +0 -91
- package/dist/js/modern/commands/deploy.js +0 -28
- package/dist/js/modern/commands/dev.js +0 -109
- package/dist/js/modern/commands/index.js +0 -3
- package/dist/js/modern/commands/inspect.js +0 -38
- package/dist/js/modern/commands/serve.js +0 -54
- package/dist/js/modern/config/default.js +0 -175
- package/dist/js/modern/config/index.js +0 -8
- package/dist/js/modern/config/initial/createHtmlConfig.js +0 -35
- package/dist/js/modern/config/initial/createOutputConfig.js +0 -68
- package/dist/js/modern/config/initial/createSourceConfig.js +0 -39
- package/dist/js/modern/config/initial/createToolsConfig.js +0 -42
- package/dist/js/modern/config/initial/index.js +0 -16
- package/dist/js/modern/config/initial/inits.js +0 -152
- package/dist/js/modern/config/initial/transformNormalizedConfig.js +0 -47
- package/dist/js/modern/defineConfig.js +0 -27
- package/dist/js/modern/exports/server.js +0 -4
- package/dist/js/modern/hooks.js +0 -35
- package/dist/js/modern/index.js +0 -211
- package/dist/js/modern/initialize/index.js +0 -124
- package/dist/js/modern/locale/en.js +0 -36
- package/dist/js/modern/locale/index.js +0 -9
- package/dist/js/modern/locale/zh.js +0 -36
- package/dist/js/modern/schema/Schema.js +0 -40
- package/dist/js/modern/schema/index.js +0 -88
- package/dist/js/modern/schema/legacy.js +0 -148
- package/dist/js/modern/types/config/deploy.js +0 -0
- package/dist/js/modern/types/config/dev.js +0 -0
- package/dist/js/modern/types/config/experiments.js +0 -0
- package/dist/js/modern/types/config/html.js +0 -0
- package/dist/js/modern/types/config/index.js +0 -1
- package/dist/js/modern/types/config/output.js +0 -0
- package/dist/js/modern/types/config/performance.js +0 -0
- package/dist/js/modern/types/config/security.js +0 -0
- package/dist/js/modern/types/config/source.js +0 -0
- package/dist/js/modern/types/config/tools.js +0 -0
- package/dist/js/modern/types/hooks.js +0 -0
- package/dist/js/modern/types/index.js +0 -3
- package/dist/js/modern/types/legacyConfig/deploy.js +0 -0
- package/dist/js/modern/types/legacyConfig/dev.js +0 -0
- package/dist/js/modern/types/legacyConfig/index.js +0 -0
- package/dist/js/modern/types/legacyConfig/output.js +0 -0
- package/dist/js/modern/types/legacyConfig/source.js +0 -0
- package/dist/js/modern/types/legacyConfig/tools.js +0 -0
- package/dist/js/modern/utils/config.js +0 -128
- package/dist/js/modern/utils/createServer.js +0 -75
- package/dist/js/modern/utils/env.js +0 -15
- package/dist/js/modern/utils/generateWatchFiles.js +0 -55
- package/dist/js/modern/utils/getSelectedEntries.js +0 -58
- package/dist/js/modern/utils/getServerInternalPlugins.js +0 -58
- package/dist/js/modern/utils/language.js +0 -8
- package/dist/js/modern/utils/printInstructions.js +0 -31
- package/dist/js/modern/utils/restart.js +0 -44
- package/dist/js/modern/utils/routes.js +0 -30
- package/dist/js/modern/utils/types.js +0 -0
- package/dist/js/node/analyze/constants.js +0 -98
- package/dist/js/node/analyze/generateCode.js +0 -271
- package/dist/js/node/analyze/getBundleEntry.js +0 -95
- package/dist/js/node/analyze/getClientRoutes/getRoutes.js +0 -242
- package/dist/js/node/analyze/getClientRoutes/getRoutesLegacy.js +0 -238
- package/dist/js/node/analyze/getClientRoutes/index.js +0 -30
- package/dist/js/node/analyze/getClientRoutes/utils.js +0 -58
- package/dist/js/node/analyze/getFileSystemEntry.js +0 -131
- package/dist/js/node/analyze/getHtmlTemplate.js +0 -144
- package/dist/js/node/analyze/getServerRoutes.js +0 -194
- package/dist/js/node/analyze/index.js +0 -339
- package/dist/js/node/analyze/isDefaultExportFunction.js +0 -71
- package/dist/js/node/analyze/makeLegalIdentifier.js +0 -36
- package/dist/js/node/analyze/nestedRoutes.js +0 -184
- package/dist/js/node/analyze/templates.js +0 -365
- package/dist/js/node/analyze/utils.js +0 -172
- package/dist/js/node/builder/builderPlugins/compatModern.js +0 -258
- package/dist/js/node/builder/index.js +0 -177
- package/dist/js/node/builder/loaders/routerLoader.js +0 -38
- package/dist/js/node/builder/loaders/serverModuleLoader.js +0 -28
- package/dist/js/node/builder/share.js +0 -75
- package/dist/js/node/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -53
- package/dist/js/node/builder/webpackPlugins/htmlBottomTemplate.js +0 -60
- package/dist/js/node/builder/webpackPlugins/routerPlugin.js +0 -135
- package/dist/js/node/commands/build.js +0 -112
- package/dist/js/node/commands/deploy.js +0 -51
- package/dist/js/node/commands/dev.js +0 -126
- package/dist/js/node/commands/index.js +0 -19
- package/dist/js/node/commands/inspect.js +0 -61
- package/dist/js/node/commands/serve.js +0 -83
- package/dist/js/node/config/default.js +0 -197
- package/dist/js/node/config/index.js +0 -34
- package/dist/js/node/config/initial/createHtmlConfig.js +0 -58
- package/dist/js/node/config/initial/createOutputConfig.js +0 -91
- package/dist/js/node/config/initial/createSourceConfig.js +0 -62
- package/dist/js/node/config/initial/createToolsConfig.js +0 -65
- package/dist/js/node/config/initial/index.js +0 -41
- package/dist/js/node/config/initial/inits.js +0 -175
- package/dist/js/node/config/initial/transformNormalizedConfig.js +0 -70
- package/dist/js/node/defineConfig.js +0 -49
- package/dist/js/node/exports/server.js +0 -27
- package/dist/js/node/hooks.js +0 -54
- package/dist/js/node/index.js +0 -235
- package/dist/js/node/initialize/index.js +0 -134
- package/dist/js/node/locale/en.js +0 -59
- package/dist/js/node/locale/index.js +0 -33
- package/dist/js/node/locale/zh.js +0 -59
- package/dist/js/node/schema/Schema.js +0 -63
- package/dist/js/node/schema/index.js +0 -118
- package/dist/js/node/schema/legacy.js +0 -169
- package/dist/js/node/types/config/deploy.js +0 -15
- package/dist/js/node/types/config/dev.js +0 -15
- package/dist/js/node/types/config/experiments.js +0 -15
- package/dist/js/node/types/config/html.js +0 -15
- package/dist/js/node/types/config/index.js +0 -17
- package/dist/js/node/types/config/output.js +0 -15
- package/dist/js/node/types/config/performance.js +0 -15
- package/dist/js/node/types/config/security.js +0 -15
- package/dist/js/node/types/config/source.js +0 -15
- package/dist/js/node/types/config/tools.js +0 -15
- package/dist/js/node/types/hooks.js +0 -15
- package/dist/js/node/types/index.js +0 -19
- package/dist/js/node/types/legacyConfig/deploy.js +0 -15
- package/dist/js/node/types/legacyConfig/dev.js +0 -15
- package/dist/js/node/types/legacyConfig/index.js +0 -15
- package/dist/js/node/types/legacyConfig/output.js +0 -15
- package/dist/js/node/types/legacyConfig/source.js +0 -15
- package/dist/js/node/types/legacyConfig/tools.js +0 -15
- package/dist/js/node/utils/config.js +0 -153
- package/dist/js/node/utils/createServer.js +0 -106
- package/dist/js/node/utils/env.js +0 -38
- package/dist/js/node/utils/generateWatchFiles.js +0 -85
- package/dist/js/node/utils/getSelectedEntries.js +0 -81
- package/dist/js/node/utils/getServerInternalPlugins.js +0 -79
- package/dist/js/node/utils/language.js +0 -31
- package/dist/js/node/utils/printInstructions.js +0 -54
- package/dist/js/node/utils/restart.js +0 -67
- package/dist/js/node/utils/routes.js +0 -59
- package/dist/js/node/utils/types.js +0 -15
- package/dist/js/treeshaking/analyze/constants.js +0 -40
- package/dist/js/treeshaking/analyze/generateCode.js +0 -485
- package/dist/js/treeshaking/analyze/getBundleEntry.js +0 -62
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +0 -233
- package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +0 -231
- package/dist/js/treeshaking/analyze/getClientRoutes/index.js +0 -3
- package/dist/js/treeshaking/analyze/getClientRoutes/utils.js +0 -23
- package/dist/js/treeshaking/analyze/getFileSystemEntry.js +0 -107
- package/dist/js/treeshaking/analyze/getHtmlTemplate.js +0 -302
- package/dist/js/treeshaking/analyze/getServerRoutes.js +0 -222
- package/dist/js/treeshaking/analyze/index.js +0 -697
- package/dist/js/treeshaking/analyze/isDefaultExportFunction.js +0 -47
- package/dist/js/treeshaking/analyze/makeLegalIdentifier.js +0 -13
- package/dist/js/treeshaking/analyze/nestedRoutes.js +0 -384
- package/dist/js/treeshaking/analyze/templates.js +0 -468
- package/dist/js/treeshaking/analyze/utils.js +0 -374
- package/dist/js/treeshaking/builder/builderPlugins/compatModern.js +0 -304
- package/dist/js/treeshaking/builder/index.js +0 -374
- package/dist/js/treeshaking/builder/loaders/routerLoader.js +0 -13
- package/dist/js/treeshaking/builder/loaders/serverModuleLoader.js +0 -5
- package/dist/js/treeshaking/builder/share.js +0 -40
- package/dist/js/treeshaking/builder/webpackPlugins/htmlAsyncChunkPlugin.js +0 -110
- package/dist/js/treeshaking/builder/webpackPlugins/htmlBottomTemplate.js +0 -72
- package/dist/js/treeshaking/builder/webpackPlugins/routerPlugin.js +0 -343
- package/dist/js/treeshaking/commands/build.js +0 -291
- package/dist/js/treeshaking/commands/deploy.js +0 -154
- package/dist/js/treeshaking/commands/dev.js +0 -301
- package/dist/js/treeshaking/commands/index.js +0 -3
- package/dist/js/treeshaking/commands/inspect.js +0 -149
- package/dist/js/treeshaking/commands/serve.js +0 -199
- package/dist/js/treeshaking/config/default.js +0 -210
- package/dist/js/treeshaking/config/index.js +0 -3
- package/dist/js/treeshaking/config/initial/createHtmlConfig.js +0 -19
- package/dist/js/treeshaking/config/initial/createOutputConfig.js +0 -41
- package/dist/js/treeshaking/config/initial/createSourceConfig.js +0 -42
- package/dist/js/treeshaking/config/initial/createToolsConfig.js +0 -23
- package/dist/js/treeshaking/config/initial/index.js +0 -12
- package/dist/js/treeshaking/config/initial/inits.js +0 -209
- package/dist/js/treeshaking/config/initial/transformNormalizedConfig.js +0 -35
- package/dist/js/treeshaking/defineConfig.js +0 -61
- package/dist/js/treeshaking/exports/server.js +0 -2
- package/dist/js/treeshaking/hooks.js +0 -29
- package/dist/js/treeshaking/index.js +0 -706
- package/dist/js/treeshaking/initialize/index.js +0 -276
- package/dist/js/treeshaking/locale/en.js +0 -38
- package/dist/js/treeshaking/locale/index.js +0 -9
- package/dist/js/treeshaking/locale/zh.js +0 -38
- package/dist/js/treeshaking/schema/Schema.js +0 -273
- package/dist/js/treeshaking/schema/index.js +0 -181
- package/dist/js/treeshaking/schema/legacy.js +0 -337
- package/dist/js/treeshaking/types/config/deploy.js +0 -1
- package/dist/js/treeshaking/types/config/dev.js +0 -1
- package/dist/js/treeshaking/types/config/experiments.js +0 -1
- package/dist/js/treeshaking/types/config/html.js +0 -1
- package/dist/js/treeshaking/types/config/index.js +0 -1
- package/dist/js/treeshaking/types/config/output.js +0 -1
- package/dist/js/treeshaking/types/config/performance.js +0 -1
- package/dist/js/treeshaking/types/config/security.js +0 -1
- package/dist/js/treeshaking/types/config/source.js +0 -1
- package/dist/js/treeshaking/types/config/tools.js +0 -1
- package/dist/js/treeshaking/types/hooks.js +0 -1
- package/dist/js/treeshaking/types/index.js +0 -3
- package/dist/js/treeshaking/types/legacyConfig/deploy.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/dev.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/index.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/output.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/source.js +0 -1
- package/dist/js/treeshaking/types/legacyConfig/tools.js +0 -1
- package/dist/js/treeshaking/utils/config.js +0 -302
- package/dist/js/treeshaking/utils/createServer.js +0 -258
- package/dist/js/treeshaking/utils/env.js +0 -13
- package/dist/js/treeshaking/utils/generateWatchFiles.js +0 -214
- package/dist/js/treeshaking/utils/getSelectedEntries.js +0 -186
- package/dist/js/treeshaking/utils/getServerInternalPlugins.js +0 -210
- package/dist/js/treeshaking/utils/language.js +0 -6
- package/dist/js/treeshaking/utils/printInstructions.js +0 -152
- package/dist/js/treeshaking/utils/restart.js +0 -187
- package/dist/js/treeshaking/utils/routes.js +0 -153
- package/dist/js/treeshaking/utils/types.js +0 -1
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
var __objRest = (source, exclude) => {
|
|
21
|
-
var target = {};
|
|
22
|
-
for (var prop in source)
|
|
23
|
-
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
24
|
-
target[prop] = source[prop];
|
|
25
|
-
if (source != null && __getOwnPropSymbols)
|
|
26
|
-
for (var prop of __getOwnPropSymbols(source)) {
|
|
27
|
-
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
28
|
-
target[prop] = source[prop];
|
|
29
|
-
}
|
|
30
|
-
return target;
|
|
31
|
-
};
|
|
32
|
-
import path from "path";
|
|
33
|
-
import fs from "fs";
|
|
34
|
-
import {
|
|
35
|
-
urlJoin,
|
|
36
|
-
isPlainObject,
|
|
37
|
-
removeLeadingSlash,
|
|
38
|
-
getEntryOptions,
|
|
39
|
-
SERVER_BUNDLE_DIRECTORY,
|
|
40
|
-
MAIN_ENTRY_NAME,
|
|
41
|
-
removeTailSlash
|
|
42
|
-
} from "@modern-js/utils";
|
|
43
|
-
import { walkDirectory } from "./utils";
|
|
44
|
-
const applyBaseUrl = (baseUrl, routes) => {
|
|
45
|
-
if (baseUrl) {
|
|
46
|
-
if (Array.isArray(baseUrl)) {
|
|
47
|
-
return baseUrl.reduce(
|
|
48
|
-
(previous, current) => [...previous, ...applyBaseUrl(current, routes)],
|
|
49
|
-
[]
|
|
50
|
-
);
|
|
51
|
-
} else {
|
|
52
|
-
return routes.map((route) => {
|
|
53
|
-
const urlPath = urlJoin(baseUrl, route.urlPath);
|
|
54
|
-
return __spreadProps(__spreadValues({}, route), {
|
|
55
|
-
urlPath: urlPath === "/" ? urlPath : removeTailSlash(urlPath)
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return routes;
|
|
61
|
-
};
|
|
62
|
-
const applyRouteOptions = (original, routeOptions) => {
|
|
63
|
-
const { route, disableSpa } = routeOptions;
|
|
64
|
-
original.isSPA = !disableSpa;
|
|
65
|
-
!original.isSPA && (original.entryPath = path.dirname(original.entryPath));
|
|
66
|
-
let routes;
|
|
67
|
-
if (route) {
|
|
68
|
-
if (Array.isArray(route)) {
|
|
69
|
-
routes = route.map((url) => {
|
|
70
|
-
if (isPlainObject(url)) {
|
|
71
|
-
const _a2 = url, { path: urlPath } = _a2, other = __objRest(_a2, ["path"]);
|
|
72
|
-
return __spreadProps(__spreadValues(__spreadValues({}, original), other), {
|
|
73
|
-
urlPath
|
|
74
|
-
});
|
|
75
|
-
} else {
|
|
76
|
-
return __spreadProps(__spreadValues({}, original), {
|
|
77
|
-
urlPath: url
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
} else if (isPlainObject(route)) {
|
|
82
|
-
const _a = route, { path: urlPath } = _a, other = __objRest(_a, ["path"]);
|
|
83
|
-
routes = [
|
|
84
|
-
__spreadProps(__spreadValues(__spreadValues({}, original), other), {
|
|
85
|
-
urlPath
|
|
86
|
-
})
|
|
87
|
-
];
|
|
88
|
-
} else {
|
|
89
|
-
routes = [
|
|
90
|
-
__spreadProps(__spreadValues({}, original), {
|
|
91
|
-
urlPath: route
|
|
92
|
-
})
|
|
93
|
-
];
|
|
94
|
-
}
|
|
95
|
-
} else {
|
|
96
|
-
routes = [original];
|
|
97
|
-
}
|
|
98
|
-
return routes;
|
|
99
|
-
};
|
|
100
|
-
const collectHtmlRoutes = (entrypoints, appContext, config) => {
|
|
101
|
-
const {
|
|
102
|
-
html: { disableHtmlFolder },
|
|
103
|
-
output: { distPath: { html: htmlPath } = {} },
|
|
104
|
-
server: { baseUrl, routes, ssr, ssrByEntries }
|
|
105
|
-
} = config;
|
|
106
|
-
const { packageName } = appContext;
|
|
107
|
-
let htmlRoutes = entrypoints.reduce(
|
|
108
|
-
(previous, { entryName }) => {
|
|
109
|
-
const entryOptions = getEntryOptions(
|
|
110
|
-
entryName,
|
|
111
|
-
ssr,
|
|
112
|
-
ssrByEntries,
|
|
113
|
-
packageName
|
|
114
|
-
);
|
|
115
|
-
const isSSR = Boolean(entryOptions);
|
|
116
|
-
const { resHeaders } = (routes == null ? void 0 : routes[entryName]) || {};
|
|
117
|
-
let route = {
|
|
118
|
-
urlPath: `/${entryName === MAIN_ENTRY_NAME ? "" : entryName}`,
|
|
119
|
-
entryName,
|
|
120
|
-
entryPath: removeLeadingSlash(
|
|
121
|
-
path.posix.normalize(
|
|
122
|
-
`${htmlPath}/${entryName}${disableHtmlFolder ? ".html" : "/index.html"}`
|
|
123
|
-
)
|
|
124
|
-
),
|
|
125
|
-
isSPA: true,
|
|
126
|
-
isSSR,
|
|
127
|
-
responseHeaders: resHeaders,
|
|
128
|
-
bundle: isSSR ? `${SERVER_BUNDLE_DIRECTORY}/${entryName}.js` : void 0
|
|
129
|
-
};
|
|
130
|
-
if (routes == null ? void 0 : routes.hasOwnProperty(entryName)) {
|
|
131
|
-
const routeOptions = isPlainObject(routes[entryName]) ? routes[entryName] : { route: routes[entryName] };
|
|
132
|
-
route = applyRouteOptions(route, routeOptions);
|
|
133
|
-
}
|
|
134
|
-
return Array.isArray(route) ? [...previous, ...route] : [...previous, route];
|
|
135
|
-
},
|
|
136
|
-
[]
|
|
137
|
-
);
|
|
138
|
-
htmlRoutes = applyBaseUrl(baseUrl, htmlRoutes);
|
|
139
|
-
return htmlRoutes;
|
|
140
|
-
};
|
|
141
|
-
const collectStaticRoutes = (appContext, config) => {
|
|
142
|
-
const { appDirectory } = appContext;
|
|
143
|
-
const {
|
|
144
|
-
source: { configDir },
|
|
145
|
-
server: { publicRoutes = {} }
|
|
146
|
-
} = config;
|
|
147
|
-
const publicFolder = path.resolve(appDirectory, configDir || "", "public");
|
|
148
|
-
return fs.existsSync(publicFolder) ? walkDirectory(publicFolder).map((filePath) => {
|
|
149
|
-
const urlPath = `${urlJoin(
|
|
150
|
-
toPosix(filePath).slice(toPosix(publicFolder).length)
|
|
151
|
-
)}`;
|
|
152
|
-
return {
|
|
153
|
-
urlPath: publicRoutes[removeLeadingSlash(urlPath)] || urlPath,
|
|
154
|
-
isSPA: true,
|
|
155
|
-
isSSR: false,
|
|
156
|
-
entryPath: toPosix(
|
|
157
|
-
path.relative(
|
|
158
|
-
path.resolve(appDirectory, configDir || ""),
|
|
159
|
-
filePath
|
|
160
|
-
)
|
|
161
|
-
)
|
|
162
|
-
};
|
|
163
|
-
}) : [];
|
|
164
|
-
};
|
|
165
|
-
const getServerRoutes = (entrypoints, {
|
|
166
|
-
appContext,
|
|
167
|
-
config
|
|
168
|
-
}) => [
|
|
169
|
-
...collectHtmlRoutes(entrypoints, appContext, config),
|
|
170
|
-
...collectStaticRoutes(appContext, config)
|
|
171
|
-
];
|
|
172
|
-
const toPosix = (pathStr) => pathStr.split(path.sep).join(path.posix.sep);
|
|
173
|
-
export {
|
|
174
|
-
getServerRoutes
|
|
175
|
-
};
|
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
var __async = (__this, __arguments, generator) => {
|
|
21
|
-
return new Promise((resolve, reject) => {
|
|
22
|
-
var fulfilled = (value) => {
|
|
23
|
-
try {
|
|
24
|
-
step(generator.next(value));
|
|
25
|
-
} catch (e) {
|
|
26
|
-
reject(e);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var rejected = (value) => {
|
|
30
|
-
try {
|
|
31
|
-
step(generator.throw(value));
|
|
32
|
-
} catch (e) {
|
|
33
|
-
reject(e);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
37
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
import * as path from "path";
|
|
41
|
-
import {
|
|
42
|
-
createDebugger,
|
|
43
|
-
findExists,
|
|
44
|
-
fs,
|
|
45
|
-
getEntryOptions,
|
|
46
|
-
isApiOnly,
|
|
47
|
-
minimist,
|
|
48
|
-
getCommand,
|
|
49
|
-
isDevCommand
|
|
50
|
-
} from "@modern-js/utils";
|
|
51
|
-
import { cloneDeep } from "@modern-js/utils/lodash";
|
|
52
|
-
import { createBuilderForModern } from "../builder";
|
|
53
|
-
import { printInstructions } from "../utils/printInstructions";
|
|
54
|
-
import { generateRoutes } from "../utils/routes";
|
|
55
|
-
import { emitResolvedConfig } from "../utils/config";
|
|
56
|
-
import { getSelectedEntries } from "../utils/getSelectedEntries";
|
|
57
|
-
import { initialNormalizedConfig } from "../config";
|
|
58
|
-
import {
|
|
59
|
-
getServerLoadersFile,
|
|
60
|
-
isPageComponentFile,
|
|
61
|
-
parseModule,
|
|
62
|
-
replaceWithAlias
|
|
63
|
-
} from "./utils";
|
|
64
|
-
import {
|
|
65
|
-
APP_CONFIG_NAME,
|
|
66
|
-
APP_INIT_EXPORTED,
|
|
67
|
-
APP_INIT_IMPORTED
|
|
68
|
-
} from "./constants";
|
|
69
|
-
const debug = createDebugger("plugin-analyze");
|
|
70
|
-
var analyze_default = () => ({
|
|
71
|
-
name: "@modern-js/plugin-analyze",
|
|
72
|
-
setup: (api) => {
|
|
73
|
-
let pagesDir = [];
|
|
74
|
-
let nestedRouteEntries = [];
|
|
75
|
-
let originEntrypoints = [];
|
|
76
|
-
return {
|
|
77
|
-
prepare() {
|
|
78
|
-
return __async(this, null, function* () {
|
|
79
|
-
var _a2;
|
|
80
|
-
let appContext = api.useAppContext();
|
|
81
|
-
const resolvedConfig = api.useResolvedConfigContext();
|
|
82
|
-
const hookRunners = api.useHookRunners();
|
|
83
|
-
try {
|
|
84
|
-
fs.emptydirSync(appContext.internalDirectory);
|
|
85
|
-
} catch (e) {
|
|
86
|
-
}
|
|
87
|
-
const apiOnly = yield isApiOnly(
|
|
88
|
-
appContext.appDirectory,
|
|
89
|
-
(_a2 = resolvedConfig.source) == null ? void 0 : _a2.entriesDir
|
|
90
|
-
);
|
|
91
|
-
yield hookRunners.addRuntimeExports();
|
|
92
|
-
if (apiOnly) {
|
|
93
|
-
const { routes: routes2 } = yield hookRunners.modifyServerRoutes({
|
|
94
|
-
routes: []
|
|
95
|
-
});
|
|
96
|
-
debug(`server routes: %o`, routes2);
|
|
97
|
-
appContext = __spreadProps(__spreadValues({}, appContext), {
|
|
98
|
-
apiOnly,
|
|
99
|
-
serverRoutes: routes2
|
|
100
|
-
});
|
|
101
|
-
api.setAppContext(appContext);
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
const [
|
|
105
|
-
{ getBundleEntry },
|
|
106
|
-
{ getServerRoutes },
|
|
107
|
-
{ generateCode },
|
|
108
|
-
{ getHtmlTemplate }
|
|
109
|
-
] = yield Promise.all([
|
|
110
|
-
import("./getBundleEntry"),
|
|
111
|
-
import("./getServerRoutes"),
|
|
112
|
-
import("./generateCode"),
|
|
113
|
-
import("./getHtmlTemplate")
|
|
114
|
-
]);
|
|
115
|
-
const entrypoints = getBundleEntry(appContext, resolvedConfig);
|
|
116
|
-
debug(`entrypoints: %o`, entrypoints);
|
|
117
|
-
const initialRoutes = getServerRoutes(entrypoints, {
|
|
118
|
-
appContext,
|
|
119
|
-
config: resolvedConfig
|
|
120
|
-
});
|
|
121
|
-
const { routes } = yield hookRunners.modifyServerRoutes({
|
|
122
|
-
routes: initialRoutes
|
|
123
|
-
});
|
|
124
|
-
debug(`server routes: %o`, routes);
|
|
125
|
-
appContext = __spreadProps(__spreadValues({}, appContext), {
|
|
126
|
-
entrypoints,
|
|
127
|
-
serverRoutes: routes
|
|
128
|
-
});
|
|
129
|
-
api.setAppContext(appContext);
|
|
130
|
-
nestedRouteEntries = entrypoints.map((point) => point.nestedRoutesEntry).filter(Boolean);
|
|
131
|
-
pagesDir = entrypoints.map((point) => point.entry).filter(Boolean).concat(nestedRouteEntries);
|
|
132
|
-
originEntrypoints = cloneDeep(entrypoints);
|
|
133
|
-
yield generateCode(appContext, resolvedConfig, entrypoints, api);
|
|
134
|
-
const htmlTemplates = yield getHtmlTemplate(entrypoints, api, {
|
|
135
|
-
appContext,
|
|
136
|
-
config: resolvedConfig
|
|
137
|
-
});
|
|
138
|
-
debug(`html templates: %o`, htmlTemplates);
|
|
139
|
-
yield hookRunners.addDefineTypes();
|
|
140
|
-
debug(`add Define Types`);
|
|
141
|
-
let checkedEntries = entrypoints.map((point) => point.entryName);
|
|
142
|
-
if (isDevCommand()) {
|
|
143
|
-
const { entry } = minimist(process.argv.slice(2));
|
|
144
|
-
checkedEntries = yield getSelectedEntries(
|
|
145
|
-
typeof entry === "string" ? entry.split(",") : entry,
|
|
146
|
-
entrypoints
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
appContext = __spreadProps(__spreadValues({}, appContext), {
|
|
150
|
-
entrypoints,
|
|
151
|
-
checkedEntries,
|
|
152
|
-
apiOnly,
|
|
153
|
-
serverRoutes: routes,
|
|
154
|
-
htmlTemplates
|
|
155
|
-
});
|
|
156
|
-
api.setAppContext(appContext);
|
|
157
|
-
const command = getCommand();
|
|
158
|
-
const buildCommands = ["dev", "start", "build", "inspect", "deploy"];
|
|
159
|
-
if (buildCommands.includes(command)) {
|
|
160
|
-
let _b;
|
|
161
|
-
const normalizedConfig = api.useResolvedConfigContext();
|
|
162
|
-
const builder = yield createBuilderForModern({
|
|
163
|
-
normalizedConfig,
|
|
164
|
-
appContext,
|
|
165
|
-
compatPluginConfig: {
|
|
166
|
-
onBeforeBuild(_0) {
|
|
167
|
-
return __async(this, arguments, function* ({ bundlerConfigs }) {
|
|
168
|
-
const hookRunners2 = api.useHookRunners();
|
|
169
|
-
yield generateRoutes(appContext);
|
|
170
|
-
yield hookRunners2.beforeBuild({ bundlerConfigs });
|
|
171
|
-
});
|
|
172
|
-
},
|
|
173
|
-
onAfterBuild(_0) {
|
|
174
|
-
return __async(this, arguments, function* ({ stats }) {
|
|
175
|
-
const hookRunners2 = api.useHookRunners();
|
|
176
|
-
yield hookRunners2.afterBuild({ stats });
|
|
177
|
-
yield emitResolvedConfig(
|
|
178
|
-
appContext.appDirectory,
|
|
179
|
-
normalizedConfig
|
|
180
|
-
);
|
|
181
|
-
});
|
|
182
|
-
},
|
|
183
|
-
onDevCompileDone(_0) {
|
|
184
|
-
return __async(this, arguments, function* ({ isFirstCompile }) {
|
|
185
|
-
const hookRunners2 = api.useHookRunners();
|
|
186
|
-
if (process.stdout.isTTY || isFirstCompile) {
|
|
187
|
-
hookRunners2.afterDev();
|
|
188
|
-
if (isFirstCompile) {
|
|
189
|
-
printInstructions(
|
|
190
|
-
hookRunners2,
|
|
191
|
-
appContext,
|
|
192
|
-
normalizedConfig
|
|
193
|
-
);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
},
|
|
198
|
-
onBeforeCreateCompiler(_0) {
|
|
199
|
-
return __async(this, arguments, function* ({ bundlerConfigs }) {
|
|
200
|
-
const hookRunners2 = api.useHookRunners();
|
|
201
|
-
yield hookRunners2.beforeCreateCompiler({
|
|
202
|
-
bundlerConfigs
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
},
|
|
206
|
-
onAfterCreateCompiler(_0) {
|
|
207
|
-
return __async(this, arguments, function* ({ compiler }) {
|
|
208
|
-
const hookRunners2 = api.useHookRunners();
|
|
209
|
-
yield hookRunners2.afterCreateCompiler({ compiler });
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
builder.addPlugins(resolvedConfig.builderPlugins);
|
|
215
|
-
appContext = __spreadProps(__spreadValues({}, appContext), {
|
|
216
|
-
builder
|
|
217
|
-
});
|
|
218
|
-
api.setAppContext(appContext);
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
},
|
|
222
|
-
watchFiles() {
|
|
223
|
-
return pagesDir;
|
|
224
|
-
},
|
|
225
|
-
config() {
|
|
226
|
-
return {
|
|
227
|
-
tools: {
|
|
228
|
-
webpackChain: (chain, { name }) => {
|
|
229
|
-
const appContext = api.useAppContext();
|
|
230
|
-
const resolvedConfig = api.useResolvedConfigContext();
|
|
231
|
-
const { entrypoints, internalDirectory, packageName } = appContext;
|
|
232
|
-
entrypoints.forEach((entrypoint) => {
|
|
233
|
-
const { entryName } = entrypoint;
|
|
234
|
-
const ssr = getEntryOptions(
|
|
235
|
-
entryName,
|
|
236
|
-
resolvedConfig.server.ssr,
|
|
237
|
-
resolvedConfig.server.ssrByEntries,
|
|
238
|
-
packageName
|
|
239
|
-
);
|
|
240
|
-
if (entrypoint.nestedRoutesEntry && ssr && name === "server") {
|
|
241
|
-
const serverLoadersFile = getServerLoadersFile(
|
|
242
|
-
internalDirectory,
|
|
243
|
-
entryName
|
|
244
|
-
);
|
|
245
|
-
chain.entry(`${entryName}-server-loaders`).add(serverLoadersFile);
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
};
|
|
251
|
-
},
|
|
252
|
-
resolvedConfig({ resolved }) {
|
|
253
|
-
const appContext = api.useAppContext();
|
|
254
|
-
const config = initialNormalizedConfig(resolved, appContext);
|
|
255
|
-
return {
|
|
256
|
-
resolved: config
|
|
257
|
-
};
|
|
258
|
-
},
|
|
259
|
-
modifyEntryImports(_0) {
|
|
260
|
-
return __async(this, arguments, function* ({ entrypoint, imports }) {
|
|
261
|
-
const appContext = api.useAppContext();
|
|
262
|
-
const { srcDirectory, internalSrcAlias } = appContext;
|
|
263
|
-
const { fileSystemRoutes, nestedRoutesEntry } = entrypoint;
|
|
264
|
-
if (fileSystemRoutes && nestedRoutesEntry) {
|
|
265
|
-
const rootLayoutPath = path.join(nestedRoutesEntry, "layout");
|
|
266
|
-
const rootLayoutFile = findExists(
|
|
267
|
-
[".js", ".ts", ".jsx", ".tsx"].map(
|
|
268
|
-
(ext) => `${rootLayoutPath}${ext}`
|
|
269
|
-
)
|
|
270
|
-
);
|
|
271
|
-
if (rootLayoutFile) {
|
|
272
|
-
const rootLayoutBuffer = yield fs.readFile(rootLayoutFile);
|
|
273
|
-
const rootLayout = rootLayoutBuffer.toString();
|
|
274
|
-
const [, moduleExports] = yield parseModule({
|
|
275
|
-
source: rootLayout.toString(),
|
|
276
|
-
filename: rootLayoutFile
|
|
277
|
-
});
|
|
278
|
-
const hasAppConfig = moduleExports.some(
|
|
279
|
-
(e) => e.n === APP_CONFIG_NAME
|
|
280
|
-
);
|
|
281
|
-
const generateLayoutPath = replaceWithAlias(
|
|
282
|
-
srcDirectory,
|
|
283
|
-
rootLayoutFile,
|
|
284
|
-
internalSrcAlias
|
|
285
|
-
);
|
|
286
|
-
if (hasAppConfig) {
|
|
287
|
-
imports.push({
|
|
288
|
-
value: generateLayoutPath,
|
|
289
|
-
specifiers: [{ imported: APP_CONFIG_NAME }]
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
const hasAppInit = moduleExports.some(
|
|
293
|
-
(e) => e.n === APP_INIT_EXPORTED
|
|
294
|
-
);
|
|
295
|
-
if (hasAppInit) {
|
|
296
|
-
imports.push({
|
|
297
|
-
value: generateLayoutPath,
|
|
298
|
-
specifiers: [
|
|
299
|
-
{ imported: APP_INIT_EXPORTED, local: APP_INIT_IMPORTED }
|
|
300
|
-
]
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
return {
|
|
306
|
-
entrypoint,
|
|
307
|
-
imports
|
|
308
|
-
};
|
|
309
|
-
});
|
|
310
|
-
},
|
|
311
|
-
fileChange(e) {
|
|
312
|
-
return __async(this, null, function* () {
|
|
313
|
-
const appContext = api.useAppContext();
|
|
314
|
-
const { appDirectory } = appContext;
|
|
315
|
-
const { filename, eventType } = e;
|
|
316
|
-
const isPageFile = (name) => pagesDir.some((pageDir) => name.includes(pageDir));
|
|
317
|
-
const absoluteFilePath = path.resolve(appDirectory, filename);
|
|
318
|
-
const isRouteComponent = isPageFile(absoluteFilePath) && isPageComponentFile(absoluteFilePath);
|
|
319
|
-
if (isRouteComponent && (eventType === "add" || eventType === "unlink")) {
|
|
320
|
-
const resolvedConfig = api.useResolvedConfigContext();
|
|
321
|
-
const { generateCode } = yield import("./generateCode");
|
|
322
|
-
const entrypoints = cloneDeep(originEntrypoints);
|
|
323
|
-
generateCode(appContext, resolvedConfig, entrypoints, api);
|
|
324
|
-
}
|
|
325
|
-
});
|
|
326
|
-
}
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
});
|
|
330
|
-
export {
|
|
331
|
-
analyze_default as default
|
|
332
|
-
};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import { parse } from "@babel/parser";
|
|
3
|
-
import traverse from "@babel/traverse";
|
|
4
|
-
import * as t from "@babel/types";
|
|
5
|
-
const isFunction = (node) => t.isFunctionDeclaration(node) || t.isFunctionExpression(node) || t.isArrowFunctionExpression(node);
|
|
6
|
-
const isDefaultExportFunction = (file) => {
|
|
7
|
-
if (!file || !fs.existsSync(file)) {
|
|
8
|
-
return false;
|
|
9
|
-
}
|
|
10
|
-
const ast = parse(fs.readFileSync(file, "utf8"), {
|
|
11
|
-
sourceType: "unambiguous",
|
|
12
|
-
plugins: [
|
|
13
|
-
"jsx",
|
|
14
|
-
"typescript",
|
|
15
|
-
"classProperties",
|
|
16
|
-
"dynamicImport",
|
|
17
|
-
"exportDefaultFrom",
|
|
18
|
-
"exportNamespaceFrom",
|
|
19
|
-
"decorators-legacy",
|
|
20
|
-
"functionBind",
|
|
21
|
-
"classPrivateMethods",
|
|
22
|
-
["pipelineOperator", { proposal: "minimal" }],
|
|
23
|
-
"optionalChaining",
|
|
24
|
-
"optionalCatchBinding",
|
|
25
|
-
"objectRestSpread",
|
|
26
|
-
"numericSeparator"
|
|
27
|
-
]
|
|
28
|
-
});
|
|
29
|
-
let isExportFunction = false;
|
|
30
|
-
traverse(ast, {
|
|
31
|
-
ExportDefaultDeclaration: (path) => {
|
|
32
|
-
const { declaration } = path.node;
|
|
33
|
-
if (isFunction(declaration)) {
|
|
34
|
-
isExportFunction = true;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
return isExportFunction;
|
|
39
|
-
};
|
|
40
|
-
export {
|
|
41
|
-
isDefaultExportFunction
|
|
42
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const reservedWords = "break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public";
|
|
2
|
-
const builtins = "arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl";
|
|
3
|
-
const forbidList = new Set(`${reservedWords} ${builtins}`.split(" "));
|
|
4
|
-
function makeLegalIdentifier(str) {
|
|
5
|
-
const identifier = str.replace(/-(\w)/g, (_, letter) => letter.toUpperCase()).replace(/[^$_a-zA-Z0-9]/g, "_");
|
|
6
|
-
if (/\d/.test(identifier[0]) || forbidList.has(identifier)) {
|
|
7
|
-
return `_${identifier}`;
|
|
8
|
-
}
|
|
9
|
-
return identifier || "_";
|
|
10
|
-
}
|
|
11
|
-
export {
|
|
12
|
-
makeLegalIdentifier
|
|
13
|
-
};
|