@embroider/core 2.1.0 → 2.1.1-unstable.73213f2a
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/package.json +3 -4
- package/src/app-files.d.ts +1 -1
- package/src/app-files.js.map +1 -1
- package/src/app.d.ts +9 -7
- package/src/app.js +20 -31
- package/src/app.js.map +1 -1
- package/src/example.d.ts +2 -0
- package/src/example.js +20 -0
- package/src/example.js.map +1 -0
- package/src/index.d.ts +3 -0
- package/src/index.js +5 -1
- package/src/index.js.map +1 -1
- package/src/module-resolver.d.ts +60 -22
- package/src/module-resolver.js +465 -136
- package/src/module-resolver.js.map +1 -1
- package/src/virtual-content.d.ts +3 -0
- package/src/virtual-content.js +87 -0
- package/src/virtual-content.js.map +1 -0
- package/src/wait-for-trees.js.map +1 -1
- package/src/babel-plugin-inline-hbs-deps-node.d.ts +0 -14
- package/src/babel-plugin-inline-hbs-deps-node.js +0 -27
- package/src/babel-plugin-inline-hbs-deps-node.js.map +0 -1
- package/src/babel-plugin-inline-hbs-deps.d.ts +0 -10
- package/src/babel-plugin-inline-hbs-deps.js +0 -134
- package/src/babel-plugin-inline-hbs-deps.js.map +0 -1
- package/src/babel-plugin-inline-hbs-node.d.ts +0 -7
- package/src/babel-plugin-inline-hbs-node.js +0 -15
- package/src/babel-plugin-inline-hbs-node.js.map +0 -1
- package/src/babel-plugin-inline-hbs.d.ts +0 -24
- package/src/babel-plugin-inline-hbs.js +0 -142
- package/src/babel-plugin-inline-hbs.js.map +0 -1
- package/src/babel-plugin-stage1-inline-hbs-node.d.ts +0 -12
- package/src/babel-plugin-stage1-inline-hbs-node.js +0 -9
- package/src/babel-plugin-stage1-inline-hbs-node.js.map +0 -1
- package/src/babel-plugin-stage1-inline-hbs.d.ts +0 -9
- package/src/babel-plugin-stage1-inline-hbs.js +0 -96
- package/src/babel-plugin-stage1-inline-hbs.js.map +0 -1
- package/src/browser-index.d.ts +0 -1
- package/src/browser-index.js +0 -6
- package/src/browser-index.js.map +0 -1
- package/src/ember-template-compiler-types.d.ts +0 -41
- package/src/ember-template-compiler-types.js +0 -3
- package/src/ember-template-compiler-types.js.map +0 -1
- package/src/load-ember-template-compiler.d.ts +0 -6
- package/src/load-ember-template-compiler.js +0 -57
- package/src/load-ember-template-compiler.js.map +0 -1
- package/src/mini-modules-polyfill.d.ts +0 -12
- package/src/mini-modules-polyfill.js +0 -80
- package/src/mini-modules-polyfill.js.map +0 -1
- package/src/patch-template-compiler.d.ts +0 -1
- package/src/patch-template-compiler.js +0 -176
- package/src/patch-template-compiler.js.map +0 -1
- package/src/resolver-plugin.d.ts +0 -3
- package/src/resolver-plugin.js +0 -53
- package/src/resolver-plugin.js.map +0 -1
- package/src/resolver.d.ts +0 -14
- package/src/resolver.js +0 -3
- package/src/resolver.js.map +0 -1
- package/src/template-compiler-common.d.ts +0 -70
- package/src/template-compiler-common.js +0 -176
- package/src/template-compiler-common.js.map +0 -1
- package/src/template-compiler-node.d.ts +0 -17
- package/src/template-compiler-node.js +0 -32
- package/src/template-compiler-node.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@embroider/core",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1-unstable.73213f2a",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A build system for EmberJS applications.",
|
|
6
6
|
"repository": {
|
|
@@ -26,10 +26,9 @@
|
|
|
26
26
|
"@babel/plugin-transform-runtime": "^7.14.5",
|
|
27
27
|
"@babel/runtime": "^7.14.5",
|
|
28
28
|
"@babel/traverse": "^7.14.5",
|
|
29
|
-
"@embroider/macros": "1.10.0",
|
|
30
|
-
"@embroider/shared-internals": "2.0.0",
|
|
29
|
+
"@embroider/macros": "1.10.0-unstable.73213f2a",
|
|
30
|
+
"@embroider/shared-internals": "2.0.0-unstable.73213f2a",
|
|
31
31
|
"assert-never": "^1.2.1",
|
|
32
|
-
"babel-import-util": "^1.1.0",
|
|
33
32
|
"babel-plugin-ember-template-compilation": "^2.0.0",
|
|
34
33
|
"broccoli-node-api": "^1.7.0",
|
|
35
34
|
"broccoli-persistent-filter": "^3.1.2",
|
package/src/app-files.d.ts
CHANGED
package/src/app-files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-files.js","sourceRoot":"","sources":["app-files.ts"],"names":[],"mappings":"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","sourcesContent":["import { sep } from 'path';\nimport { Package, AddonPackage } from '@embroider/shared-internals';\nimport AppDiffer from './app-differ';\n\nexport interface RouteFiles {\n route?: string;\n template?: string;\n controller?: string;\n children: Map<string, RouteFiles>;\n}\n\nexport class AppFiles {\n readonly tests: ReadonlyArray<string>;\n readonly components: ReadonlyArray<string>;\n readonly helpers: ReadonlyArray<string>;\n readonly modifiers: ReadonlyArray<string>;\n private perRoute: RouteFiles;\n readonly otherAppFiles: ReadonlyArray<string>;\n readonly relocatedFiles: Map<string, string>;\n readonly isFastbootOnly: Map<string, boolean>;\n\n constructor(appDiffer: AppDiffer, resolvableExtensions: RegExp, podModulePrefix?: string) {\n let tests: string[] = [];\n let components: string[] = [];\n let helpers: string[] = [];\n let modifiers: string[] = [];\n let otherAppFiles: string[] = [];\n this.perRoute = { children: new Map() };\n for (let relativePath of appDiffer.files.keys()) {\n relativePath = relativePath.split(sep).join('/');\n if (!resolvableExtensions.test(relativePath)) {\n continue;\n }\n\n if (/\\.d\\.ts$/.test(relativePath)) {\n // .d.ts files are technically \"*.ts\" files but aren't really and we\n // don't want to include them when we crawl through the app.\n continue;\n }\n\n if (relativePath.startsWith('tests/')) {\n tests.push(relativePath);\n continue;\n }\n\n if (relativePath.startsWith('components/')) {\n // hbs files are resolvable, but not when they're used via co-location.\n // An hbs file is used via colocation when it's inside the components\n // directory, and also not named \"template.hbs\" (because that is an\n // older pattern used with pods-like layouts).\n if (!relativePath.endsWith('.hbs') || relativePath.endsWith('/template.hbs')) {\n components.push(relativePath);\n }\n continue;\n }\n\n if (relativePath.startsWith('templates/components/')) {\n components.push(relativePath);\n continue;\n }\n\n if (relativePath.startsWith('helpers/')) {\n helpers.push(relativePath);\n continue;\n }\n\n if (relativePath.startsWith('modifiers/')) {\n modifiers.push(relativePath);\n continue;\n }\n\n if (\n this.handleClassicRouteFile(relativePath) ||\n (podModulePrefix !== undefined && this.handlePodsRouteFile(relativePath, podModulePrefix))\n ) {\n continue;\n }\n\n otherAppFiles.push(relativePath);\n }\n this.tests = tests;\n this.components = components;\n this.helpers = helpers;\n this.modifiers = modifiers;\n this.otherAppFiles = otherAppFiles;\n\n let relocatedFiles: Map<string, string> = new Map();\n for (let [relativePath, owningPath] of appDiffer.files) {\n if (owningPath) {\n relocatedFiles.set(relativePath, owningPath);\n }\n }\n this.relocatedFiles = relocatedFiles;\n this.isFastbootOnly = appDiffer.isFastbootOnly;\n }\n\n private handleClassicRouteFile(relativePath: string): boolean {\n let [prefix, ...rest] = relativePath.replace(/\\.\\w{1,3}$/, '').split('/');\n if (!['controllers', 'templates', 'routes'].includes(prefix)) {\n return false;\n }\n let type = prefix.slice(0, -1) as 'controller' | 'template' | 'route';\n let cursor = this.perRoute;\n for (let part of rest) {\n let child = cursor.children.get(part);\n if (child) {\n cursor = child;\n } else {\n let newEntry = { children: new Map() };\n cursor.children.set(part, newEntry);\n cursor = newEntry;\n }\n }\n cursor[type] = relativePath;\n return true;\n }\n\n private handlePodsRouteFile(relativePath: string, podModulePrefix: string): boolean {\n let parts = relativePath.replace(/\\.\\w{1,3}$/, '').split('/');\n let type = parts.pop();\n if (!type || !['controller', 'template', 'route'].includes(type)) {\n return false;\n }\n let podParts = podModulePrefix.split('/');\n // The first part of podModulePrefix is the app's package name\n podParts.shift();\n\n for (let podPart of podParts) {\n if (parts.shift() !== podPart) {\n return false;\n }\n }\n\n let cursor = this.perRoute;\n for (let part of parts) {\n let child = cursor.children.get(part);\n if (child) {\n cursor = child;\n } else {\n let newEntry = { children: new Map() };\n cursor.children.set(part, newEntry);\n cursor = newEntry;\n }\n }\n cursor[type as 'controller' | 'template' | 'route'] = relativePath;\n return true;\n }\n\n get routeFiles(): Readonly<RouteFiles> {\n return this.perRoute;\n }\n}\n\nexport interface EngineSummary {\n // the engine's own package\n package: Package;\n // the set of active addons in the engine\n addons: Set<AddonPackage>;\n // the parent engine, if any\n parent: EngineSummary | undefined;\n // where the engine's own V2 code comes from\n sourcePath: string;\n // where the engine gets built into, combining its own code with all its\n // addons\n destPath: string;\n // runtime name for the engine's own module namespace\n modulePrefix: string;\n // this is destPath but relative to the app itself\n appRelativePath: string;\n}\n\nexport interface Engine extends EngineSummary {\n appFiles: AppFiles;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"app-files.js","sourceRoot":"","sources":["app-files.ts"],"names":[],"mappings":"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","sourcesContent":["import { sep } from 'path';\nimport { Package, AddonPackage } from '@embroider/shared-internals';\nimport type AppDiffer from './app-differ';\n\nexport interface RouteFiles {\n route?: string;\n template?: string;\n controller?: string;\n children: Map<string, RouteFiles>;\n}\n\nexport class AppFiles {\n readonly tests: ReadonlyArray<string>;\n readonly components: ReadonlyArray<string>;\n readonly helpers: ReadonlyArray<string>;\n readonly modifiers: ReadonlyArray<string>;\n private perRoute: RouteFiles;\n readonly otherAppFiles: ReadonlyArray<string>;\n readonly relocatedFiles: Map<string, string>;\n readonly isFastbootOnly: Map<string, boolean>;\n\n constructor(appDiffer: AppDiffer, resolvableExtensions: RegExp, podModulePrefix?: string) {\n let tests: string[] = [];\n let components: string[] = [];\n let helpers: string[] = [];\n let modifiers: string[] = [];\n let otherAppFiles: string[] = [];\n this.perRoute = { children: new Map() };\n for (let relativePath of appDiffer.files.keys()) {\n relativePath = relativePath.split(sep).join('/');\n if (!resolvableExtensions.test(relativePath)) {\n continue;\n }\n\n if (/\\.d\\.ts$/.test(relativePath)) {\n // .d.ts files are technically \"*.ts\" files but aren't really and we\n // don't want to include them when we crawl through the app.\n continue;\n }\n\n if (relativePath.startsWith('tests/')) {\n tests.push(relativePath);\n continue;\n }\n\n if (relativePath.startsWith('components/')) {\n // hbs files are resolvable, but not when they're used via co-location.\n // An hbs file is used via colocation when it's inside the components\n // directory, and also not named \"template.hbs\" (because that is an\n // older pattern used with pods-like layouts).\n if (!relativePath.endsWith('.hbs') || relativePath.endsWith('/template.hbs')) {\n components.push(relativePath);\n }\n continue;\n }\n\n if (relativePath.startsWith('templates/components/')) {\n components.push(relativePath);\n continue;\n }\n\n if (relativePath.startsWith('helpers/')) {\n helpers.push(relativePath);\n continue;\n }\n\n if (relativePath.startsWith('modifiers/')) {\n modifiers.push(relativePath);\n continue;\n }\n\n if (\n this.handleClassicRouteFile(relativePath) ||\n (podModulePrefix !== undefined && this.handlePodsRouteFile(relativePath, podModulePrefix))\n ) {\n continue;\n }\n\n otherAppFiles.push(relativePath);\n }\n this.tests = tests;\n this.components = components;\n this.helpers = helpers;\n this.modifiers = modifiers;\n this.otherAppFiles = otherAppFiles;\n\n let relocatedFiles: Map<string, string> = new Map();\n for (let [relativePath, owningPath] of appDiffer.files) {\n if (owningPath) {\n relocatedFiles.set(relativePath, owningPath);\n }\n }\n this.relocatedFiles = relocatedFiles;\n this.isFastbootOnly = appDiffer.isFastbootOnly;\n }\n\n private handleClassicRouteFile(relativePath: string): boolean {\n let [prefix, ...rest] = relativePath.replace(/\\.\\w{1,3}$/, '').split('/');\n if (!['controllers', 'templates', 'routes'].includes(prefix)) {\n return false;\n }\n let type = prefix.slice(0, -1) as 'controller' | 'template' | 'route';\n let cursor = this.perRoute;\n for (let part of rest) {\n let child = cursor.children.get(part);\n if (child) {\n cursor = child;\n } else {\n let newEntry = { children: new Map() };\n cursor.children.set(part, newEntry);\n cursor = newEntry;\n }\n }\n cursor[type] = relativePath;\n return true;\n }\n\n private handlePodsRouteFile(relativePath: string, podModulePrefix: string): boolean {\n let parts = relativePath.replace(/\\.\\w{1,3}$/, '').split('/');\n let type = parts.pop();\n if (!type || !['controller', 'template', 'route'].includes(type)) {\n return false;\n }\n let podParts = podModulePrefix.split('/');\n // The first part of podModulePrefix is the app's package name\n podParts.shift();\n\n for (let podPart of podParts) {\n if (parts.shift() !== podPart) {\n return false;\n }\n }\n\n let cursor = this.perRoute;\n for (let part of parts) {\n let child = cursor.children.get(part);\n if (child) {\n cursor = child;\n } else {\n let newEntry = { children: new Map() };\n cursor.children.set(part, newEntry);\n cursor = newEntry;\n }\n }\n cursor[type as 'controller' | 'template' | 'route'] = relativePath;\n return true;\n }\n\n get routeFiles(): Readonly<RouteFiles> {\n return this.perRoute;\n }\n}\n\nexport interface EngineSummary {\n // the engine's own package\n package: Package;\n // the set of active addons in the engine\n addons: Set<AddonPackage>;\n // the parent engine, if any\n parent: EngineSummary | undefined;\n // where the engine's own V2 code comes from\n sourcePath: string;\n // where the engine gets built into, combining its own code with all its\n // addons\n destPath: string;\n // runtime name for the engine's own module namespace\n modulePrefix: string;\n // this is destPath but relative to the app itself\n appRelativePath: string;\n}\n\nexport interface Engine extends EngineSummary {\n appFiles: AppFiles;\n}\n"]}
|
package/src/app.d.ts
CHANGED
|
@@ -3,11 +3,12 @@ import { OutputPaths } from './wait-for-trees';
|
|
|
3
3
|
import { Asset } from './asset';
|
|
4
4
|
import Options from './options';
|
|
5
5
|
import { MacrosConfig } from '@embroider/macros/src/node';
|
|
6
|
-
import { TransformOptions } from '@babel/core';
|
|
7
|
-
import { Options as
|
|
6
|
+
import { PluginItem, TransformOptions } from '@babel/core';
|
|
7
|
+
import { Options as ResolverConfig } from './module-resolver';
|
|
8
|
+
import { Engine } from './app-files';
|
|
8
9
|
import type { Transform } from 'babel-plugin-ember-template-compilation';
|
|
9
10
|
export declare type EmberENV = unknown;
|
|
10
|
-
export interface AppAdapter<TreeNames> {
|
|
11
|
+
export interface AppAdapter<TreeNames, SpecificResolverConfig extends ResolverConfig = ResolverConfig> {
|
|
11
12
|
readonly allActiveAddons: AddonPackage[];
|
|
12
13
|
activeAddonChildren(pkg: Package): AddonPackage[];
|
|
13
14
|
appJSSrcDir(treePaths: OutputPaths<TreeNames>): string;
|
|
@@ -21,9 +22,10 @@ export interface AppAdapter<TreeNames> {
|
|
|
21
22
|
podModulePrefix(): string | undefined;
|
|
22
23
|
rootURL(): string;
|
|
23
24
|
templateCompilerPath(): string;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
hbsTransforms(resolverConfig: SpecificResolverConfig): Transform[];
|
|
26
|
+
jsPlugins(resolverConfig: SpecificResolverConfig): PluginItem[];
|
|
27
|
+
resolverConfig(engines: Engine[]): SpecificResolverConfig;
|
|
28
|
+
resolvableExtensions(): string[];
|
|
27
29
|
htmlbarsPlugins(): Transform[];
|
|
28
30
|
babelConfig(): TransformOptions;
|
|
29
31
|
babelMajorVersion(): 7;
|
|
@@ -52,7 +54,6 @@ export declare class AppBuilder<TreeNames> {
|
|
|
52
54
|
private impliedAddonAssets;
|
|
53
55
|
private babelParserConfig;
|
|
54
56
|
private babelConfig;
|
|
55
|
-
private adjustImportsPlugin;
|
|
56
57
|
private insertEmberApp;
|
|
57
58
|
private implicitScriptsAsset;
|
|
58
59
|
private implicitStylesAsset;
|
|
@@ -78,6 +79,7 @@ export declare class AppBuilder<TreeNames> {
|
|
|
78
79
|
private etcOptions;
|
|
79
80
|
private get portableHints();
|
|
80
81
|
private addBabelConfig;
|
|
82
|
+
private addResolverConfig;
|
|
81
83
|
private shouldSplitRoute;
|
|
82
84
|
private splitRoute;
|
|
83
85
|
private topAppJSAsset;
|
package/src/app.js
CHANGED
|
@@ -145,7 +145,7 @@ class AppBuilder {
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
get resolvableExtensionsPattern() {
|
|
148
|
-
return (0, shared_internals_1.extensionsPattern)(this.adapter.
|
|
148
|
+
return (0, shared_internals_1.extensionsPattern)(this.adapter.resolvableExtensions());
|
|
149
149
|
}
|
|
150
150
|
impliedAssets(type, engine, emberENV) {
|
|
151
151
|
let result = this.impliedAddonAssets(type, engine).map((sourcePath) => {
|
|
@@ -238,7 +238,7 @@ class AppBuilder {
|
|
|
238
238
|
babel.plugins.push(require.resolve('@babel/plugin-syntax-dynamic-import'));
|
|
239
239
|
return babel;
|
|
240
240
|
}
|
|
241
|
-
babelConfig(
|
|
241
|
+
babelConfig(resolverConfig) {
|
|
242
242
|
let babel = (0, cloneDeep_1.default)(this.adapter.babelConfig());
|
|
243
243
|
if (!babel.plugins) {
|
|
244
244
|
babel.plugins = [];
|
|
@@ -248,7 +248,7 @@ class AppBuilder {
|
|
|
248
248
|
babel.plugins.push(require.resolve('@babel/plugin-syntax-dynamic-import'));
|
|
249
249
|
// https://github.com/webpack/webpack/issues/12154
|
|
250
250
|
babel.plugins.push(require.resolve('./rename-require-plugin'));
|
|
251
|
-
babel.plugins.push([require.resolve('babel-plugin-ember-template-compilation'), this.etcOptions()]);
|
|
251
|
+
babel.plugins.push([require.resolve('babel-plugin-ember-template-compilation'), this.etcOptions(resolverConfig)]);
|
|
252
252
|
// this is @embroider/macros configured for full stage3 resolution
|
|
253
253
|
babel.plugins.push(...this.macrosConfig.babelPluginConfig());
|
|
254
254
|
let colocationOptions = {
|
|
@@ -285,7 +285,9 @@ class AppBuilder {
|
|
|
285
285
|
require.resolve('@embroider/shared-internals/src/template-colocation-plugin'),
|
|
286
286
|
colocationOptions,
|
|
287
287
|
]);
|
|
288
|
-
|
|
288
|
+
for (let p of this.adapter.jsPlugins(resolverConfig)) {
|
|
289
|
+
babel.plugins.push(p);
|
|
290
|
+
}
|
|
289
291
|
// we can use globally shared babel runtime by default
|
|
290
292
|
babel.plugins.push([
|
|
291
293
|
require.resolve('@babel/plugin-transform-runtime'),
|
|
@@ -295,23 +297,6 @@ class AppBuilder {
|
|
|
295
297
|
addCachablePlugin(portable.config);
|
|
296
298
|
return portable;
|
|
297
299
|
}
|
|
298
|
-
adjustImportsPlugin(engines) {
|
|
299
|
-
let relocatedFiles = {};
|
|
300
|
-
for (let { destPath, appFiles } of engines) {
|
|
301
|
-
for (let [relativePath, originalPath] of appFiles.relocatedFiles) {
|
|
302
|
-
relocatedFiles[(0, path_1.join)(destPath, relativePath)] = originalPath;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
let relocatedFilesPath = (0, path_1.join)(this.root, '_relocated_files.json');
|
|
306
|
-
(0, fs_extra_1.writeFileSync)(relocatedFilesPath, JSON.stringify({ relocatedFiles }));
|
|
307
|
-
return [
|
|
308
|
-
require.resolve('./babel-plugin-adjust-imports'),
|
|
309
|
-
{
|
|
310
|
-
adjustImportsOptionsPath: this.adapter.adjustImportsOptionsPath(),
|
|
311
|
-
relocatedFilesPath,
|
|
312
|
-
},
|
|
313
|
-
];
|
|
314
|
-
}
|
|
315
300
|
insertEmberApp(asset, appFiles, prepared, emberENV) {
|
|
316
301
|
let html = asset.html;
|
|
317
302
|
if (this.fastbootConfig) {
|
|
@@ -508,9 +493,10 @@ class AppBuilder {
|
|
|
508
493
|
.reverse()
|
|
509
494
|
.forEach(a => a.differ.update());
|
|
510
495
|
return this.appDiffers.map(a => {
|
|
511
|
-
return
|
|
496
|
+
return {
|
|
497
|
+
...a.engine,
|
|
512
498
|
appFiles: new app_files_1.AppFiles(a.differ, this.resolvableExtensionsPattern, this.adapter.podModulePrefix()),
|
|
513
|
-
}
|
|
499
|
+
};
|
|
514
500
|
});
|
|
515
501
|
}
|
|
516
502
|
prepareAsset(asset, appFiles, prepared, emberENV) {
|
|
@@ -684,8 +670,6 @@ class AppBuilder {
|
|
|
684
670
|
let emberENV = this.adapter.emberENV();
|
|
685
671
|
let assets = this.gatherAssets(inputPaths);
|
|
686
672
|
let finalAssets = await this.updateAssets(assets, appFiles, emberENV);
|
|
687
|
-
let babelConfig = this.babelConfig(appFiles);
|
|
688
|
-
this.addBabelConfig(babelConfig);
|
|
689
673
|
let assetPaths = assets.map(asset => asset.relativePath);
|
|
690
674
|
if (this.activeFastboot) {
|
|
691
675
|
// when using fastboot, our own package.json needs to be in the output so fastboot can read it.
|
|
@@ -705,11 +689,10 @@ class AppBuilder {
|
|
|
705
689
|
assets: assetPaths,
|
|
706
690
|
babel: {
|
|
707
691
|
filename: '_babel_config_.js',
|
|
708
|
-
isParallelSafe:
|
|
692
|
+
isParallelSafe: true,
|
|
709
693
|
majorVersion: this.adapter.babelMajorVersion(),
|
|
710
694
|
fileFilter: '_babel_filter_.js',
|
|
711
695
|
},
|
|
712
|
-
'resolvable-extensions': this.adapter.adjustImportsOptions().resolvableExtensions,
|
|
713
696
|
'root-url': this.adapter.rootURL(),
|
|
714
697
|
};
|
|
715
698
|
if (!this.adapter.strictV2Format()) {
|
|
@@ -717,6 +700,10 @@ class AppBuilder {
|
|
|
717
700
|
}
|
|
718
701
|
let pkg = this.combinePackageJSON(meta);
|
|
719
702
|
(0, fs_extra_1.writeFileSync)((0, path_1.join)(this.root, 'package.json'), JSON.stringify(pkg, null, 2), 'utf8');
|
|
703
|
+
let resolverConfig = this.adapter.resolverConfig(appFiles);
|
|
704
|
+
this.addResolverConfig(resolverConfig);
|
|
705
|
+
let babelConfig = this.babelConfig(resolverConfig);
|
|
706
|
+
this.addBabelConfig(babelConfig);
|
|
720
707
|
}
|
|
721
708
|
combinePackageJSON(meta) {
|
|
722
709
|
let pkgLayers = [this.app.packageJSON];
|
|
@@ -729,16 +716,15 @@ class AppBuilder {
|
|
|
729
716
|
pkgLayers.push({ keywords: ['ember-addon'], 'ember-addon': meta });
|
|
730
717
|
return combinePackageJSON(...pkgLayers);
|
|
731
718
|
}
|
|
732
|
-
etcOptions() {
|
|
719
|
+
etcOptions(resolverConfig) {
|
|
733
720
|
let transforms = this.adapter.htmlbarsPlugins();
|
|
734
721
|
let { plugins: macroPlugins, setConfig } = node_1.MacrosConfig.transforms();
|
|
735
722
|
setConfig(this.macrosConfig);
|
|
736
723
|
for (let macroPlugin of macroPlugins) {
|
|
737
724
|
transforms.push(macroPlugin);
|
|
738
725
|
}
|
|
739
|
-
let
|
|
740
|
-
|
|
741
|
-
transforms.push(transform);
|
|
726
|
+
for (let t of this.adapter.hbsTransforms(resolverConfig)) {
|
|
727
|
+
transforms.push(t);
|
|
742
728
|
}
|
|
743
729
|
return {
|
|
744
730
|
transforms,
|
|
@@ -770,6 +756,9 @@ class AppBuilder {
|
|
|
770
756
|
(0, fs_extra_1.writeFileSync)((0, path_1.join)(this.root, '_babel_config_.js'), `module.exports = ${JSON.stringify(pconfig.config, null, 2)}`, 'utf8');
|
|
771
757
|
(0, fs_extra_1.writeFileSync)((0, path_1.join)(this.root, '_babel_filter_.js'), babelFilterTemplate({ skipBabel: this.options.skipBabel, appRoot: this.root }), 'utf8');
|
|
772
758
|
}
|
|
759
|
+
addResolverConfig(config) {
|
|
760
|
+
(0, fs_extra_1.outputJSONSync)((0, path_1.join)(this.root, '.embroider', 'resolver.json'), config);
|
|
761
|
+
}
|
|
773
762
|
shouldSplitRoute(routeName) {
|
|
774
763
|
return (!this.options.splitAtRoutes ||
|
|
775
764
|
this.options.splitAtRoutes.find(pattern => {
|