1 | var _fs = require("fs");
|
2 | var _format = require("dr-js/library/common/format");
|
3 | exports.wrapFileProcessor = (({processor, logger: {log, devLog}}) => async filePath => {
|
4 | const inputString = (0, _fs.readFileSync)(filePath, "utf8");
|
5 | const outputString = await processor(inputString, filePath);
|
6 | if (inputString === outputString) {
|
7 | devLog(`process skipped ${filePath}`);
|
8 | return 0;
|
9 | }
|
10 | const {size: inputSize} = (0, _fs.statSync)(filePath);
|
11 | outputString ? (0, _fs.writeFileSync)(filePath, outputString) : (0, _fs.unlinkSync)(filePath);
|
12 | const {size: outputSize} = outputString ? (0, _fs.statSync)(filePath) : {
|
13 | size: 0
|
14 | };
|
15 | const sizeChange = outputSize - inputSize;
|
16 | devLog(`∆${(outputSize / inputSize).toFixed(2)}(${(0, _format.binary)(sizeChange)}B)`, `${(0, _format.binary)(inputSize)}B → ${(0, _format.binary)(outputSize)}B`, `${filePath}`);
|
17 | return outputSize - inputSize;
|
18 | });
|
19 | exports.fileProcessorBabel = (inputString => inputString.replace(/['"]use strict['"];?\s*/g, "").replace(/Object\.defineProperty\(exports,\s*['"]__esModule['"],\s*{\s*value:\s*(true|!0)\s*}\)[;,]?\s*/g, "").replace(/(exports\.\w+\s*=\s*)+(undefined|void 0)[;,]?\s*/g, "").replace(/[\n\r]{2,}/g, "\n").replace(/^[\n\r]+/, ""));
|
20 | exports.fileProcessorWebpack = (inputString => inputString.replace(/function\s*\(\)\s*{\s*return\s+([\w$]{1,3})\s*}/g, "()=>$1")); |
\ | No newline at end of file |