-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplugin.js
26 lines (23 loc) · 941 Bytes
/
plugin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const { parseSource } = require('./build');
const { extname, basename } = require('path');
const { createFilter } = require('rollup-pluginutils');
const { snakeToCamel, capitalize } = require('./build/utils');
module.exports = function ({ include, exclude, comments = false, format = 'esm', directives = [] } = {}) {
format = /^(esm|cjs)$/i.test(format) ? format : 'esm';
const filter = createFilter(include || './**/*.html', exclude);
return {
name: 'rollup-plugin-trebor',
transform(html, filePath) {
if (!filter(filePath)) return;
const ext = extname(filePath);
const file = basename(filePath, ext);
const moduleName = capitalize(snakeToCamel(file));
const { code, map } = parseSource(html, {
filePath: this.resourcePath,
compilerOptions: { comments, format, minify: false, moduleName },
directives, optimize: false
});
return { code, map };
}
};
};