@embroider/core 3.4.10-unstable.f469b9f → 3.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/package.json +12 -15
- package/src/app-files.d.ts +4 -3
- package/src/app-files.js +3 -10
- package/src/app-files.js.map +1 -1
- package/src/asset.d.ts +6 -2
- package/src/asset.js.map +1 -1
- package/src/describe-exports.js.map +1 -1
- package/src/ember-html.d.ts +6 -3
- package/src/ember-html.js +17 -6
- package/src/ember-html.js.map +1 -1
- package/src/html-entrypoint.js.map +1 -1
- package/src/html-placeholder.js.map +1 -1
- package/src/index.d.ts +2 -2
- package/src/index.js.map +1 -1
- package/src/messages.js.map +1 -1
- package/src/module-resolver.d.ts +15 -30
- package/src/module-resolver.js +191 -329
- package/src/module-resolver.js.map +1 -1
- package/src/options.js.map +1 -1
- package/src/packager.js.map +1 -1
- package/src/portable-babel-config.js.map +1 -1
- package/src/portable-babel-launcher.js.map +1 -1
- package/src/portable.js.map +1 -1
- package/src/resolver-loader.js.map +1 -1
- package/src/to-broccoli-plugin.js.map +1 -1
- package/src/virtual-content.d.ts +2 -6
- package/src/virtual-content.js +42 -114
- package/src/virtual-content.js.map +1 -1
- package/src/wait-for-trees.js.map +1 -1
- package/src/node-resolve.d.ts +0 -33
- package/src/node-resolve.js +0 -131
- package/src/node-resolve.js.map +0 -1
- package/src/virtual-entrypoint.d.ts +0 -19
- package/src/virtual-entrypoint.js +0 -316
- package/src/virtual-entrypoint.js.map +0 -1
- package/src/virtual-route-entrypoint.d.ts +0 -15
- package/src/virtual-route-entrypoint.js +0 -102
- package/src/virtual-route-entrypoint.js.map +0 -1
- package/src/virtual-test-support-styles.d.ts +0 -4
- package/src/virtual-test-support-styles.js +0 -65
- package/src/virtual-test-support-styles.js.map +0 -1
- package/src/virtual-test-support.d.ts +0 -4
- package/src/virtual-test-support.js +0 -69
- package/src/virtual-test-support.js.map +0 -1
- package/src/virtual-vendor-styles.d.ts +0 -4
- package/src/virtual-vendor-styles.js +0 -83
- package/src/virtual-vendor-styles.js.map +0 -1
- package/src/virtual-vendor.d.ts +0 -4
- package/src/virtual-vendor.js +0 -73
- package/src/virtual-vendor.js.map +0 -1
package/src/node-resolve.js
DELETED
@@ -1,131 +0,0 @@
|
|
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.nodeResolve = exports.NodeModuleRequest = void 0;
|
7
|
-
const virtual_content_1 = require("./virtual-content");
|
8
|
-
const path_1 = require("path");
|
9
|
-
const shared_internals_1 = require("@embroider/shared-internals");
|
10
|
-
const assert_never_1 = __importDefault(require("assert-never"));
|
11
|
-
class NodeModuleRequest {
|
12
|
-
constructor(resolver, specifier, fromFile, isVirtual, meta, isNotFound, resolvedTo) {
|
13
|
-
this.resolver = resolver;
|
14
|
-
this.specifier = specifier;
|
15
|
-
this.fromFile = fromFile;
|
16
|
-
this.isVirtual = isVirtual;
|
17
|
-
this.meta = meta;
|
18
|
-
this.isNotFound = isNotFound;
|
19
|
-
this.resolvedTo = resolvedTo;
|
20
|
-
}
|
21
|
-
get debugType() {
|
22
|
-
return 'node';
|
23
|
-
}
|
24
|
-
alias(specifier) {
|
25
|
-
return new NodeModuleRequest(this.resolver, specifier, this.fromFile, false, this.meta, false, undefined);
|
26
|
-
}
|
27
|
-
rehome(fromFile) {
|
28
|
-
if (this.fromFile === fromFile) {
|
29
|
-
return this;
|
30
|
-
}
|
31
|
-
else {
|
32
|
-
return new NodeModuleRequest(this.resolver, this.specifier, fromFile, false, this.meta, false, undefined);
|
33
|
-
}
|
34
|
-
}
|
35
|
-
virtualize(filename) {
|
36
|
-
return new NodeModuleRequest(this.resolver, filename, this.fromFile, true, this.meta, false, undefined);
|
37
|
-
}
|
38
|
-
withMeta(meta) {
|
39
|
-
return new NodeModuleRequest(this.resolver, this.specifier, this.fromFile, this.isVirtual, meta, this.isNotFound, this.resolvedTo);
|
40
|
-
}
|
41
|
-
notFound() {
|
42
|
-
return new NodeModuleRequest(this.resolver, this.specifier, this.fromFile, this.isVirtual, this.meta, true, undefined);
|
43
|
-
}
|
44
|
-
resolveTo(resolution) {
|
45
|
-
return new NodeModuleRequest(this.resolver, this.specifier, this.fromFile, this.isVirtual, this.meta, this.isNotFound, resolution);
|
46
|
-
}
|
47
|
-
async defaultResolve() {
|
48
|
-
const request = this;
|
49
|
-
if (request.isVirtual) {
|
50
|
-
return {
|
51
|
-
type: 'found',
|
52
|
-
filename: request.specifier,
|
53
|
-
isVirtual: true,
|
54
|
-
result: {
|
55
|
-
type: 'virtual',
|
56
|
-
content: (0, virtual_content_1.virtualContent)(request.specifier, this.resolver).src,
|
57
|
-
filename: request.specifier,
|
58
|
-
},
|
59
|
-
};
|
60
|
-
}
|
61
|
-
if (request.isNotFound) {
|
62
|
-
let err = new Error(`module not found ${request.specifier}`);
|
63
|
-
err.code = 'MODULE_NOT_FOUND';
|
64
|
-
return {
|
65
|
-
type: 'not_found',
|
66
|
-
err,
|
67
|
-
};
|
68
|
-
}
|
69
|
-
// require.resolve does not like when we resolve from virtual paths.
|
70
|
-
// That is, a request like "../thing.js" from
|
71
|
-
// "/a/real/path/VIRTUAL_SUBDIR/virtual.js" has an unambiguous target of
|
72
|
-
// "/a/real/path/thing.js", but require.resolve won't do that path
|
73
|
-
// adjustment until after checking whether VIRTUAL_SUBDIR actually
|
74
|
-
// exists.
|
75
|
-
//
|
76
|
-
// We can do the path adjustments before doing require.resolve.
|
77
|
-
let { specifier } = request;
|
78
|
-
let fromDir = (0, path_1.dirname)(request.fromFile);
|
79
|
-
if (!(0, path_1.isAbsolute)(specifier) && specifier.startsWith('.')) {
|
80
|
-
let targetPath = (0, path_1.resolve)(fromDir, specifier);
|
81
|
-
let newFromDir = (0, path_1.dirname)(targetPath);
|
82
|
-
if (fromDir !== newFromDir) {
|
83
|
-
specifier = (0, shared_internals_1.explicitRelative)(newFromDir, targetPath);
|
84
|
-
fromDir = newFromDir;
|
85
|
-
}
|
86
|
-
}
|
87
|
-
let initialError;
|
88
|
-
for (let candidate of candidates(specifier)) {
|
89
|
-
let filename;
|
90
|
-
try {
|
91
|
-
filename = require.resolve(candidate, {
|
92
|
-
paths: [fromDir],
|
93
|
-
});
|
94
|
-
}
|
95
|
-
catch (err) {
|
96
|
-
if (err.code !== 'MODULE_NOT_FOUND') {
|
97
|
-
throw err;
|
98
|
-
}
|
99
|
-
if (!initialError) {
|
100
|
-
initialError = err;
|
101
|
-
}
|
102
|
-
continue;
|
103
|
-
}
|
104
|
-
return { type: 'found', filename, result: { type: 'real', filename }, isVirtual: false };
|
105
|
-
}
|
106
|
-
return { type: 'not_found', err: initialError };
|
107
|
-
}
|
108
|
-
}
|
109
|
-
exports.NodeModuleRequest = NodeModuleRequest;
|
110
|
-
function* candidates(specifier) {
|
111
|
-
yield specifier;
|
112
|
-
const extensions = ['.hbs.js', '.hbs'];
|
113
|
-
for (let ext of extensions) {
|
114
|
-
yield `${specifier}${ext}`;
|
115
|
-
}
|
116
|
-
}
|
117
|
-
async function nodeResolve(resolver, specifier, fromFile) {
|
118
|
-
let resolution = await resolver.resolve(new NodeModuleRequest(resolver, specifier, fromFile, false, undefined, false, undefined));
|
119
|
-
switch (resolution.type) {
|
120
|
-
case 'not_found':
|
121
|
-
return resolution;
|
122
|
-
case 'found':
|
123
|
-
return resolution.result;
|
124
|
-
case 'ignored':
|
125
|
-
throw new Error(`bug: this is supposed to be impossible because NodeModuleRequest.prototype.defaultResove does not use "ignored"`);
|
126
|
-
default:
|
127
|
-
throw (0, assert_never_1.default)(resolution);
|
128
|
-
}
|
129
|
-
}
|
130
|
-
exports.nodeResolve = nodeResolve;
|
131
|
-
//# sourceMappingURL=node-resolve.js.map
|
package/src/node-resolve.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"node-resolve.js","sourceRoot":"","sources":["node-resolve.ts"],"names":[],"mappings":"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","sourcesContent":["import { virtualContent } from './virtual-content';\nimport { dirname, resolve, isAbsolute } from 'path';\nimport { explicitRelative } from '@embroider/shared-internals';\nimport assertNever from 'assert-never';\n\n// these would be circular, but they're type-only so it's fine\nimport type { ModuleRequest, Resolution, Resolver } from './module-resolver';\n\nexport class NodeModuleRequest implements ModuleRequest {\n constructor(\n private resolver: Resolver,\n readonly specifier: string,\n readonly fromFile: string,\n readonly isVirtual: boolean,\n readonly meta: Record<string, any> | undefined,\n readonly isNotFound: boolean,\n readonly resolvedTo: Resolution<NodeResolution, Error> | undefined\n ) {}\n\n get debugType() {\n return 'node';\n }\n\n alias(specifier: string): this {\n return new NodeModuleRequest(this.resolver, specifier, this.fromFile, false, this.meta, false, undefined) as this;\n }\n rehome(fromFile: string): this {\n if (this.fromFile === fromFile) {\n return this;\n } else {\n return new NodeModuleRequest(this.resolver, this.specifier, fromFile, false, this.meta, false, undefined) as this;\n }\n }\n virtualize(filename: string): this {\n return new NodeModuleRequest(this.resolver, filename, this.fromFile, true, this.meta, false, undefined) as this;\n }\n withMeta(meta: Record<string, any> | undefined): this {\n return new NodeModuleRequest(\n this.resolver,\n this.specifier,\n this.fromFile,\n this.isVirtual,\n meta,\n this.isNotFound,\n this.resolvedTo\n ) as this;\n }\n notFound(): this {\n return new NodeModuleRequest(\n this.resolver,\n this.specifier,\n this.fromFile,\n this.isVirtual,\n this.meta,\n true,\n undefined\n ) as this;\n }\n\n resolveTo(resolution: Resolution<NodeResolution, Error>): this {\n return new NodeModuleRequest(\n this.resolver,\n this.specifier,\n this.fromFile,\n this.isVirtual,\n this.meta,\n this.isNotFound,\n resolution\n ) as this;\n }\n\n async defaultResolve(): Promise<Resolution<NodeResolution, Error>> {\n const request = this;\n if (request.isVirtual) {\n return {\n type: 'found',\n filename: request.specifier,\n isVirtual: true,\n result: {\n type: 'virtual' as 'virtual',\n content: virtualContent(request.specifier, this.resolver).src,\n filename: request.specifier,\n },\n };\n }\n if (request.isNotFound) {\n let err = new Error(`module not found ${request.specifier}`);\n (err as any).code = 'MODULE_NOT_FOUND';\n return {\n type: 'not_found',\n err,\n };\n }\n\n // require.resolve does not like when we resolve from virtual paths.\n // That is, a request like \"../thing.js\" from\n // \"/a/real/path/VIRTUAL_SUBDIR/virtual.js\" has an unambiguous target of\n // \"/a/real/path/thing.js\", but require.resolve won't do that path\n // adjustment until after checking whether VIRTUAL_SUBDIR actually\n // exists.\n //\n // We can do the path adjustments before doing require.resolve.\n let { specifier } = request;\n let fromDir = dirname(request.fromFile);\n if (!isAbsolute(specifier) && specifier.startsWith('.')) {\n let targetPath = resolve(fromDir, specifier);\n let newFromDir = dirname(targetPath);\n if (fromDir !== newFromDir) {\n specifier = explicitRelative(newFromDir, targetPath);\n fromDir = newFromDir;\n }\n }\n\n let initialError;\n\n for (let candidate of candidates(specifier)) {\n let filename;\n try {\n filename = require.resolve(candidate, {\n paths: [fromDir],\n });\n } catch (err) {\n if (err.code !== 'MODULE_NOT_FOUND') {\n throw err;\n }\n\n if (!initialError) {\n initialError = err;\n }\n\n continue;\n }\n return { type: 'found', filename, result: { type: 'real' as 'real', filename }, isVirtual: false };\n }\n\n return { type: 'not_found', err: initialError };\n }\n}\n\nfunction* candidates(specifier: string) {\n yield specifier;\n\n const extensions = ['.hbs.js', '.hbs'];\n\n for (let ext of extensions) {\n yield `${specifier}${ext}`;\n }\n}\n\ntype NodeResolution = { type: 'virtual'; filename: string; content: string } | { type: 'real'; filename: string };\n\ntype NodeResolutionError = { type: 'not_found'; err: Error };\n\nexport async function nodeResolve(\n resolver: Resolver,\n specifier: string,\n fromFile: string\n): Promise<NodeResolution | NodeResolutionError> {\n let resolution = await resolver.resolve(\n new NodeModuleRequest(resolver, specifier, fromFile, false, undefined, false, undefined)\n );\n switch (resolution.type) {\n case 'not_found':\n return resolution;\n case 'found':\n return resolution.result;\n case 'ignored':\n throw new Error(\n `bug: this is supposed to be impossible because NodeModuleRequest.prototype.defaultResove does not use \"ignored\"`\n );\n default:\n throw assertNever(resolution);\n }\n}\n"]}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { AppFiles, type RouteFiles } from './app-files';
|
2
|
-
import type { Resolver } from './module-resolver';
|
3
|
-
export declare function decodeEntrypoint(filename: string): {
|
4
|
-
fromFile: string;
|
5
|
-
} | undefined;
|
6
|
-
export declare function staticAppPathsPattern(staticAppPaths: string[] | undefined): RegExp | undefined;
|
7
|
-
export declare function renderEntrypoint(resolver: Resolver, { fromFile }: {
|
8
|
-
fromFile: string;
|
9
|
-
}): {
|
10
|
-
src: string;
|
11
|
-
watches: string[];
|
12
|
-
};
|
13
|
-
export declare function importPaths(resolver: Resolver, { engine }: AppFiles, engineRelativePath: string): {
|
14
|
-
runtime: string;
|
15
|
-
buildtime: string;
|
16
|
-
};
|
17
|
-
export declare function splitRoute(routeName: string, files: RouteFiles, splitAtRoutes: (RegExp | string)[] | undefined, addToParent: (routeName: string, filename: string) => void, addLazyBundle: (routeNames: string[], files: string[]) => void): void;
|
18
|
-
export declare function getAppFiles(appRoot: string): Set<string>;
|
19
|
-
export declare function getFastbootFiles(appRoot: string): Set<string>;
|
@@ -1,316 +0,0 @@
|
|
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.getFastbootFiles = exports.getAppFiles = exports.splitRoute = exports.importPaths = exports.renderEntrypoint = exports.staticAppPathsPattern = exports.decodeEntrypoint = void 0;
|
7
|
-
const app_files_1 = require("./app-files");
|
8
|
-
const js_handlebars_1 = require("./js-handlebars");
|
9
|
-
const lodash_1 = require("lodash");
|
10
|
-
const path_1 = require("path");
|
11
|
-
const shared_internals_1 = require("@embroider/shared-internals");
|
12
|
-
const walk_sync_1 = __importDefault(require("walk-sync"));
|
13
|
-
const virtual_route_entrypoint_1 = require("./virtual-route-entrypoint");
|
14
|
-
const fs_extra_1 = require("fs-extra");
|
15
|
-
const escape_string_regexp_1 = __importDefault(require("escape-string-regexp"));
|
16
|
-
const entrypointPattern = /(?<filename>.*)[\\/]-embroider-entrypoint.js/;
|
17
|
-
function decodeEntrypoint(filename) {
|
18
|
-
// Performance: avoid paying regex exec cost unless needed
|
19
|
-
if (!filename.includes('-embroider-entrypoint')) {
|
20
|
-
return;
|
21
|
-
}
|
22
|
-
let m = entrypointPattern.exec(filename);
|
23
|
-
if (m) {
|
24
|
-
return {
|
25
|
-
fromFile: m.groups.filename,
|
26
|
-
};
|
27
|
-
}
|
28
|
-
}
|
29
|
-
exports.decodeEntrypoint = decodeEntrypoint;
|
30
|
-
function staticAppPathsPattern(staticAppPaths) {
|
31
|
-
if (staticAppPaths && staticAppPaths.length > 0) {
|
32
|
-
return new RegExp('^(?:' + staticAppPaths.map(staticAppPath => (0, escape_string_regexp_1.default)(staticAppPath)).join('|') + ')(?:$|/)');
|
33
|
-
}
|
34
|
-
}
|
35
|
-
exports.staticAppPathsPattern = staticAppPathsPattern;
|
36
|
-
function renderEntrypoint(resolver, { fromFile }) {
|
37
|
-
// this is new
|
38
|
-
const owner = resolver.packageCache.ownerOfFile(fromFile);
|
39
|
-
let eagerModules = [];
|
40
|
-
if (!owner) {
|
41
|
-
throw new Error('Owner expected'); // ToDo: Really bad error, update message
|
42
|
-
}
|
43
|
-
let engine = resolver.owningEngine(owner);
|
44
|
-
let isApp = (owner === null || owner === void 0 ? void 0 : owner.root) === resolver.options.engines[0].root;
|
45
|
-
let hasFastboot = Boolean(resolver.options.engines[0].activeAddons.find(a => a.name === 'ember-cli-fastboot'));
|
46
|
-
let appFiles = new app_files_1.AppFiles({
|
47
|
-
package: owner,
|
48
|
-
addons: new Map(engine.activeAddons.map(addon => [
|
49
|
-
resolver.packageCache.get(addon.root),
|
50
|
-
addon.canResolveFromFile,
|
51
|
-
])),
|
52
|
-
isApp,
|
53
|
-
modulePrefix: isApp ? resolver.options.modulePrefix : engine.packageName,
|
54
|
-
appRelativePath: 'NOT_USED_DELETE_ME',
|
55
|
-
}, getAppFiles(owner.root), hasFastboot ? getFastbootFiles(owner.root) : new Set(), (0, shared_internals_1.extensionsPattern)(resolver.options.resolvableExtensions), staticAppPathsPattern(resolver.options.staticAppPaths), resolver.options.podModulePrefix);
|
56
|
-
let options = resolver.options.options;
|
57
|
-
let requiredAppFiles = [appFiles.otherAppFiles];
|
58
|
-
if (!options.staticComponents) {
|
59
|
-
requiredAppFiles.push(appFiles.components);
|
60
|
-
}
|
61
|
-
if (!options.staticHelpers) {
|
62
|
-
requiredAppFiles.push(appFiles.helpers);
|
63
|
-
}
|
64
|
-
if (!options.staticModifiers) {
|
65
|
-
requiredAppFiles.push(appFiles.modifiers);
|
66
|
-
}
|
67
|
-
let styles = [];
|
68
|
-
// only import styles from engines with a parent (this excludeds the parent application) as their styles
|
69
|
-
// will be inserted via a direct <link> tag.
|
70
|
-
if (!appFiles.engine.isApp && appFiles.engine.package.isLazyEngine()) {
|
71
|
-
styles.push({
|
72
|
-
path: '@embroider/core/vendor.css',
|
73
|
-
});
|
74
|
-
}
|
75
|
-
let lazyEngines = [];
|
76
|
-
if (isApp) {
|
77
|
-
// deliberately ignoring the app (which is the first entry in the engines array)
|
78
|
-
let [, ...childEngines] = resolver.options.engines;
|
79
|
-
for (let childEngine of childEngines) {
|
80
|
-
let target = `@embroider/core/entrypoint/${childEngine.packageName}`;
|
81
|
-
if (childEngine.isLazy) {
|
82
|
-
lazyEngines.push({
|
83
|
-
names: [childEngine.packageName],
|
84
|
-
path: target,
|
85
|
-
});
|
86
|
-
}
|
87
|
-
else {
|
88
|
-
eagerModules.push(target);
|
89
|
-
}
|
90
|
-
}
|
91
|
-
}
|
92
|
-
let lazyRoutes = [];
|
93
|
-
for (let [routeName, routeFiles] of appFiles.routeFiles.children) {
|
94
|
-
splitRoute(routeName, routeFiles, resolver.options.splitAtRoutes, (_, filename) => {
|
95
|
-
requiredAppFiles.push([filename]);
|
96
|
-
}, (routeNames, _files) => {
|
97
|
-
lazyRoutes.push({
|
98
|
-
names: routeNames,
|
99
|
-
path: (0, virtual_route_entrypoint_1.encodePublicRouteEntrypoint)(routeNames, _files),
|
100
|
-
});
|
101
|
-
});
|
102
|
-
}
|
103
|
-
let [fastboot, nonFastboot] = (0, lodash_1.partition)(excludeDotFiles((0, lodash_1.flatten)(requiredAppFiles)), file => appFiles.isFastbootOnly.get(file));
|
104
|
-
let amdModules = nonFastboot.map(file => importPaths(resolver, appFiles, file));
|
105
|
-
let fastbootOnlyAmdModules = fastboot.map(file => importPaths(resolver, appFiles, file));
|
106
|
-
let params = {
|
107
|
-
amdModules,
|
108
|
-
fastbootOnlyAmdModules,
|
109
|
-
lazyRoutes,
|
110
|
-
lazyEngines,
|
111
|
-
eagerModules,
|
112
|
-
styles,
|
113
|
-
// this is a backward-compatibility feature: addons can force inclusion of modules.
|
114
|
-
defineModulesFrom: './-embroider-implicit-modules.js',
|
115
|
-
};
|
116
|
-
// for the top-level entry template we need to pass extra params to the template
|
117
|
-
// this is new, it used to be passed into the appJS function instead
|
118
|
-
if (isApp) {
|
119
|
-
const appBoot = (0, fs_extra_1.readFileSync)((0, path_1.join)((0, shared_internals_1.locateEmbroiderWorkingDir)(resolver.options.appRoot), 'ember-app-boot.js'), {
|
120
|
-
encoding: 'utf-8',
|
121
|
-
});
|
122
|
-
Object.assign(params, {
|
123
|
-
autoRun: resolver.options.autoRun,
|
124
|
-
appBoot,
|
125
|
-
mainModule: './app',
|
126
|
-
});
|
127
|
-
}
|
128
|
-
return {
|
129
|
-
src: entryTemplate(params),
|
130
|
-
watches: [],
|
131
|
-
};
|
132
|
-
}
|
133
|
-
exports.renderEntrypoint = renderEntrypoint;
|
134
|
-
const entryTemplate = (0, js_handlebars_1.compile)(`
|
135
|
-
import { importSync as i, macroCondition, getGlobalConfig } from '@embroider/macros';
|
136
|
-
let w = window;
|
137
|
-
let d = w.define;
|
138
|
-
|
139
|
-
import environment from './config/environment';
|
140
|
-
|
141
|
-
{{#if styles}}
|
142
|
-
if (macroCondition(!getGlobalConfig().fastboot?.isRunning)) {
|
143
|
-
{{#each styles as |stylePath| ~}}
|
144
|
-
await import("{{js-string-escape stylePath.path}}");
|
145
|
-
{{/each}}
|
146
|
-
}
|
147
|
-
{{/if}}
|
148
|
-
|
149
|
-
{{#if defineModulesFrom ~}}
|
150
|
-
import implicitModules from "{{js-string-escape defineModulesFrom}}";
|
151
|
-
|
152
|
-
for(const [name, module] of Object.entries(implicitModules)) {
|
153
|
-
d(name, function() { return module });
|
154
|
-
}
|
155
|
-
{{/if}}
|
156
|
-
|
157
|
-
|
158
|
-
{{#each eagerModules as |eagerModule| ~}}
|
159
|
-
import "{{js-string-escape eagerModule}}";
|
160
|
-
{{/each}}
|
161
|
-
|
162
|
-
{{#each amdModules as |amdModule index| ~}}
|
163
|
-
import * as amdModule{{index}} from "{{js-string-escape amdModule.buildtime}}"
|
164
|
-
d("{{js-string-escape amdModule.runtime}}", function(){ return amdModule{{index}}; });
|
165
|
-
{{/each}}
|
166
|
-
|
167
|
-
{{#if fastbootOnlyAmdModules}}
|
168
|
-
if (macroCondition(getGlobalConfig().fastboot?.isRunning)) {
|
169
|
-
let fastbootModules = {};
|
170
|
-
|
171
|
-
{{#each fastbootOnlyAmdModules as |amdModule| ~}}
|
172
|
-
fastbootModules["{{js-string-escape amdModule.runtime}}"] = import("{{js-string-escape amdModule.buildtime}}");
|
173
|
-
{{/each}}
|
174
|
-
|
175
|
-
const resolvedValues = await Promise.all(Object.values(fastbootModules));
|
176
|
-
|
177
|
-
Object.keys(fastbootModules).forEach((k, i) => {
|
178
|
-
d(k, function(){ return resolvedValues[i];});
|
179
|
-
})
|
180
|
-
}
|
181
|
-
{{/if}}
|
182
|
-
|
183
|
-
|
184
|
-
{{#if lazyRoutes}}
|
185
|
-
w._embroiderRouteBundles_ = [
|
186
|
-
{{#each lazyRoutes as |route|}}
|
187
|
-
{
|
188
|
-
names: {{json-stringify route.names}},
|
189
|
-
load: function() {
|
190
|
-
return import("{{js-string-escape route.path}}");
|
191
|
-
}
|
192
|
-
},
|
193
|
-
{{/each}}
|
194
|
-
]
|
195
|
-
{{/if}}
|
196
|
-
|
197
|
-
{{#if lazyEngines}}
|
198
|
-
w._embroiderEngineBundles_ = [
|
199
|
-
{{#each lazyEngines as |engine|}}
|
200
|
-
{
|
201
|
-
names: {{json-stringify engine.names}},
|
202
|
-
load: function() {
|
203
|
-
return import("{{js-string-escape engine.path}}");
|
204
|
-
}
|
205
|
-
},
|
206
|
-
{{/each}}
|
207
|
-
]
|
208
|
-
{{/if}}
|
209
|
-
|
210
|
-
{{#if autoRun ~}}
|
211
|
-
if (!runningTests) {
|
212
|
-
i("{{js-string-escape mainModule}}").default.create(environment.APP);
|
213
|
-
}
|
214
|
-
{{else if appBoot ~}}
|
215
|
-
{{ appBoot }}
|
216
|
-
{{/if}}
|
217
|
-
|
218
|
-
{{#if testSuffix ~}}
|
219
|
-
{{!- TODO: both of these suffixes should get dynamically generated so they incorporate
|
220
|
-
any content-for added by addons. -}}
|
221
|
-
|
222
|
-
|
223
|
-
{{!- this is the traditional tests-suffix.js -}}
|
224
|
-
i('../tests/test-helper');
|
225
|
-
EmberENV.TESTS_FILE_LOADED = true;
|
226
|
-
{{/if}}
|
227
|
-
`);
|
228
|
-
function excludeDotFiles(files) {
|
229
|
-
return files.filter(file => !file.startsWith('.') && !file.includes('/.'));
|
230
|
-
}
|
231
|
-
function importPaths(resolver, { engine }, engineRelativePath) {
|
232
|
-
let resolvableExtensionsPattern = (0, shared_internals_1.extensionsPattern)(resolver.options.resolvableExtensions);
|
233
|
-
let noHBS = engineRelativePath.replace(resolvableExtensionsPattern, '').replace(/\.hbs$/, '');
|
234
|
-
return {
|
235
|
-
runtime: `${engine.modulePrefix}/${noHBS}`,
|
236
|
-
buildtime: `./${engineRelativePath}`,
|
237
|
-
};
|
238
|
-
}
|
239
|
-
exports.importPaths = importPaths;
|
240
|
-
function splitRoute(routeName, files, splitAtRoutes, addToParent, addLazyBundle) {
|
241
|
-
let shouldSplit = routeName && shouldSplitRoute(routeName, splitAtRoutes);
|
242
|
-
let ownFiles = [];
|
243
|
-
let ownNames = new Set();
|
244
|
-
if (files.template) {
|
245
|
-
if (shouldSplit) {
|
246
|
-
ownFiles.push(files.template);
|
247
|
-
ownNames.add(routeName);
|
248
|
-
}
|
249
|
-
else {
|
250
|
-
addToParent(routeName, files.template);
|
251
|
-
}
|
252
|
-
}
|
253
|
-
if (files.controller) {
|
254
|
-
if (shouldSplit) {
|
255
|
-
ownFiles.push(files.controller);
|
256
|
-
ownNames.add(routeName);
|
257
|
-
}
|
258
|
-
else {
|
259
|
-
addToParent(routeName, files.controller);
|
260
|
-
}
|
261
|
-
}
|
262
|
-
if (files.route) {
|
263
|
-
if (shouldSplit) {
|
264
|
-
ownFiles.push(files.route);
|
265
|
-
ownNames.add(routeName);
|
266
|
-
}
|
267
|
-
else {
|
268
|
-
addToParent(routeName, files.route);
|
269
|
-
}
|
270
|
-
}
|
271
|
-
for (let [childName, childFiles] of files.children) {
|
272
|
-
splitRoute(`${routeName}.${childName}`, childFiles, splitAtRoutes, (childRouteName, childFile) => {
|
273
|
-
// this is our child calling "addToParent"
|
274
|
-
if (shouldSplit) {
|
275
|
-
ownFiles.push(childFile);
|
276
|
-
ownNames.add(childRouteName);
|
277
|
-
}
|
278
|
-
else {
|
279
|
-
addToParent(childRouteName, childFile);
|
280
|
-
}
|
281
|
-
}, (routeNames, files) => {
|
282
|
-
addLazyBundle(routeNames, files);
|
283
|
-
});
|
284
|
-
}
|
285
|
-
if (ownFiles.length > 0) {
|
286
|
-
addLazyBundle([...ownNames], ownFiles);
|
287
|
-
}
|
288
|
-
}
|
289
|
-
exports.splitRoute = splitRoute;
|
290
|
-
function shouldSplitRoute(routeName, splitAtRoutes) {
|
291
|
-
if (!splitAtRoutes) {
|
292
|
-
return false;
|
293
|
-
}
|
294
|
-
return splitAtRoutes.find(pattern => {
|
295
|
-
if (typeof pattern === 'string') {
|
296
|
-
return pattern === routeName;
|
297
|
-
}
|
298
|
-
else {
|
299
|
-
return pattern.test(routeName);
|
300
|
-
}
|
301
|
-
});
|
302
|
-
}
|
303
|
-
function getAppFiles(appRoot) {
|
304
|
-
const files = (0, walk_sync_1.default)(appRoot, {
|
305
|
-
ignore: ['_babel_config_.js', '_babel_filter_.js', 'app.js', 'assets', 'testem.js', 'node_modules'],
|
306
|
-
});
|
307
|
-
return new Set(files);
|
308
|
-
}
|
309
|
-
exports.getAppFiles = getAppFiles;
|
310
|
-
function getFastbootFiles(appRoot) {
|
311
|
-
const appDirPath = (0, path_1.join)(appRoot, '_fastboot_');
|
312
|
-
const files = (0, walk_sync_1.default)(appDirPath);
|
313
|
-
return new Set(files);
|
314
|
-
}
|
315
|
-
exports.getFastbootFiles = getFastbootFiles;
|
316
|
-
//# sourceMappingURL=virtual-entrypoint.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"virtual-entrypoint.js","sourceRoot":"","sources":["virtual-entrypoint.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppFiles, type RouteFiles } from './app-files';\nimport { compile } from './js-handlebars';\nimport type { Resolver } from './module-resolver';\nimport type { CompatResolverOptions } from '../../compat/src/resolver-transform';\nimport { flatten, partition } from 'lodash';\nimport { join } from 'path';\nimport { extensionsPattern, locateEmbroiderWorkingDir } from '@embroider/shared-internals';\nimport walkSync from 'walk-sync';\nimport type { V2AddonPackage } from '@embroider/shared-internals/src/package';\nimport { encodePublicRouteEntrypoint } from './virtual-route-entrypoint';\nimport { readFileSync } from 'fs-extra';\nimport escapeRegExp from 'escape-string-regexp';\n\nconst entrypointPattern = /(?<filename>.*)[\\\\/]-embroider-entrypoint.js/;\n\nexport function decodeEntrypoint(filename: string): { fromFile: string } | undefined {\n // Performance: avoid paying regex exec cost unless needed\n if (!filename.includes('-embroider-entrypoint')) {\n return;\n }\n let m = entrypointPattern.exec(filename);\n if (m) {\n return {\n fromFile: m.groups!.filename,\n };\n }\n}\n\nexport function staticAppPathsPattern(staticAppPaths: string[] | undefined): RegExp | undefined {\n if (staticAppPaths && staticAppPaths.length > 0) {\n return new RegExp('^(?:' + staticAppPaths.map(staticAppPath => escapeRegExp(staticAppPath)).join('|') + ')(?:$|/)');\n }\n}\n\nexport function renderEntrypoint(\n resolver: Resolver,\n { fromFile }: { fromFile: string }\n): { src: string; watches: string[] } {\n // this is new\n const owner = resolver.packageCache.ownerOfFile(fromFile);\n\n let eagerModules: string[] = [];\n\n if (!owner) {\n throw new Error('Owner expected'); // ToDo: Really bad error, update message\n }\n\n let engine = resolver.owningEngine(owner);\n let isApp = owner?.root === resolver.options.engines[0]!.root;\n let hasFastboot = Boolean(resolver.options.engines[0]!.activeAddons.find(a => a.name === 'ember-cli-fastboot'));\n\n let appFiles = new AppFiles(\n {\n package: owner,\n addons: new Map(\n engine.activeAddons.map(addon => [\n resolver.packageCache.get(addon.root) as V2AddonPackage,\n addon.canResolveFromFile,\n ])\n ),\n isApp,\n modulePrefix: isApp ? resolver.options.modulePrefix : engine.packageName,\n appRelativePath: 'NOT_USED_DELETE_ME',\n },\n getAppFiles(owner.root),\n hasFastboot ? getFastbootFiles(owner.root) : new Set(),\n extensionsPattern(resolver.options.resolvableExtensions),\n staticAppPathsPattern(resolver.options.staticAppPaths),\n resolver.options.podModulePrefix\n );\n\n let options = (resolver.options as CompatResolverOptions).options;\n\n let requiredAppFiles = [appFiles.otherAppFiles];\n if (!options.staticComponents) {\n requiredAppFiles.push(appFiles.components);\n }\n if (!options.staticHelpers) {\n requiredAppFiles.push(appFiles.helpers);\n }\n if (!options.staticModifiers) {\n requiredAppFiles.push(appFiles.modifiers);\n }\n\n let styles = [];\n // only import styles from engines with a parent (this excludeds the parent application) as their styles\n // will be inserted via a direct <link> tag.\n if (!appFiles.engine.isApp && appFiles.engine.package.isLazyEngine()) {\n styles.push({\n path: '@embroider/core/vendor.css',\n });\n }\n\n let lazyEngines: { names: string[]; path: string }[] = [];\n\n if (isApp) {\n // deliberately ignoring the app (which is the first entry in the engines array)\n let [, ...childEngines] = resolver.options.engines;\n for (let childEngine of childEngines) {\n let target = `@embroider/core/entrypoint/${childEngine.packageName}`;\n\n if (childEngine.isLazy) {\n lazyEngines.push({\n names: [childEngine.packageName],\n path: target,\n });\n } else {\n eagerModules.push(target);\n }\n }\n }\n\n let lazyRoutes: { names: string[]; path: string }[] = [];\n for (let [routeName, routeFiles] of appFiles.routeFiles.children) {\n splitRoute(\n routeName,\n routeFiles,\n resolver.options.splitAtRoutes,\n (_: string, filename: string) => {\n requiredAppFiles.push([filename]);\n },\n (routeNames: string[], _files: string[]) => {\n lazyRoutes.push({\n names: routeNames,\n path: encodePublicRouteEntrypoint(routeNames, _files),\n });\n }\n );\n }\n\n let [fastboot, nonFastboot] = partition(excludeDotFiles(flatten(requiredAppFiles)), file =>\n appFiles.isFastbootOnly.get(file)\n );\n\n let amdModules = nonFastboot.map(file => importPaths(resolver, appFiles, file));\n let fastbootOnlyAmdModules = fastboot.map(file => importPaths(resolver, appFiles, file));\n\n let params = {\n amdModules,\n fastbootOnlyAmdModules,\n lazyRoutes,\n lazyEngines,\n eagerModules,\n styles,\n // this is a backward-compatibility feature: addons can force inclusion of modules.\n defineModulesFrom: './-embroider-implicit-modules.js',\n };\n\n // for the top-level entry template we need to pass extra params to the template\n // this is new, it used to be passed into the appJS function instead\n if (isApp) {\n const appBoot = readFileSync(join(locateEmbroiderWorkingDir(resolver.options.appRoot), 'ember-app-boot.js'), {\n encoding: 'utf-8',\n });\n\n Object.assign(params, {\n autoRun: resolver.options.autoRun,\n appBoot,\n mainModule: './app',\n });\n }\n\n return {\n src: entryTemplate(params),\n watches: [],\n };\n}\n\nconst entryTemplate = compile(`\nimport { importSync as i, macroCondition, getGlobalConfig } from '@embroider/macros';\nlet w = window;\nlet d = w.define;\n\nimport environment from './config/environment';\n\n{{#if styles}}\n if (macroCondition(!getGlobalConfig().fastboot?.isRunning)) {\n {{#each styles as |stylePath| ~}}\n await import(\"{{js-string-escape stylePath.path}}\");\n {{/each}}\n }\n{{/if}}\n\n{{#if defineModulesFrom ~}}\n import implicitModules from \"{{js-string-escape defineModulesFrom}}\";\n\n for(const [name, module] of Object.entries(implicitModules)) {\n d(name, function() { return module });\n }\n{{/if}}\n\n\n{{#each eagerModules as |eagerModule| ~}}\n import \"{{js-string-escape eagerModule}}\";\n{{/each}}\n\n{{#each amdModules as |amdModule index| ~}}\n import * as amdModule{{index}} from \"{{js-string-escape amdModule.buildtime}}\"\n d(\"{{js-string-escape amdModule.runtime}}\", function(){ return amdModule{{index}}; });\n{{/each}}\n\n{{#if fastbootOnlyAmdModules}}\n if (macroCondition(getGlobalConfig().fastboot?.isRunning)) {\n let fastbootModules = {};\n\n {{#each fastbootOnlyAmdModules as |amdModule| ~}}\n fastbootModules[\"{{js-string-escape amdModule.runtime}}\"] = import(\"{{js-string-escape amdModule.buildtime}}\");\n {{/each}}\n\n const resolvedValues = await Promise.all(Object.values(fastbootModules));\n\n Object.keys(fastbootModules).forEach((k, i) => {\n d(k, function(){ return resolvedValues[i];});\n })\n }\n{{/if}}\n\n\n{{#if lazyRoutes}}\nw._embroiderRouteBundles_ = [\n {{#each lazyRoutes as |route|}}\n {\n names: {{json-stringify route.names}},\n load: function() {\n return import(\"{{js-string-escape route.path}}\");\n }\n },\n {{/each}}\n]\n{{/if}}\n\n{{#if lazyEngines}}\nw._embroiderEngineBundles_ = [\n {{#each lazyEngines as |engine|}}\n {\n names: {{json-stringify engine.names}},\n load: function() {\n return import(\"{{js-string-escape engine.path}}\");\n }\n },\n {{/each}}\n]\n{{/if}}\n\n{{#if autoRun ~}}\nif (!runningTests) {\n i(\"{{js-string-escape mainModule}}\").default.create(environment.APP);\n}\n{{else if appBoot ~}}\n {{ appBoot }}\n{{/if}}\n\n{{#if testSuffix ~}}\n {{!- TODO: both of these suffixes should get dynamically generated so they incorporate\n any content-for added by addons. -}}\n\n\n {{!- this is the traditional tests-suffix.js -}}\n i('../tests/test-helper');\n EmberENV.TESTS_FILE_LOADED = true;\n{{/if}}\n`) as (params: {\n amdModules: { runtime: string; buildtime: string }[];\n fastbootOnlyAmdModules?: { runtime: string; buildtime: string }[];\n defineModulesFrom?: string;\n eagerModules?: string[];\n autoRun?: boolean;\n appBoot?: string;\n mainModule?: string;\n testSuffix?: boolean;\n lazyRoutes?: { names: string[]; path: string }[];\n lazyEngines?: { names: string[]; path: string }[];\n styles?: { path: string }[];\n}) => string;\n\nfunction excludeDotFiles(files: string[]) {\n return files.filter(file => !file.startsWith('.') && !file.includes('/.'));\n}\n\nexport function importPaths(resolver: Resolver, { engine }: AppFiles, engineRelativePath: string) {\n let resolvableExtensionsPattern = extensionsPattern(resolver.options.resolvableExtensions);\n let noHBS = engineRelativePath.replace(resolvableExtensionsPattern, '').replace(/\\.hbs$/, '');\n return {\n runtime: `${engine.modulePrefix}/${noHBS}`,\n buildtime: `./${engineRelativePath}`,\n };\n}\n\nexport function splitRoute(\n routeName: string,\n files: RouteFiles,\n splitAtRoutes: (RegExp | string)[] | undefined,\n addToParent: (routeName: string, filename: string) => void,\n addLazyBundle: (routeNames: string[], files: string[]) => void\n) {\n let shouldSplit = routeName && shouldSplitRoute(routeName, splitAtRoutes);\n let ownFiles = [];\n let ownNames = new Set() as Set<string>;\n\n if (files.template) {\n if (shouldSplit) {\n ownFiles.push(files.template);\n ownNames.add(routeName);\n } else {\n addToParent(routeName, files.template);\n }\n }\n\n if (files.controller) {\n if (shouldSplit) {\n ownFiles.push(files.controller);\n ownNames.add(routeName);\n } else {\n addToParent(routeName, files.controller);\n }\n }\n\n if (files.route) {\n if (shouldSplit) {\n ownFiles.push(files.route);\n ownNames.add(routeName);\n } else {\n addToParent(routeName, files.route);\n }\n }\n\n for (let [childName, childFiles] of files.children) {\n splitRoute(\n `${routeName}.${childName}`,\n childFiles,\n splitAtRoutes,\n (childRouteName: string, childFile: string) => {\n // this is our child calling \"addToParent\"\n if (shouldSplit) {\n ownFiles.push(childFile);\n ownNames.add(childRouteName);\n } else {\n addToParent(childRouteName, childFile);\n }\n },\n (routeNames: string[], files: string[]) => {\n addLazyBundle(routeNames, files);\n }\n );\n }\n\n if (ownFiles.length > 0) {\n addLazyBundle([...ownNames], ownFiles);\n }\n}\n\nfunction shouldSplitRoute(routeName: string, splitAtRoutes: (RegExp | string)[] | undefined) {\n if (!splitAtRoutes) {\n return false;\n }\n return splitAtRoutes.find(pattern => {\n if (typeof pattern === 'string') {\n return pattern === routeName;\n } else {\n return pattern.test(routeName);\n }\n });\n}\n\nexport function getAppFiles(appRoot: string): Set<string> {\n const files: string[] = walkSync(appRoot, {\n ignore: ['_babel_config_.js', '_babel_filter_.js', 'app.js', 'assets', 'testem.js', 'node_modules'],\n });\n return new Set(files);\n}\n\nexport function getFastbootFiles(appRoot: string): Set<string> {\n const appDirPath = join(appRoot, '_fastboot_');\n const files: string[] = walkSync(appDirPath);\n return new Set(files);\n}\n"]}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import type { Resolver } from './module-resolver';
|
2
|
-
export declare function encodeRouteEntrypoint(packagePath: string, routeName: string): string;
|
3
|
-
export declare function decodeRouteEntrypoint(filename: string): {
|
4
|
-
fromFile: string;
|
5
|
-
route: string;
|
6
|
-
} | undefined;
|
7
|
-
export declare function encodePublicRouteEntrypoint(routeNames: string[], _files: string[]): string;
|
8
|
-
export declare function decodePublicRouteEntrypoint(specifier: string): string | null;
|
9
|
-
export declare function renderRouteEntrypoint(resolver: Resolver, { fromFile, route }: {
|
10
|
-
fromFile: string;
|
11
|
-
route: string;
|
12
|
-
}): {
|
13
|
-
src: string;
|
14
|
-
watches: string[];
|
15
|
-
};
|
@@ -1,102 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.renderRouteEntrypoint = exports.decodePublicRouteEntrypoint = exports.encodePublicRouteEntrypoint = exports.decodeRouteEntrypoint = exports.encodeRouteEntrypoint = void 0;
|
4
|
-
const app_files_1 = require("./app-files");
|
5
|
-
const path_1 = require("path");
|
6
|
-
const js_handlebars_1 = require("./js-handlebars");
|
7
|
-
const shared_internals_1 = require("@embroider/shared-internals");
|
8
|
-
const lodash_1 = require("lodash");
|
9
|
-
const virtual_entrypoint_1 = require("./virtual-entrypoint");
|
10
|
-
const entrypointPattern = /(?<filename>.*)[\\/]-embroider-route-entrypoint.js:route=(?<route>.*)/;
|
11
|
-
function encodeRouteEntrypoint(packagePath, routeName) {
|
12
|
-
return (0, path_1.resolve)(packagePath, `-embroider-route-entrypoint.js:route=${routeName}`);
|
13
|
-
}
|
14
|
-
exports.encodeRouteEntrypoint = encodeRouteEntrypoint;
|
15
|
-
function decodeRouteEntrypoint(filename) {
|
16
|
-
// Performance: avoid paying regex exec cost unless needed
|
17
|
-
if (!filename.includes('-embroider-route-entrypoint')) {
|
18
|
-
return;
|
19
|
-
}
|
20
|
-
let m = entrypointPattern.exec(filename);
|
21
|
-
if (m) {
|
22
|
-
return {
|
23
|
-
fromFile: m.groups.filename,
|
24
|
-
route: m.groups.route,
|
25
|
-
};
|
26
|
-
}
|
27
|
-
}
|
28
|
-
exports.decodeRouteEntrypoint = decodeRouteEntrypoint;
|
29
|
-
function encodePublicRouteEntrypoint(routeNames, _files) {
|
30
|
-
return `@embroider/core/route/${encodeURIComponent(routeNames[0])}`;
|
31
|
-
}
|
32
|
-
exports.encodePublicRouteEntrypoint = encodePublicRouteEntrypoint;
|
33
|
-
function decodePublicRouteEntrypoint(specifier) {
|
34
|
-
const publicPrefix = '@embroider/core/route/';
|
35
|
-
if (!specifier.startsWith(publicPrefix)) {
|
36
|
-
return null;
|
37
|
-
}
|
38
|
-
return specifier.slice(publicPrefix.length);
|
39
|
-
}
|
40
|
-
exports.decodePublicRouteEntrypoint = decodePublicRouteEntrypoint;
|
41
|
-
function renderRouteEntrypoint(resolver, { fromFile, route }) {
|
42
|
-
const owner = resolver.packageCache.ownerOfFile(fromFile);
|
43
|
-
if (!owner) {
|
44
|
-
throw new Error('Owner expected'); // ToDo: Really bad error, update message
|
45
|
-
}
|
46
|
-
let engine = resolver.owningEngine(owner);
|
47
|
-
let isApp = (owner === null || owner === void 0 ? void 0 : owner.root) === resolver.options.engines[0].root;
|
48
|
-
let hasFastboot = Boolean(resolver.options.engines[0].activeAddons.find(a => a.name === 'ember-cli-fastboot'));
|
49
|
-
let appFiles = new app_files_1.AppFiles({
|
50
|
-
package: owner,
|
51
|
-
addons: new Map(engine.activeAddons.map(addon => [
|
52
|
-
resolver.packageCache.get(addon.root),
|
53
|
-
addon.canResolveFromFile,
|
54
|
-
])),
|
55
|
-
isApp,
|
56
|
-
modulePrefix: isApp ? resolver.options.modulePrefix : engine.packageName,
|
57
|
-
appRelativePath: 'NOT_USED_DELETE_ME',
|
58
|
-
}, (0, virtual_entrypoint_1.getAppFiles)(owner.root), hasFastboot ? (0, virtual_entrypoint_1.getFastbootFiles)(owner.root) : new Set(), (0, shared_internals_1.extensionsPattern)(resolver.options.resolvableExtensions), (0, virtual_entrypoint_1.staticAppPathsPattern)(resolver.options.staticAppPaths), resolver.options.podModulePrefix);
|
59
|
-
let src = '';
|
60
|
-
for (let [routeName, routeFiles] of appFiles.routeFiles.children) {
|
61
|
-
(0, virtual_entrypoint_1.splitRoute)(routeName, routeFiles, resolver.options.splitAtRoutes, (_, _filename) => {
|
62
|
-
// noop
|
63
|
-
}, (routeNames, routeFiles) => {
|
64
|
-
if (routeNames[0] === route) {
|
65
|
-
let [fastboot, nonFastboot] = (0, lodash_1.partition)(routeFiles, file => appFiles.isFastbootOnly.get(file));
|
66
|
-
const amdModules = nonFastboot.map(f => (0, virtual_entrypoint_1.importPaths)(resolver, appFiles, f));
|
67
|
-
const fastbootOnlyAmdModules = fastboot.map(f => (0, virtual_entrypoint_1.importPaths)(resolver, appFiles, f));
|
68
|
-
src = routeEntryTemplate({
|
69
|
-
amdModules,
|
70
|
-
fastbootOnlyAmdModules,
|
71
|
-
});
|
72
|
-
}
|
73
|
-
});
|
74
|
-
}
|
75
|
-
return { src, watches: [] };
|
76
|
-
}
|
77
|
-
exports.renderRouteEntrypoint = renderRouteEntrypoint;
|
78
|
-
const routeEntryTemplate = (0, js_handlebars_1.compile)(`
|
79
|
-
let d = window.define;
|
80
|
-
|
81
|
-
{{#each amdModules as |amdModule index| ~}}
|
82
|
-
import * as amdModule{{index}} from "{{js-string-escape amdModule.buildtime}}"
|
83
|
-
d("{{js-string-escape amdModule.runtime}}", function(){ return amdModule{{index}}; });
|
84
|
-
{{/each}}
|
85
|
-
|
86
|
-
{{#if fastbootOnlyAmdModules}}
|
87
|
-
if (macroCondition(getGlobalConfig().fastboot?.isRunning)) {
|
88
|
-
let fastbootModules = {};
|
89
|
-
|
90
|
-
{{#each fastbootOnlyAmdModules as |amdModule| ~}}
|
91
|
-
fastbootModules["{{js-string-escape amdModule.runtime}}"] = import("{{js-string-escape amdModule.buildtime}}");
|
92
|
-
{{/each}}
|
93
|
-
|
94
|
-
const resolvedValues = await Promise.all(Object.values(fastbootModules));
|
95
|
-
|
96
|
-
Object.keys(fastbootModules).forEach((k, i) => {
|
97
|
-
d(k, function(){ return resolvedValues[i];});
|
98
|
-
})
|
99
|
-
}
|
100
|
-
{{/if}}
|
101
|
-
`);
|
102
|
-
//# sourceMappingURL=virtual-route-entrypoint.js.map
|