@node-minify/utils 8.0.1-beta.0 → 8.0.2-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/*!\n * node-minify\n * Copyright(c) 2011-2022 Rodolphe Stoclin\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\nimport fs from 'fs';\nimport gzipSize from 'gzip-size';\nimport { MinifierOptions } from '@node-minify/types';\n// import { MinifierOptions } from '../../../types';\n\ninterface Utils {\n readFile: Function;\n writeFile: Function;\n deleteFile: Function;\n buildArgs: Function;\n clone: Function;\n getFilesizeInBytes: Function;\n getFilesizeGzippedInBytes: Function;\n prettyBytes: Function;\n setFileNameMin: Function;\n compressSingleFile: Function;\n getContentFromFiles: Function;\n runSync: Function;\n runAsync: Function;\n}\n\n// interface Options {\n// // sourceMap?: { filename: string };\n// // _sourceMap?: { url: string } | boolean;\n// }\n\n// interface Settings {\n// compressor: Function;\n// options: Options;\n// content: string;\n// output: string;\n// type: string;\n// }\n\n// interface MinifierOptions {\n// settings: Settings;\n// content: string /* | Dictionary<string> */;\n// callback: Function;\n// index: number;\n// input: string;\n// sync: boolean;\n// }\n\ninterface WriteFile {\n file: string;\n content: string;\n index: number;\n}\n\nconst utils = {} as Utils;\n\n/**\n * Read content from file.\n *\n * @param {String} file\n * @returns {String}\n */\nutils.readFile = (file: string) => fs.readFileSync(file, 'utf8');\n\n/**\n * Write content into file.\n *\n * @param {String} file\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @returns {String}\n */\nutils.writeFile = ({ file, content, index }: WriteFile) => {\n const _file = index !== undefined ? file[index] : file;\n if (!fs.existsSync(_file) || (fs.existsSync(_file) && !fs.lstatSync(_file).isDirectory())) {\n fs.writeFileSync(_file, content, 'utf8');\n }\n\n return content;\n};\n\n/**\n * Delete file.\n *\n * @param {String} file\n * @returns {String}\n */\nutils.deleteFile = (file: string) => fs.unlinkSync(file);\n\n/**\n * Builds arguments array based on an object.\n *\n * @param {Object} options\n * @returns {Array}\n */\ninterface Dictionary<T> {\n [Key: string]: T;\n}\nutils.buildArgs = (options: Dictionary<string | boolean>) => {\n const args: (string | boolean)[] = [];\n Object.keys(options).forEach((key: string) => {\n if (options[key] && options[key] !== false) {\n args.push('--' + key);\n }\n\n if (options[key] && options[key] !== true) {\n args.push(options[key]);\n }\n });\n\n return args;\n};\n\n/**\n * Clone an object.\n *\n * @param {Object} obj\n * @returns {Object}\n */\nutils.clone = (obj: {}) => JSON.parse(JSON.stringify(obj));\n\n/**\n * Get the file size in bytes.\n *\n * @returns {String}\n */\nutils.getFilesizeInBytes = (file: string) => {\n const stats = fs.statSync(file);\n const fileSizeInBytes = stats.size;\n return utils.prettyBytes(fileSizeInBytes);\n};\n\n/**\n * Get the gzipped file size in bytes.\n *\n * @returns {Promise.<String>}\n */\nutils.getFilesizeGzippedInBytes = (file: string) => {\n return new Promise(resolve => {\n const source = fs.createReadStream(file);\n source.pipe(gzipSize.stream()).on('gzip-size', size => {\n resolve(utils.prettyBytes(size));\n });\n });\n};\n\n/**\n * Get the size in human readable.\n * From https://github.com/sindresorhus/pretty-bytes\n *\n * @returns {String}\n */\nutils.prettyBytes = (num: number) => {\n const UNITS = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (!Number.isFinite(num)) {\n throw new TypeError(`Expected a finite number, got ${typeof num}: ${num}`);\n }\n\n const neg = num < 0;\n\n if (neg) {\n num = -num;\n }\n\n if (num < 1) {\n return (neg ? '-' : '') + num + ' B';\n }\n\n const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1000)), UNITS.length - 1);\n const numStr = Number((num / Math.pow(1000, exponent)).toPrecision(3));\n const unit = UNITS[exponent];\n\n return (neg ? '-' : '') + numStr + ' ' + unit;\n};\n\n/**\n * Set the file name as minified.\n * eg. file.js returns file.min.js\n *\n * @param {String} file\n * @param {String} output\n * @param {String} publicFolder\n * @param {Boolean} replaceInPlace\n * @returns {String}\n */\nutils.setFileNameMin = (file: string, output: string, publicFolder: string, replaceInPlace: boolean) => {\n const filePath = file.substr(0, file.lastIndexOf('/') + 1);\n const fileWithoutPath = file.substr(file.lastIndexOf('/') + 1);\n let fileWithoutExtension = fileWithoutPath.substr(0, fileWithoutPath.lastIndexOf('.'));\n if (publicFolder) {\n fileWithoutExtension = publicFolder + fileWithoutExtension;\n }\n if (replaceInPlace) {\n fileWithoutExtension = filePath + fileWithoutExtension;\n }\n return output.replace('$1', fileWithoutExtension);\n};\n\n/**\n * Compress a single file.\n *\n * @param {Object} settings\n */\nutils.compressSingleFile = (settings: MinifierOptions) => {\n const content = settings.content ? settings.content : utils.getContentFromFiles(settings.input);\n return settings.sync ? utils.runSync({ settings, content }) : utils.runAsync({ settings, content });\n};\n\n/**\n * Concatenate all input files and get the data.\n *\n * @param {String|Array} input\n * @return {String}\n */\nutils.getContentFromFiles = (input: string) => {\n if (!Array.isArray(input)) {\n return fs.readFileSync(input, 'utf8');\n }\n\n return input\n .map(path =>\n !fs.existsSync(path) || (fs.existsSync(path) && !fs.lstatSync(path).isDirectory())\n ? fs.readFileSync(path, 'utf8')\n : ''\n )\n .join('\\n');\n};\n\n/**\n * Run compressor in sync.\n *\n * @param {Object} settings\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @return {String}\n */\nutils.runSync = ({ settings, content, index }: MinifierOptions) =>\n settings && typeof settings.compressor !== 'string'\n ? settings.compressor({ settings, content, callback: null, index })\n : null;\n\n/**\n * Run compressor in async.\n *\n * @param {Object} settings\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @return {Promise}\n */\nutils.runAsync = ({ settings, content, index }: MinifierOptions) => {\n return new Promise((resolve, reject) => {\n settings && typeof settings.compressor !== 'string'\n ? settings.compressor({\n settings,\n content,\n callback: (err: Error, min: string) => {\n if (err) {\n return reject(err);\n }\n resolve(min);\n },\n index\n })\n : null;\n });\n};\n\n/**\n * Expose `utils`.\n */\nexport { utils };\n"],"mappings":"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","names":["fs","gzipSize"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/*!\n * node-minify\n * Copyright(c) 2011-2022 Rodolphe Stoclin\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\nimport fs from 'fs';\nimport gzipSize from 'gzip-size';\nimport { Dictionary, MinifierOptions } from '@node-minify/types';\n\ninterface Utils {\n readFile: Function;\n writeFile: Function;\n deleteFile: Function;\n buildArgs: Function;\n clone: Function;\n getFilesizeInBytes: Function;\n getFilesizeGzippedInBytes: Function;\n prettyBytes: Function;\n setFileNameMin: Function;\n compressSingleFile: Function;\n getContentFromFiles: Function;\n runSync: Function;\n runAsync: Function;\n}\n\ninterface WriteFile {\n file: string;\n content: string;\n index: number;\n}\n\nconst utils = {} as Utils;\n\n/**\n * Read content from file.\n *\n * @param {String} file\n * @returns {String}\n */\nutils.readFile = (file: string) => fs.readFileSync(file, 'utf8');\n\n/**\n * Write content into file.\n *\n * @param {String} file\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @returns {String}\n */\nutils.writeFile = ({ file, content, index }: WriteFile) => {\n const _file = index !== undefined ? file[index] : file;\n if (!fs.existsSync(_file) || (fs.existsSync(_file) && !fs.lstatSync(_file).isDirectory())) {\n fs.writeFileSync(_file, content, 'utf8');\n }\n\n return content;\n};\n\n/**\n * Delete file.\n *\n * @param {String} file\n * @returns {String}\n */\nutils.deleteFile = (file: string) => fs.unlinkSync(file);\n\n/**\n * Builds arguments array based on an object.\n *\n * @param {Object} options\n * @returns {Array}\n */\nutils.buildArgs = (options: Dictionary<string | boolean>) => {\n const args: (string | boolean)[] = [];\n Object.keys(options).forEach((key: string) => {\n if (options[key] && options[key] !== false) {\n args.push('--' + key);\n }\n\n if (options[key] && options[key] !== true) {\n args.push(options[key]);\n }\n });\n\n return args;\n};\n\n/**\n * Clone an object.\n *\n * @param {Object} obj\n * @returns {Object}\n */\nutils.clone = (obj: {}) => JSON.parse(JSON.stringify(obj));\n\n/**\n * Get the file size in bytes.\n *\n * @returns {String}\n */\nutils.getFilesizeInBytes = (file: string) => {\n const stats = fs.statSync(file);\n const fileSizeInBytes = stats.size;\n return utils.prettyBytes(fileSizeInBytes);\n};\n\n/**\n * Get the gzipped file size in bytes.\n *\n * @returns {Promise.<String>}\n */\nutils.getFilesizeGzippedInBytes = (file: string) => {\n return new Promise(resolve => {\n const source = fs.createReadStream(file);\n source.pipe(gzipSize.stream()).on('gzip-size', size => {\n resolve(utils.prettyBytes(size));\n });\n });\n};\n\n/**\n * Get the size in human readable.\n * From https://github.com/sindresorhus/pretty-bytes\n *\n * @returns {String}\n */\nutils.prettyBytes = (num: number) => {\n const UNITS = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (!Number.isFinite(num)) {\n throw new TypeError(`Expected a finite number, got ${typeof num}: ${num}`);\n }\n\n const neg = num < 0;\n\n if (neg) {\n num = -num;\n }\n\n if (num < 1) {\n return (neg ? '-' : '') + num + ' B';\n }\n\n const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1000)), UNITS.length - 1);\n const numStr = Number((num / Math.pow(1000, exponent)).toPrecision(3));\n const unit = UNITS[exponent];\n\n return (neg ? '-' : '') + numStr + ' ' + unit;\n};\n\n/**\n * Set the file name as minified.\n * eg. file.js returns file.min.js\n *\n * @param {String} file\n * @param {String} output\n * @param {String} publicFolder\n * @param {Boolean} replaceInPlace\n * @returns {String}\n */\nutils.setFileNameMin = (file: string, output: string, publicFolder: string, replaceInPlace: boolean) => {\n const filePath = file.substr(0, file.lastIndexOf('/') + 1);\n const fileWithoutPath = file.substr(file.lastIndexOf('/') + 1);\n let fileWithoutExtension = fileWithoutPath.substr(0, fileWithoutPath.lastIndexOf('.'));\n if (publicFolder) {\n fileWithoutExtension = publicFolder + fileWithoutExtension;\n }\n if (replaceInPlace) {\n fileWithoutExtension = filePath + fileWithoutExtension;\n }\n return output.replace('$1', fileWithoutExtension);\n};\n\n/**\n * Compress a single file.\n *\n * @param {Object} settings\n */\nutils.compressSingleFile = (settings: MinifierOptions) => {\n const content = settings.content ? settings.content : utils.getContentFromFiles(settings.input);\n return settings.sync ? utils.runSync({ settings, content }) : utils.runAsync({ settings, content });\n};\n\n/**\n * Concatenate all input files and get the data.\n *\n * @param {String|Array} input\n * @return {String}\n */\nutils.getContentFromFiles = (input: string) => {\n if (!Array.isArray(input)) {\n return fs.readFileSync(input, 'utf8');\n }\n\n return input\n .map(path =>\n !fs.existsSync(path) || (fs.existsSync(path) && !fs.lstatSync(path).isDirectory())\n ? fs.readFileSync(path, 'utf8')\n : ''\n )\n .join('\\n');\n};\n\n/**\n * Run compressor in sync.\n *\n * @param {Object} settings\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @return {String}\n */\nutils.runSync = ({ settings, content, index }: MinifierOptions) =>\n settings && typeof settings.compressor !== 'string'\n ? settings.compressor({ settings, content, callback: null, index })\n : null;\n\n/**\n * Run compressor in async.\n *\n * @param {Object} settings\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @return {Promise}\n */\nutils.runAsync = ({ settings, content, index }: MinifierOptions) => {\n return new Promise((resolve, reject) => {\n settings && typeof settings.compressor !== 'string'\n ? settings.compressor({\n settings,\n content,\n callback: (err: Error, min: string) => {\n if (err) {\n return reject(err);\n }\n resolve(min);\n },\n index\n })\n : null;\n });\n};\n\n/**\n * Expose `utils`.\n */\nexport { utils };\n"],"mappings":"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","names":["fs","gzipSize"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/*!\n * node-minify\n * Copyright(c) 2011-2022 Rodolphe Stoclin\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\nimport fs from 'fs';\nimport gzipSize from 'gzip-size';\nimport { MinifierOptions } from '@node-minify/types';\n// import { MinifierOptions } from '../../../types';\n\ninterface Utils {\n readFile: Function;\n writeFile: Function;\n deleteFile: Function;\n buildArgs: Function;\n clone: Function;\n getFilesizeInBytes: Function;\n getFilesizeGzippedInBytes: Function;\n prettyBytes: Function;\n setFileNameMin: Function;\n compressSingleFile: Function;\n getContentFromFiles: Function;\n runSync: Function;\n runAsync: Function;\n}\n\n// interface Options {\n// // sourceMap?: { filename: string };\n// // _sourceMap?: { url: string } | boolean;\n// }\n\n// interface Settings {\n// compressor: Function;\n// options: Options;\n// content: string;\n// output: string;\n// type: string;\n// }\n\n// interface MinifierOptions {\n// settings: Settings;\n// content: string /* | Dictionary<string> */;\n// callback: Function;\n// index: number;\n// input: string;\n// sync: boolean;\n// }\n\ninterface WriteFile {\n file: string;\n content: string;\n index: number;\n}\n\nconst utils = {} as Utils;\n\n/**\n * Read content from file.\n *\n * @param {String} file\n * @returns {String}\n */\nutils.readFile = (file: string) => fs.readFileSync(file, 'utf8');\n\n/**\n * Write content into file.\n *\n * @param {String} file\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @returns {String}\n */\nutils.writeFile = ({ file, content, index }: WriteFile) => {\n const _file = index !== undefined ? file[index] : file;\n if (!fs.existsSync(_file) || (fs.existsSync(_file) && !fs.lstatSync(_file).isDirectory())) {\n fs.writeFileSync(_file, content, 'utf8');\n }\n\n return content;\n};\n\n/**\n * Delete file.\n *\n * @param {String} file\n * @returns {String}\n */\nutils.deleteFile = (file: string) => fs.unlinkSync(file);\n\n/**\n * Builds arguments array based on an object.\n *\n * @param {Object} options\n * @returns {Array}\n */\ninterface Dictionary<T> {\n [Key: string]: T;\n}\nutils.buildArgs = (options: Dictionary<string | boolean>) => {\n const args: (string | boolean)[] = [];\n Object.keys(options).forEach((key: string) => {\n if (options[key] && options[key] !== false) {\n args.push('--' + key);\n }\n\n if (options[key] && options[key] !== true) {\n args.push(options[key]);\n }\n });\n\n return args;\n};\n\n/**\n * Clone an object.\n *\n * @param {Object} obj\n * @returns {Object}\n */\nutils.clone = (obj: {}) => JSON.parse(JSON.stringify(obj));\n\n/**\n * Get the file size in bytes.\n *\n * @returns {String}\n */\nutils.getFilesizeInBytes = (file: string) => {\n const stats = fs.statSync(file);\n const fileSizeInBytes = stats.size;\n return utils.prettyBytes(fileSizeInBytes);\n};\n\n/**\n * Get the gzipped file size in bytes.\n *\n * @returns {Promise.<String>}\n */\nutils.getFilesizeGzippedInBytes = (file: string) => {\n return new Promise(resolve => {\n const source = fs.createReadStream(file);\n source.pipe(gzipSize.stream()).on('gzip-size', size => {\n resolve(utils.prettyBytes(size));\n });\n });\n};\n\n/**\n * Get the size in human readable.\n * From https://github.com/sindresorhus/pretty-bytes\n *\n * @returns {String}\n */\nutils.prettyBytes = (num: number) => {\n const UNITS = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (!Number.isFinite(num)) {\n throw new TypeError(`Expected a finite number, got ${typeof num}: ${num}`);\n }\n\n const neg = num < 0;\n\n if (neg) {\n num = -num;\n }\n\n if (num < 1) {\n return (neg ? '-' : '') + num + ' B';\n }\n\n const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1000)), UNITS.length - 1);\n const numStr = Number((num / Math.pow(1000, exponent)).toPrecision(3));\n const unit = UNITS[exponent];\n\n return (neg ? '-' : '') + numStr + ' ' + unit;\n};\n\n/**\n * Set the file name as minified.\n * eg. file.js returns file.min.js\n *\n * @param {String} file\n * @param {String} output\n * @param {String} publicFolder\n * @param {Boolean} replaceInPlace\n * @returns {String}\n */\nutils.setFileNameMin = (file: string, output: string, publicFolder: string, replaceInPlace: boolean) => {\n const filePath = file.substr(0, file.lastIndexOf('/') + 1);\n const fileWithoutPath = file.substr(file.lastIndexOf('/') + 1);\n let fileWithoutExtension = fileWithoutPath.substr(0, fileWithoutPath.lastIndexOf('.'));\n if (publicFolder) {\n fileWithoutExtension = publicFolder + fileWithoutExtension;\n }\n if (replaceInPlace) {\n fileWithoutExtension = filePath + fileWithoutExtension;\n }\n return output.replace('$1', fileWithoutExtension);\n};\n\n/**\n * Compress a single file.\n *\n * @param {Object} settings\n */\nutils.compressSingleFile = (settings: MinifierOptions) => {\n const content = settings.content ? settings.content : utils.getContentFromFiles(settings.input);\n return settings.sync ? utils.runSync({ settings, content }) : utils.runAsync({ settings, content });\n};\n\n/**\n * Concatenate all input files and get the data.\n *\n * @param {String|Array} input\n * @return {String}\n */\nutils.getContentFromFiles = (input: string) => {\n if (!Array.isArray(input)) {\n return fs.readFileSync(input, 'utf8');\n }\n\n return input\n .map(path =>\n !fs.existsSync(path) || (fs.existsSync(path) && !fs.lstatSync(path).isDirectory())\n ? fs.readFileSync(path, 'utf8')\n : ''\n )\n .join('\\n');\n};\n\n/**\n * Run compressor in sync.\n *\n * @param {Object} settings\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @return {String}\n */\nutils.runSync = ({ settings, content, index }: MinifierOptions) =>\n settings && typeof settings.compressor !== 'string'\n ? settings.compressor({ settings, content, callback: null, index })\n : null;\n\n/**\n * Run compressor in async.\n *\n * @param {Object} settings\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @return {Promise}\n */\nutils.runAsync = ({ settings, content, index }: MinifierOptions) => {\n return new Promise((resolve, reject) => {\n settings && typeof settings.compressor !== 'string'\n ? settings.compressor({\n settings,\n content,\n callback: (err: Error, min: string) => {\n if (err) {\n return reject(err);\n }\n resolve(min);\n },\n index\n })\n : null;\n });\n};\n\n/**\n * Expose `utils`.\n */\nexport { utils };\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/*!\n * node-minify\n * Copyright(c) 2011-2022 Rodolphe Stoclin\n * MIT Licensed\n */\n\n/**\n * Module dependencies.\n */\nimport fs from 'fs';\nimport gzipSize from 'gzip-size';\nimport { Dictionary, MinifierOptions } from '@node-minify/types';\n\ninterface Utils {\n readFile: Function;\n writeFile: Function;\n deleteFile: Function;\n buildArgs: Function;\n clone: Function;\n getFilesizeInBytes: Function;\n getFilesizeGzippedInBytes: Function;\n prettyBytes: Function;\n setFileNameMin: Function;\n compressSingleFile: Function;\n getContentFromFiles: Function;\n runSync: Function;\n runAsync: Function;\n}\n\ninterface WriteFile {\n file: string;\n content: string;\n index: number;\n}\n\nconst utils = {} as Utils;\n\n/**\n * Read content from file.\n *\n * @param {String} file\n * @returns {String}\n */\nutils.readFile = (file: string) => fs.readFileSync(file, 'utf8');\n\n/**\n * Write content into file.\n *\n * @param {String} file\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @returns {String}\n */\nutils.writeFile = ({ file, content, index }: WriteFile) => {\n const _file = index !== undefined ? file[index] : file;\n if (!fs.existsSync(_file) || (fs.existsSync(_file) && !fs.lstatSync(_file).isDirectory())) {\n fs.writeFileSync(_file, content, 'utf8');\n }\n\n return content;\n};\n\n/**\n * Delete file.\n *\n * @param {String} file\n * @returns {String}\n */\nutils.deleteFile = (file: string) => fs.unlinkSync(file);\n\n/**\n * Builds arguments array based on an object.\n *\n * @param {Object} options\n * @returns {Array}\n */\nutils.buildArgs = (options: Dictionary<string | boolean>) => {\n const args: (string | boolean)[] = [];\n Object.keys(options).forEach((key: string) => {\n if (options[key] && options[key] !== false) {\n args.push('--' + key);\n }\n\n if (options[key] && options[key] !== true) {\n args.push(options[key]);\n }\n });\n\n return args;\n};\n\n/**\n * Clone an object.\n *\n * @param {Object} obj\n * @returns {Object}\n */\nutils.clone = (obj: {}) => JSON.parse(JSON.stringify(obj));\n\n/**\n * Get the file size in bytes.\n *\n * @returns {String}\n */\nutils.getFilesizeInBytes = (file: string) => {\n const stats = fs.statSync(file);\n const fileSizeInBytes = stats.size;\n return utils.prettyBytes(fileSizeInBytes);\n};\n\n/**\n * Get the gzipped file size in bytes.\n *\n * @returns {Promise.<String>}\n */\nutils.getFilesizeGzippedInBytes = (file: string) => {\n return new Promise(resolve => {\n const source = fs.createReadStream(file);\n source.pipe(gzipSize.stream()).on('gzip-size', size => {\n resolve(utils.prettyBytes(size));\n });\n });\n};\n\n/**\n * Get the size in human readable.\n * From https://github.com/sindresorhus/pretty-bytes\n *\n * @returns {String}\n */\nutils.prettyBytes = (num: number) => {\n const UNITS = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n if (!Number.isFinite(num)) {\n throw new TypeError(`Expected a finite number, got ${typeof num}: ${num}`);\n }\n\n const neg = num < 0;\n\n if (neg) {\n num = -num;\n }\n\n if (num < 1) {\n return (neg ? '-' : '') + num + ' B';\n }\n\n const exponent = Math.min(Math.floor(Math.log(num) / Math.log(1000)), UNITS.length - 1);\n const numStr = Number((num / Math.pow(1000, exponent)).toPrecision(3));\n const unit = UNITS[exponent];\n\n return (neg ? '-' : '') + numStr + ' ' + unit;\n};\n\n/**\n * Set the file name as minified.\n * eg. file.js returns file.min.js\n *\n * @param {String} file\n * @param {String} output\n * @param {String} publicFolder\n * @param {Boolean} replaceInPlace\n * @returns {String}\n */\nutils.setFileNameMin = (file: string, output: string, publicFolder: string, replaceInPlace: boolean) => {\n const filePath = file.substr(0, file.lastIndexOf('/') + 1);\n const fileWithoutPath = file.substr(file.lastIndexOf('/') + 1);\n let fileWithoutExtension = fileWithoutPath.substr(0, fileWithoutPath.lastIndexOf('.'));\n if (publicFolder) {\n fileWithoutExtension = publicFolder + fileWithoutExtension;\n }\n if (replaceInPlace) {\n fileWithoutExtension = filePath + fileWithoutExtension;\n }\n return output.replace('$1', fileWithoutExtension);\n};\n\n/**\n * Compress a single file.\n *\n * @param {Object} settings\n */\nutils.compressSingleFile = (settings: MinifierOptions) => {\n const content = settings.content ? settings.content : utils.getContentFromFiles(settings.input);\n return settings.sync ? utils.runSync({ settings, content }) : utils.runAsync({ settings, content });\n};\n\n/**\n * Concatenate all input files and get the data.\n *\n * @param {String|Array} input\n * @return {String}\n */\nutils.getContentFromFiles = (input: string) => {\n if (!Array.isArray(input)) {\n return fs.readFileSync(input, 'utf8');\n }\n\n return input\n .map(path =>\n !fs.existsSync(path) || (fs.existsSync(path) && !fs.lstatSync(path).isDirectory())\n ? fs.readFileSync(path, 'utf8')\n : ''\n )\n .join('\\n');\n};\n\n/**\n * Run compressor in sync.\n *\n * @param {Object} settings\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @return {String}\n */\nutils.runSync = ({ settings, content, index }: MinifierOptions) =>\n settings && typeof settings.compressor !== 'string'\n ? settings.compressor({ settings, content, callback: null, index })\n : null;\n\n/**\n * Run compressor in async.\n *\n * @param {Object} settings\n * @param {String} content\n * @param {Number} index - index of the file being processed\n * @return {Promise}\n */\nutils.runAsync = ({ settings, content, index }: MinifierOptions) => {\n return new Promise((resolve, reject) => {\n settings && typeof settings.compressor !== 'string'\n ? settings.compressor({\n settings,\n content,\n callback: (err: Error, min: string) => {\n if (err) {\n return reject(err);\n }\n resolve(min);\n },\n index\n })\n : null;\n });\n};\n\n/**\n * Expose `utils`.\n */\nexport { utils };\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-minify/utils",
3
- "version": "8.0.1-beta.0",
3
+ "version": "8.0.2-beta.0",
4
4
  "description": "utils for @node-minify",
5
5
  "keywords": [
6
6
  "compressor",
@@ -48,7 +48,7 @@
48
48
  "gzip-size": "6.0.0"
49
49
  },
50
50
  "devDependencies": {
51
- "@node-minify/types": "8.0.1-beta.0"
51
+ "@node-minify/types": "8.0.2-beta.0"
52
52
  },
53
- "gitHead": "35a8a41ec86a11cbec05d8a7db9113475ece2cef"
53
+ "gitHead": "bd2fe186257749fcb9bf7a9ff1ce61fb922c4ade"
54
54
  }