UNPKG

1.07 kBJavaScriptView Raw
1var purify = require('purify-css')
2var Clean = require('clean-css')
3var assert = require('assert')
4
5var clean = new Clean(createCleanCssOptions())
6
7module.exports = node
8
9function node (state, createEdge) {
10 assert.strictEqual(typeof state.metadata.entry, 'string', 'state.metadata.entries should be type string')
11
12 assert.ok(state.scripts.bundle, 'bankai/node-style: state.script.bundle exists')
13 assert.ok(state.scripts.style, 'bankai/node-style: state.script.style exists')
14
15 var script = String(state.scripts.bundle.buffer)
16 var style = String(state.scripts.style.buffer)
17 var bundle
18
19 try {
20 bundle = purify(script, style)
21 } catch (e) {
22 this.emit('error', 'styles', 'purify-css', e)
23 }
24
25 if (!state.metadata.watch) {
26 try {
27 bundle = clean.minify(bundle).styles
28 } catch (e) {
29 this.emit('error', 'styles', 'clean-css', e)
30 }
31 }
32
33 createEdge('bundle', Buffer.from(bundle), {
34 mime: 'text/css'
35 })
36}
37
38function createCleanCssOptions () {
39 return {
40 level: {
41 1: {
42 specialComments: 0
43 }
44 }
45 }
46}