-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpurify.js
32 lines (27 loc) · 1.01 KB
/
purify.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
var through = require('through2')
module.exports = function (file) {
return through(function (buf, enc, next) {
var contents = buf.toString('utf8')
, utilities = []
, pure = contents
.replace(/^.*utilise\/[^]*?var (.*) = _interop.*$/gm, function($1, $2){
utilities.push($2)
return ''
})
// remove utilities
utilities.forEach(function(d) {
pure = pure.replace(new RegExp(d+'.default','g'), d.slice(1,-1)) })
pure = pure.replace(/require\('utilise\/(.*?)'\)/gi, 'window.$1')
pure = pure.replace(/\n\n\n/g, '')
// console.log('replaced', utilities.length, 'in', file)
// compile client=true
pure = pure.replace(/([^-])client/gm, '$1true')
// TODO minify only
// remove log statements
// pure = pure.replace(/log = ([^,]*)/gm, 'log = identity')
// pure = pure.replace(/err = ([^,]*)/gm, 'err = identity')
// pure = pure.replace(/(0, group)/gm, '(function(_,f){f()})')
this.push(pure)
next()
})
}