Skip to content

Commit 04d3e5f

Browse files
committed
Avoid registering babel-plugin-ember-template-compilation repeatedly
1 parent 78a29d8 commit 04d3e5f

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

lib/utils.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@ const INLINE_PRECOMPILE_MODULES = Object.freeze({
2525
function isInlinePrecompileBabelPluginRegistered(plugins) {
2626
return plugins.some((plugin) => {
2727
if (Array.isArray(plugin)) {
28-
let [pluginPathOrInstance, options] = plugin;
28+
let [pluginPathOrInstance, options, key] = plugin;
2929

3030
return (
31-
pluginPathOrInstance === require.resolve('babel-plugin-htmlbars-inline-precompile') &&
32-
typeof options.modules === 'object' &&
33-
options.modules['ember-cli-htmlbars'] === 'hbs'
31+
(pluginPathOrInstance === require.resolve('babel-plugin-htmlbars-inline-precompile') ||
32+
pluginPathOrInstance === require.resolve('babel-plugin-ember-template-compilation')) &&
33+
typeof options === 'object' &&
34+
key === 'ember-cli-htmlbars:inline-precompile'
3435
);
3536
} else if (
3637
plugin !== null &&

node-tests/utils_test.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,36 @@ describe('utils', function () {
166166
});
167167
});
168168

169+
describe('isInlinePrecompileBabelPluginRegistered', function () {
170+
it('is false when no plugins exist', function () {
171+
let plugins = [];
172+
173+
assert.strictEqual(utils.isInlinePrecompileBabelPluginRegistered(plugins), false);
174+
});
175+
176+
it('detects when the htmlbars-inline-precompile plugin exists', function () {
177+
let plugins = [
178+
utils.setup({}, { requiresModuleApiPolyfill: true, templateCompilerPath: '.' }),
179+
];
180+
181+
assert.strictEqual(utils.isInlinePrecompileBabelPluginRegistered(plugins), true);
182+
});
183+
184+
it('detects when the ember-template-compilation plugin exists', function () {
185+
let plugins = [
186+
utils.setup({}, { requiresModuleApiPolyfill: false, templateCompilerPath: '.' }),
187+
];
188+
189+
assert.strictEqual(utils.isInlinePrecompileBabelPluginRegistered(plugins), true);
190+
});
191+
192+
it('detects when the parallelized plugin exists', function () {
193+
let plugins = [utils.buildParalleizedBabelPlugin({}, {}, '', false, true)];
194+
195+
assert.strictEqual(utils.isInlinePrecompileBabelPluginRegistered(plugins), true);
196+
});
197+
});
198+
169199
describe('isColocatedBabelPluginRegistered', function () {
170200
it('is false when no plugins exist', function () {
171201
let plugins = [];

0 commit comments

Comments
 (0)