-
Notifications
You must be signed in to change notification settings - Fork 0
/
riotjs-loader.js
37 lines (32 loc) · 874 Bytes
/
riotjs-loader.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
27
28
29
30
31
32
33
34
35
36
37
const riot = require('riot-compiler'),
loaderUtils = require('loader-utils')
module.exports = function (source) {
var content = source
var options = loaderUtils.parseQuery(this.query)
if (this.cacheable) this.cacheable()
Object.keys(options).forEach(function(key) {
switch(options[key]) {
case 'true':
options[key] = true
break
case 'false':
options[key] = false
break
case 'undefined':
options[key] = undefined
break
case 'null':
options[key] = null
break
}
});
try {
return riot.compile(content, options)
} catch (e) {
if (e instanceof Error) {
throw e
} else {
throw new Error(e)
}
}
}