@microflash/spritely
Advanced tools
+20
-1
@@ -7,6 +7,13 @@ #!/usr/bin/env node | ||
| const cheerio = require('cheerio') | ||
| const klaw = require('klaw') | ||
| const pkg = require('../package.json') | ||
| program | ||
| .name(`spritely ${pkg.version}`) | ||
| .version(pkg.version) | ||
| program | ||
| .option('-i, --input [input]', 'specify input directory (default: current directory)') | ||
| .option('-o, --output [output]', 'specify output file (default: "sprites.svg")') | ||
| .option('-r, --recursive [recursive]', 'enable recursive traversal of input directory (default: false)') | ||
| .option('-v, --viewbox [viewbox]', 'specify viewBox attribute (detected automatically, if not specified)') | ||
@@ -20,2 +27,3 @@ .option('-p, --prefix [prefix]', 'specify prefix for id attribute for symbols (default: none)') | ||
| const OUTPUT_FILE = program.output || 'sprites.svg' | ||
| const RECURSIVE = program.recursive || false | ||
| const ID_PREFIX = program.prefix || '' | ||
@@ -82,4 +90,15 @@ const VIEWBOX = program.viewbox || null | ||
| const readSourceDirectory = d => fs.readdir(SOURCE_FOLDER) | ||
| const readSourceDirectory = d => { | ||
| return !RECURSIVE | ||
| ? fs.readdir(SOURCE_FOLDER) | ||
| : new Promise((resolve, reject) => { | ||
| const files = [] | ||
| klaw(SOURCE_FOLDER) | ||
| .on('data', ({ path, stats }) => { if (stats.isFile()) files.push(path) }) | ||
| .on('end', () => resolve(files)) | ||
| .on('error', (err, item) => reject(err, item)) | ||
| }) | ||
| } | ||
| const processFiles = files => { | ||
@@ -86,0 +105,0 @@ const processedFiles = files.filter(filterSvgFile).map(processFile) |
+2
-1
| { | ||
| "name": "@microflash/spritely", | ||
| "version": "1.2.5", | ||
| "version": "1.2.6", | ||
| "description": "A handy Node.js CLI to generate SVG sprites", | ||
@@ -11,2 +11,3 @@ "preferGlobal": true, | ||
| "fs-extra": "^9.0.1", | ||
| "klaw": "^3.0.0", | ||
| "svgo": "^1.3.2" | ||
@@ -13,0 +14,0 @@ }, |
+5
-0
@@ -22,4 +22,6 @@ # Spritely | ||
| Options: | ||
| -V, --version output the version number | ||
| -i, --input [input] specify input directory (default: current directory) | ||
| -o, --output [output] specify output file (default: "sprites.svg") | ||
| -r, --recursive [recursive] enable recursive traversal of input directory (default: false) | ||
| -v, --viewbox [viewbox] specify viewBox attribute (detected automatically, if not specified) | ||
@@ -46,2 +48,5 @@ -p, --prefix [prefix] specify prefix for id attribute for symbols (default: none) | ||
| $ spritely --prefix "icon-" | ||
| # Generate `sprites.svg` from SVG files in the directory `/mnt/e/assets` and the directories within it | ||
| $ spritely --input /mnt/e/assets/icons --recursive true | ||
| ``` | ||
@@ -48,0 +53,0 @@ |
9096
11.74%97
21.25%81
6.58%5
25%