Linting added
This commit is contained in:
parent
494937e983
commit
f9ad51b2fd
3 changed files with 55 additions and 45 deletions
36
cli.js
36
cli.js
|
@ -1,24 +1,24 @@
|
||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
'use strict';
|
'use strict'
|
||||||
|
|
||||||
const svgdir2sprite = require('./');
|
const svgdir2sprite = require('./')
|
||||||
const argv = require('yargs')
|
const argv = require('yargs')
|
||||||
.demandCommand(1, 'Warning: Please set a source directory for loose svg\'s')
|
.demandCommand(1, 'Warning: Please set a source directory for loose svg\'s')
|
||||||
.example('$0 ./svgs', ':: Output to console')
|
.example('$0 ./svgs', ':: Output to console')
|
||||||
.example('$0 ./svgs ./build/file.svg', ':: Output to file')
|
.example('$0 ./svgs ./build/file.svg', ':: Output to file')
|
||||||
.alias('help', 'h')
|
.alias('help', 'h')
|
||||||
.help()
|
.help()
|
||||||
.version()
|
.version()
|
||||||
.wrap(process.stdout.columns)
|
.wrap(process.stdout.columns)
|
||||||
.argv;
|
.argv
|
||||||
|
|
||||||
let [src, dest] = argv._;
|
let [src, dest] = argv._
|
||||||
|
|
||||||
svgdir2sprite(src, dest)
|
svgdir2sprite(src, dest)
|
||||||
.then((svgContents) => {
|
.then((svgContents) => {
|
||||||
if (dest) {
|
if (dest) {
|
||||||
console.log('Spritesheet successfully generated as ' + dest);
|
console.log('Spritesheet successfully generated as ' + dest)
|
||||||
} else {
|
} else {
|
||||||
console.log(svgContents);
|
console.log(svgContents)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
|
54
index.js
54
index.js
|
@ -1,50 +1,50 @@
|
||||||
const fs = require('fs');
|
const fs = require('fs')
|
||||||
const async = require('async');
|
const async = require('async')
|
||||||
const svgSprite = require('svg2sprite');
|
const svgSprite = require('svg2sprite')
|
||||||
const sprite = svgSprite.collection();
|
const sprite = svgSprite.collection()
|
||||||
|
|
||||||
const isSVG = (filename) => filename.split('.').pop() === 'svg';
|
const isSVG = (filename) => filename.split('.').pop() === 'svg'
|
||||||
const iconName = (filename) => filename.split('.')[0];
|
const iconName = (filename) => filename.split('.')[0]
|
||||||
|
|
||||||
function saveSpritesheet(path, spritesheet) {
|
function saveSpritesheet (path, spritesheet) {
|
||||||
if(path.indexOf('.svg') === -1) throw 'Error: Please specify a filename ending with .svg';
|
if (path.indexOf('.svg') === -1) throw new Error('Error: Please specify a filename ending with .svg')
|
||||||
|
|
||||||
fs.writeFile(path, spritesheet, (error) => { if (error) throw error });
|
fs.writeFile(path, spritesheet, (error) => { if (error) throw error })
|
||||||
}
|
}
|
||||||
|
|
||||||
function readSprite(filename, file) {
|
function readSprite (filename, file) {
|
||||||
sprite.add(iconName(filename), `<svg>${file}</svg>`);
|
sprite.add(iconName(filename), `<svg>${file}</svg>`)
|
||||||
}
|
}
|
||||||
|
|
||||||
function allSpritesRead(pathBuild) {
|
function allSpritesRead (pathBuild) {
|
||||||
let spritesheet = sprite.compile();
|
let spritesheet = sprite.compile()
|
||||||
|
|
||||||
if (pathBuild) {
|
if (pathBuild) {
|
||||||
saveSpritesheet(pathBuild, spritesheet);
|
saveSpritesheet(pathBuild, spritesheet)
|
||||||
}
|
}
|
||||||
|
|
||||||
return spritesheet;
|
return spritesheet
|
||||||
}
|
}
|
||||||
|
|
||||||
function generate(pathSrc, pathBuild) {
|
function generate (pathSrc, pathBuild) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
fs.readdir(pathSrc, (error, filenames) => {
|
fs.readdir(pathSrc, (error, filenames) => {
|
||||||
if (error) reject(error);
|
if (error) reject(error)
|
||||||
|
|
||||||
async.eachSeries(filenames.filter(isSVG), (filename, cb) => {
|
async.eachSeries(filenames.filter(isSVG), (filename, cb) => {
|
||||||
fs.readFile(pathSrc + filename, (error, fileData) => {
|
fs.readFile(pathSrc + filename, (error, fileData) => {
|
||||||
if (error) reject(error);
|
if (error) reject(error)
|
||||||
|
|
||||||
readSprite(filename, fileData);
|
readSprite(filename, fileData)
|
||||||
cb(fileData);
|
cb(fileData)
|
||||||
});
|
})
|
||||||
}, (error) => {
|
}, (error) => {
|
||||||
if (error) reject(error);
|
if (error) reject(error)
|
||||||
|
|
||||||
resolve(allSpritesRead(pathBuild));
|
resolve(allSpritesRead(pathBuild))
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = generate;
|
module.exports = generate
|
||||||
|
|
10
package.json
10
package.json
|
@ -7,6 +7,9 @@
|
||||||
"bin": {
|
"bin": {
|
||||||
"svgdir2sprite": "./cli.js"
|
"svgdir2sprite": "./cli.js"
|
||||||
},
|
},
|
||||||
|
"scripts": {
|
||||||
|
"lint": "eslint ./*.js"
|
||||||
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"svg",
|
"svg",
|
||||||
"symbol",
|
"symbol",
|
||||||
|
@ -23,5 +26,12 @@
|
||||||
"fs": "0.0.1-security",
|
"fs": "0.0.1-security",
|
||||||
"svg2sprite": "^2.0.1",
|
"svg2sprite": "^2.0.1",
|
||||||
"yargs": "^7.1.0"
|
"yargs": "^7.1.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"eslint-config-standard": "^11.0.0",
|
||||||
|
"eslint-plugin-import": "^2.9.0",
|
||||||
|
"eslint-plugin-node": "^6.0.0",
|
||||||
|
"eslint-plugin-promise": "^3.6.0",
|
||||||
|
"eslint-plugin-standard": "^3.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue