ember-cli-htmlbars
Version:
A library for adding htmlbars to ember CLI
67 lines (61 loc) • 1.74 kB
JavaScript
;
function isTemplateCompilationPluginRegistered(plugins) {
return plugins.some((plugin) => {
if (Array.isArray(plugin)) {
let [pluginPathOrInstance, , key] = plugin;
return (
pluginPathOrInstance ===
require.resolve('babel-plugin-ember-template-compilation') &&
key === 'ember-cli-htmlbars:inline-precompile'
);
} else {
return false;
}
});
}
function isColocatedBabelPluginRegistered(plugins) {
return plugins.some((plugin) => {
let path = Array.isArray(plugin) ? plugin[0] : plugin;
return (
typeof path === 'string' &&
path === require.resolve('./colocated-babel-plugin')
);
});
}
function convertPlugins(wrappers) {
let launcher = require.resolve('./plugin-launcher.js');
return (
wrappers
.map((wrapper) => {
if (wrapper.requireFile) {
return [
launcher,
{
requireFile: wrapper.requireFile,
buildUsing: wrapper.buildUsing,
params: wrapper.params,
},
];
}
if (wrapper.parallelBabel) {
return [
launcher,
{
requireFile: wrapper.parallelBabel.requireFile,
buildUsing: wrapper.parallelBabel.buildUsing,
params: wrapper.parallelBabel.params,
},
];
}
return wrapper.plugin;
})
// For historic reasons, our plugins are stored in reverse order, whereas
// babel-plugin-ember-template-compilation uses the sensible order.
.reverse()
);
}
module.exports = {
convertPlugins,
isColocatedBabelPluginRegistered,
isTemplateCompilationPluginRegistered,
};