rollup-plugin-dot
Version:
rollup plugin to compile doT files
35 lines • 1.28 kB
JavaScript
import * as doT from 'dot';
import * as path from 'path';
import { createFilter, makeLegalIdentifier } from 'rollup-pluginutils';
function dot(options = {}) {
if (!options.include) {
options.include = '**/*.dot';
}
const filter = createFilter(options.include, options.exclude);
return {
name: 'dot',
transform(code, id) {
if (filter(id)) {
let templateSettings;
if (options.templateSettings) {
templateSettings = Object.assign({}, doT.templateSettings, options.templateSettings);
}
const renderFunction = doT.template(code, templateSettings, options.defines);
const templateCode = renderFunction.toString()
.replace(/^function anonymous\(/, `function ${makeTemplateFunctionName(id)}(`);
return {
code: `export default ${templateCode};`,
map: { mappings: '' },
};
}
},
};
}
function makeTemplateFunctionName(id) {
if (path.isAbsolute(id)) {
id = path.relative(process.cwd(), id);
}
return makeLegalIdentifier(`dot_tpl_${id}`);
}
export default dot;
//# sourceMappingURL=rollup-plugin-dot.js.map