UNPKG

1.36 kBJavaScriptView Raw
1var _fs = require("fs");
2var _format = require("dr-js/library/common/format");
3exports.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});
19exports.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]+/, ""));
20exports.fileProcessorWebpack = (inputString => inputString.replace(/function\s*\(\)\s*{\s*return\s+([\w$]{1,3})\s*}/g, "()=>$1"));
\No newline at end of file