1 | #!/usr/bin/env node
|
2 |
|
3 | const fs = require('fs');
|
4 | const CleanCSS = require('clean-css');
|
5 |
|
6 | const compileCSS = require('react-with-styles-interface-css-compiler');
|
7 |
|
8 | const registerMaxSpecificity = require('react-with-styles-interface-css/dist/utils/registerMaxSpecificity').default;
|
9 | const registerCSSInterfaceWithDefaultTheme = require('../src/utils/registerCSSInterfaceWithDefaultTheme').default;
|
10 |
|
11 | console.error = msg => { throw new SyntaxError(msg); };
|
12 | console.warn = msg => { throw new SyntaxError(msg); };
|
13 |
|
14 | const args = process.argv.slice(2);
|
15 | const optimizeForProduction = args.includes('-o') || args.includes('--optimize');
|
16 |
|
17 | registerMaxSpecificity(0);
|
18 | registerCSSInterfaceWithDefaultTheme();
|
19 |
|
20 | const path = './scripts/renderAllComponents.jsx';
|
21 | const CSS = compileCSS(path);
|
22 |
|
23 | const format = new CleanCSS({
|
24 | level: optimizeForProduction ? 2 : 0,
|
25 | format: 'beautify',
|
26 | inline: ['none'],
|
27 | });
|
28 | const { styles: formattedCSS } = format.minify(CSS);
|
29 |
|
30 | const outputFilePath = optimizeForProduction ? './lib/css/_datepicker.css' : './css/styles.css';
|
31 | fs.writeFileSync(outputFilePath, formattedCSS, 'utf8');
|