@embroider/compat 1.0.0 → 1.3.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/package.json +4 -5
- package/src/addon-dependency-rules/ember-data.js +6 -0
- package/src/addon-dependency-rules/ember-data.js.map +1 -1
- package/src/addon-dependency-rules/ember-power-select.js +1 -0
- package/src/addon-dependency-rules/ember-power-select.js.map +1 -1
- package/src/build-compat-addon.d.ts +1 -1
- package/src/build-compat-addon.js +1 -9
- package/src/build-compat-addon.js.map +1 -1
- package/src/compat-adapters/@glimmer/tracking.js +6 -1
- package/src/compat-adapters/@glimmer/tracking.js.map +1 -1
- package/src/compat-addons.js +10 -0
- package/src/compat-addons.js.map +1 -1
- package/src/resolver-transform.js +20 -25
- package/src/resolver-transform.js.map +1 -1
- package/src/resolver.d.ts +1 -0
- package/src/resolver.js +31 -0
- package/src/resolver.js.map +1 -1
- package/src/v1-addon.js +1 -1
- package/src/v1-addon.js.map +1 -1
- package/src/v1-instance-cache.js +3 -1
- package/src/v1-instance-cache.js.map +1 -1
- package/src/one-shot.d.ts +0 -9
- package/src/one-shot.js +0 -75
- package/src/one-shot.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v1-instance-cache.js","sourceRoot":"","sources":["v1-instance-cache.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,6EAA6E;AAC7E,iCAAiC;;;;;AAEjC,sDAA6B;AAC7B,0DAAyD;AACzD,uCAA0C;AAC1C,0CAA6D;AAE7D,6DAAqC;AAErC,MAAqB,eAAe;IAmBlC,YAAoB,MAAW,EAAU,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;QARnE,6EAA6E;QAC7E,8EAA8E;QAC9E,4CAA4C;QACpC,WAAM,GAA2B,IAAI,GAAG,EAAE,CAAC;QAMjD,IAAI,CAAC,GAAG,GAAG,gBAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElB,uEAAuE;QACvE,kBAAkB;QACjB,MAAM,CAAC,OAAO,CAAC,MAA0B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAzBD,MAAM,CAAC,MAAM,CAAC,QAAgB,EAAE,OAA0B;QACxD,IAAI,QAAQ,GAAG,IAAA,kBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,IAAA,iBAAO,EAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAqBO,YAAY,CAAC,aAA4B;QAC/C,IAAI,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QACzC,mEAAmE;QACnE,2DAA2D;QAC3D,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEhE,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,OAAO,kBAAO,CAAC;SAChB;QAED,IAAI,CAAC,YAAY,EAAE;YACjB,IAAI,IAAI,GAAG,GAAG,SAAS,oBAAoB,WAAW,KAAK,CAAC;YAC5D,IAAI,IAAA,yBAAc,EAAC,IAAI,CAAC,EAAE;gBACxB,iEAAiE;gBACjE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;aACtC;SACF;QAED,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,kBAAO,CAAC;SAChB;QAED,IAAI,YAAY,CAAC,kBAAkB,EAAE;YACnC,OAAO,YAAY,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAO,CAAC;SAChF;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,QAAQ,CAAC,aAA4B;QAC3C,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnB,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrG,IAAI,IAAI,GAAG,IAAA,kBAAW,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"v1-instance-cache.js","sourceRoot":"","sources":["v1-instance-cache.ts"],"names":[],"mappings":"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","sourcesContent":["// All access to class ember-cli-provided Addon and EmberApp instances of v1\n// packages is supposed to go through here. This lets us control the boundary\n// between the new and old words.\n\nimport V1App from './v1-app';\nimport V1Addon, { V1AddonConstructor } from './v1-addon';\nimport { pathExistsSync } from 'fs-extra';\nimport { AddonInstance, getOrCreate } from '@embroider/core';\nimport Options from './options';\nimport isEqual from 'lodash/isEqual';\n\nexport default class V1InstanceCache {\n static caches: WeakMap<object, V1InstanceCache> = new WeakMap();\n\n static forApp(emberApp: object, options: Required<Options>): V1InstanceCache {\n let instance = getOrCreate(this.caches, emberApp, () => new this(emberApp, options));\n if (!isEqual(instance.options, options)) {\n throw new Error(`attempted double set of app Options`);\n }\n return instance;\n }\n\n // maps from package root directories to known V1 instances of that packages.\n // There can be many because a single copy of an addon may be consumed by many\n // other packages and each gets an instance.\n private addons: Map<string, V1Addon[]> = new Map();\n\n app: V1App;\n orderIdx: number;\n\n private constructor(oldApp: any, private options: Required<Options>) {\n this.app = V1App.create(oldApp);\n this.orderIdx = 0;\n\n // no reason to do this on demand because oldApp already eagerly loaded\n // all descendants\n (oldApp.project.addons as AddonInstance[]).forEach(addon => {\n this.addAddon(addon);\n });\n }\n\n private adapterClass(addonInstance: AddonInstance): V1AddonConstructor {\n let packageName = addonInstance.pkg.name;\n // if the user registered something (including \"null\", which allows\n // disabling the built-in adapters), that takes precedence.\n let AdapterClass = this.options.compatAdapters.get(packageName);\n\n if (AdapterClass === null) {\n return V1Addon;\n }\n\n if (!AdapterClass) {\n let path = `${__dirname}/compat-adapters/${packageName}.js`;\n if (pathExistsSync(path)) {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n AdapterClass = require(path).default;\n }\n }\n\n if (!AdapterClass) {\n return V1Addon;\n }\n\n if (AdapterClass.shouldApplyAdapter) {\n return AdapterClass.shouldApplyAdapter(addonInstance) ? AdapterClass : V1Addon;\n }\n\n return AdapterClass;\n }\n\n private addAddon(addonInstance: AddonInstance) {\n // Traverse and add any nested addons. This must happen _before_ we add\n // the addon itself to correctly preserve the addon ordering.\n addonInstance.addons.forEach(a => this.addAddon(a));\n\n this.orderIdx += 1;\n let Klass = this.adapterClass(addonInstance);\n let v1Addon = new Klass(addonInstance, this.options, this.app, this.app.packageCache, this.orderIdx);\n let pkgs = getOrCreate(this.addons, v1Addon.root, () => []);\n pkgs.push(v1Addon);\n }\n\n getAddons(root: string): V1Addon[] {\n return this.addons.get(root) || [];\n }\n}\n"]}
|
package/src/one-shot.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import Plugin from 'broccoli-plugin';
|
|
2
|
-
import { Node } from 'broccoli-node-api';
|
|
3
|
-
export default class OneShot extends Plugin {
|
|
4
|
-
private addonName;
|
|
5
|
-
private builder;
|
|
6
|
-
static create(originalTree: Node, privateAddonName: string): Node;
|
|
7
|
-
private constructor();
|
|
8
|
-
build(): Promise<void>;
|
|
9
|
-
}
|
package/src/one-shot.js
DELETED
|
@@ -1,75 +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
|
-
const broccoli_plugin_1 = __importDefault(require("broccoli-plugin"));
|
|
7
|
-
const broccoli_1 = require("broccoli");
|
|
8
|
-
const fs_extra_1 = require("fs-extra");
|
|
9
|
-
const heimdalljs_1 = __importDefault(require("heimdalljs"));
|
|
10
|
-
class NerfHeimdallBuilder extends broccoli_1.Builder {
|
|
11
|
-
/*
|
|
12
|
-
Replace the code used to track heimdall nodes: https://github.com/broccolijs/broccoli/blob/v3.5.2/lib/builder.ts#L463-L503
|
|
13
|
-
|
|
14
|
-
This reduces the amount of memory that these one-shot's create by:
|
|
15
|
-
|
|
16
|
-
- Avoiding creating Heimdall nodes for each broccoli plugin
|
|
17
|
-
- Disabling the "re-parenting" process done by Broccoli builder (which ends up creating **double** the heimdall nodes)
|
|
18
|
-
*/
|
|
19
|
-
setupHeimdall() { }
|
|
20
|
-
buildHeimdallTree() { }
|
|
21
|
-
}
|
|
22
|
-
let seen = new WeakMap();
|
|
23
|
-
// Wraps a broccoli tree such that it (and everything it depends on) will only
|
|
24
|
-
// build a single time.
|
|
25
|
-
class OneShot extends broccoli_plugin_1.default {
|
|
26
|
-
constructor(originalTree, addonName) {
|
|
27
|
-
// from broccoli's perspective, we don't depend on any input trees!
|
|
28
|
-
super([], {
|
|
29
|
-
annotation: `@embroider/compat: ${addonName}`,
|
|
30
|
-
persistentOutput: true,
|
|
31
|
-
needsCache: false,
|
|
32
|
-
});
|
|
33
|
-
this.addonName = addonName;
|
|
34
|
-
// create a nested builder in order to isolate the specific addon
|
|
35
|
-
this.builder = new NerfHeimdallBuilder(originalTree);
|
|
36
|
-
}
|
|
37
|
-
static create(originalTree, privateAddonName) {
|
|
38
|
-
let output = seen.get(originalTree);
|
|
39
|
-
if (!output) {
|
|
40
|
-
output = new this(originalTree, privateAddonName);
|
|
41
|
-
seen.set(originalTree, output);
|
|
42
|
-
}
|
|
43
|
-
return output;
|
|
44
|
-
}
|
|
45
|
-
async build() {
|
|
46
|
-
const { builder } = this;
|
|
47
|
-
// only build the first time
|
|
48
|
-
if (builder === null) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
this.builder = null;
|
|
52
|
-
// Make a heimdall node so that we know for sure, all nodes created during our
|
|
53
|
-
// inner builder can be remove easily
|
|
54
|
-
const oneshotCookie = heimdalljs_1.default.start({
|
|
55
|
-
name: `@embroider/compat: OneShot (${this.addonName})`,
|
|
56
|
-
});
|
|
57
|
-
const oneshotHeimdallNode = heimdalljs_1.default.current;
|
|
58
|
-
try {
|
|
59
|
-
await builder.build();
|
|
60
|
-
(0, fs_extra_1.copySync)(builder.outputPath, this.outputPath, { dereference: true });
|
|
61
|
-
await builder.cleanup();
|
|
62
|
-
}
|
|
63
|
-
finally {
|
|
64
|
-
oneshotCookie.stop();
|
|
65
|
-
/*
|
|
66
|
-
Remove any of the current node's direct children, this ensures that we do not bloat the
|
|
67
|
-
current Broccoli builder's heimdall node graph (e.g. the one that is calling
|
|
68
|
-
OneShotPlugin; **not** the one that the OneShotPlugin internally creates).
|
|
69
|
-
*/
|
|
70
|
-
oneshotHeimdallNode.remove();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.default = OneShot;
|
|
75
|
-
//# sourceMappingURL=one-shot.js.map
|
package/src/one-shot.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"one-shot.js","sourceRoot":"","sources":["one-shot.ts"],"names":[],"mappings":";;;;;AAAA,sEAAqC;AAErC,uCAAmC;AACnC,uCAAoC;AACpC,4DAAkC;AAElC,MAAM,mBAAoB,SAAQ,kBAAO;IACvC;;;;;;;MAOE;IACF,aAAa,KAAI,CAAC;IAClB,iBAAiB,KAAI,CAAC;CACvB;AAED,IAAI,IAAI,GAAG,IAAI,OAAO,EAAc,CAAC;AAErC,8EAA8E;AAC9E,uBAAuB;AACvB,MAAqB,OAAQ,SAAQ,yBAAM;IAYzC,YAAoB,YAAkB,EAAU,SAAiB;QAC/D,mEAAmE;QACnE,KAAK,CAAC,EAAE,EAAE;YACR,UAAU,EAAE,sBAAsB,SAAS,EAAE;YAC7C,gBAAgB,EAAE,IAAI;YACtB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;QAN2C,cAAS,GAAT,SAAS,CAAQ;QAQ/D,iEAAiE;QACjE,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;IACvD,CAAC;IAnBD,MAAM,CAAC,MAAM,CAAC,YAAkB,EAAE,gBAAwB;QACxD,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;SAChC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAcD,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEzB,4BAA4B;QAC5B,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,OAAO;SACR;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,8EAA8E;QAC9E,qCAAqC;QACrC,MAAM,aAAa,GAAG,oBAAQ,CAAC,KAAK,CAAC;YACnC,IAAI,EAAE,+BAA+B,IAAI,CAAC,SAAS,GAAG;SACvD,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,oBAAQ,CAAC,OAAO,CAAC;QAE7C,IAAI;YACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,IAAA,mBAAQ,EAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;SACzB;gBAAS;YACR,aAAa,CAAC,IAAI,EAAE,CAAC;YACrB;;;;cAIE;YACF,mBAAmB,CAAC,MAAM,EAAE,CAAC;SAC9B;IACH,CAAC;CACF;AAtDD,0BAsDC","sourcesContent":["import Plugin from 'broccoli-plugin';\nimport { Node } from 'broccoli-node-api';\nimport { Builder } from 'broccoli';\nimport { copySync } from 'fs-extra';\nimport heimdall from 'heimdalljs';\n\nclass NerfHeimdallBuilder extends Builder {\n /*\n Replace the code used to track heimdall nodes: https://github.com/broccolijs/broccoli/blob/v3.5.2/lib/builder.ts#L463-L503\n\n This reduces the amount of memory that these one-shot's create by:\n\n - Avoiding creating Heimdall nodes for each broccoli plugin\n - Disabling the \"re-parenting\" process done by Broccoli builder (which ends up creating **double** the heimdall nodes)\n */\n setupHeimdall() {}\n buildHeimdallTree() {}\n}\n\nlet seen = new WeakMap<Node, Node>();\n\n// Wraps a broccoli tree such that it (and everything it depends on) will only\n// build a single time.\nexport default class OneShot extends Plugin {\n private builder: NerfHeimdallBuilder | null;\n\n static create(originalTree: Node, privateAddonName: string) {\n let output = seen.get(originalTree);\n if (!output) {\n output = new this(originalTree, privateAddonName);\n seen.set(originalTree, output);\n }\n return output;\n }\n\n private constructor(originalTree: Node, private addonName: string) {\n // from broccoli's perspective, we don't depend on any input trees!\n super([], {\n annotation: `@embroider/compat: ${addonName}`,\n persistentOutput: true,\n needsCache: false,\n });\n\n // create a nested builder in order to isolate the specific addon\n this.builder = new NerfHeimdallBuilder(originalTree);\n }\n\n async build() {\n const { builder } = this;\n\n // only build the first time\n if (builder === null) {\n return;\n }\n this.builder = null;\n\n // Make a heimdall node so that we know for sure, all nodes created during our\n // inner builder can be remove easily\n const oneshotCookie = heimdall.start({\n name: `@embroider/compat: OneShot (${this.addonName})`,\n });\n const oneshotHeimdallNode = heimdall.current;\n\n try {\n await builder.build();\n copySync(builder.outputPath, this.outputPath, { dereference: true });\n await builder.cleanup();\n } finally {\n oneshotCookie.stop();\n /*\n Remove any of the current node's direct children, this ensures that we do not bloat the\n current Broccoli builder's heimdall node graph (e.g. the one that is calling\n OneShotPlugin; **not** the one that the OneShotPlugin internally creates).\n */\n oneshotHeimdallNode.remove();\n }\n }\n}\n"]}
|