Linting added

This commit is contained in:
sharpshark28 2018-02-22 19:44:18 -06:00
parent 494937e983
commit f9ad51b2fd
3 changed files with 55 additions and 45 deletions

30
cli.js
View file

@ -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)
} }
}); })

View file

@ -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

View file

@ -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"
} }
} }