UNPKG

gen-srcset

Version:

![gen-srcset](https://user-images.githubusercontent.com/23039187/109422210-a35d2c80-79eb-11eb-9fdb-47ba52a29e94.png)

51 lines (38 loc) 1.81 kB
#!/usr/bin/env node "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _commander = require("commander"); var _path = _interopRequireDefault(require("path")); var _threads = require("threads"); var _getFilenameBase = _interopRequireDefault(require("./helpers/getFilenameBase")); _commander.program.version('0.4.1').option('-i, --input <path>', 'Input image path').option('-b, --breakpoints <breakpoints>', 'breakpoints which images will be generated').option('-o, --output <output>', 'output path').option('-n, --noAvif', "don't generate avif files"); _commander.program.parse(process.argv); const main = async () => { const options = _commander.program.opts(); if (!options.input) throw new Error('input argument is required'); if (!options.breakpoints) throw new Error('breakpoints argument is required'); const input = _path.default.resolve(options.input); const filename = _path.default.basename(input); const filenameBase = (0, _getFilenameBase.default)(filename); const output = options.output || '.'; const { noAvif } = options; const breakpoints = options.breakpoints.split(',').map(value => value.replace(' ', '')); const pictureService = (0, _threads.Pool)(() => (0, _threads.spawn)(new _threads.Worker('./services/picture.js'))); breakpoints.forEach(async breakpoint => { pictureService.queue(picture => picture.resizeOnly(input, breakpoint, output, filenameBase, filename)); }); breakpoints.forEach(async breakpoint => { if (noAvif) return; pictureService.queue(picture => picture.toAvif(input, breakpoint, output, filenameBase)); }); await pictureService.completed(); await pictureService.terminate(); }; try { main(); } catch (error) { console.log(error); process.exit(1); }