-
-
Notifications
You must be signed in to change notification settings - Fork 65
Expand file tree
/
Copy pathtemplate-compiler-plugin.js
More file actions
35 lines (28 loc) · 828 Bytes
/
template-compiler-plugin.js
File metadata and controls
35 lines (28 loc) · 828 Bytes
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
27
28
29
30
31
32
33
34
35
'use strict';
const Filter = require('broccoli-persistent-filter');
const jsStringEscape = require('js-string-escape');
class TemplateCompiler extends Filter {
constructor(inputTree) {
super(inputTree, { persist: true });
}
baseDir() {
return __dirname;
}
processString(string, relativePath) {
return [
`import { hbs } from 'ember-cli-htmlbars';`,
`export default hbs('${jsStringEscape(string)}', { moduleName: '${jsStringEscape(
relativePath
)}' });`,
'',
].join('\n');
}
getDestFilePath(relativePath) {
if (relativePath.endsWith('.hbs')) {
return relativePath.replace(/\.hbs$/, '.js');
}
}
}
TemplateCompiler.prototype.extensions = ['hbs', 'handlebars'];
TemplateCompiler.prototype.targetExtension = 'js';
module.exports = TemplateCompiler;