Comparing version 0.9.4 to 0.9.6
@@ -7,6 +7,7 @@ /** | ||
var path = require('path'); | ||
var _ = require('underscore'); | ||
var _ = require('lodash'); | ||
var Builder = require('node-spritesheet').Builder; | ||
var fs = require('fs'); | ||
var fsys = require('../fsys'); | ||
@@ -43,19 +44,10 @@ var logger = require('../logger'); | ||
var head = this.getHead(images[0], options); | ||
var output = constant.CSS_SPRITE_PREFIX + separator + group; | ||
var name = constant.CSS_SPRITE_PREFIX + separator + group; | ||
var output = dstPath + path.sep + name; | ||
var checker = new fsys.Checker(images, options.logpath, options.logname); | ||
var isExist = true; | ||
var outputImage, builder; | ||
// check modified | ||
if (options.overwrite === false) { | ||
// read log | ||
checker.read(); | ||
// check modified | ||
if (!checker.isModified(dstPath + path.sep + output)) { | ||
callback && callback(); | ||
return; | ||
} | ||
} | ||
// make csssprite builder | ||
var builder = new Builder({ | ||
// Make csssprite builder | ||
builder = new Builder({ | ||
outputDirectory: dstPath, | ||
@@ -67,12 +59,31 @@ outputCss: head + separator + group + constant.EXTENSION_STYL, | ||
// add builder options | ||
for (var i = 0; i < ratios.length; i++) { | ||
var ratio = ratios[i]; | ||
// Add builder options | ||
_.each(ratios, function (ratio) { | ||
outputImage = name + constant.CSS_SPRITE_RATIO_SEPARATOR + (ratio * 10) + constant.CSS_SPRITE_RATIO_SUFFIX + constant.EXTENSION_PNG; | ||
if (!fs.existsSync(dstPath + path.sep + outputImage)) { | ||
isExist = false; | ||
} | ||
builder.addConfiguration(ratio + constant.CSS_SPRITE_RATIO_SUFFIX, { | ||
pixelRatio: ratio, | ||
outputImage: output + constant.CSS_SPRITE_RATIO_SEPARATOR + (ratio * 10) + constant.CSS_SPRITE_RATIO_SUFFIX + constant.EXTENSION_PNG | ||
outputImage: outputImage | ||
}); | ||
}); | ||
// Check modified | ||
if (options.overwrite === false && isExist) { | ||
checker.read(); | ||
if (!checker.isModified(output)) { | ||
logger.info('Skip build sprite. id: ', output); | ||
callback && callback(); | ||
return; | ||
} | ||
} | ||
// Build !! | ||
builder.build(function (err, ret) { | ||
if (err) { | ||
@@ -85,3 +96,4 @@ logger.err('css.sprite.build:', err); | ||
logger.trace('save log id: ', output); | ||
checker.save(dstPath + '/' + output); | ||
checker.save(output); | ||
checker.write(); | ||
@@ -305,2 +317,2 @@ } | ||
} | ||
}; | ||
}; |
@@ -13,7 +13,9 @@ /** | ||
var nib = require('nib'); | ||
var _ = require('underscore'); | ||
var _ = require('lodash'); | ||
var logger = require('../logger'); | ||
var fsys = require('../fsys'); | ||
var obj = require('../obj'); | ||
var constant = require('../constant'); | ||
var common = require('../common'); | ||
@@ -40,12 +42,28 @@ var DEFAULT_OPTIONS = constant.CSS_STYLUS_DEFAULT_OPTIONS; | ||
* beezlib.css.stylus.write('./test.styl', './test.css', { | ||
* compress: true, | ||
* firebug: false, | ||
* linenos: false, | ||
* nib: true, | ||
* fn : function (styl) { | ||
* styl.define('body-padding', function (data) { | ||
* var rate = data.val || 1; | ||
* var base = 10; | ||
* return (rate * base) + 'px'; | ||
* }); | ||
* options: { | ||
* compress: true, | ||
* firebug: false, | ||
* linenos: false, | ||
* nib: true, | ||
* fn : function (styl) { | ||
* styl.define('body-padding', function (data) { | ||
* var rate = data.val || 1; | ||
* var base = 10; | ||
* return (rate * base) + 'px'; | ||
* }); | ||
* } | ||
* }, | ||
* { | ||
* extend: { | ||
* "condition": { | ||
* "ua": [ "android", "ios" ] | ||
* }, | ||
* "content": { | ||
* "options": { | ||
* "fn": { | ||
* "STAT_URL": "http://stat.example.com" | ||
* } | ||
* } | ||
* } | ||
* } | ||
* } | ||
@@ -60,4 +78,11 @@ * }, function (err, css) { | ||
*/ | ||
write: function (src, dst, options, callback) { | ||
write: function (src, dst, config, headers, callback) { | ||
if (_.isFunction(headers)) { | ||
callback = headers; | ||
headers = undefined; | ||
} | ||
var options = config.options; | ||
if (!fsys.isFileSync(src)) { | ||
@@ -85,6 +110,12 @@ return callback(new Error('source file not found. path:', src)); | ||
if(options.nib) { // use nib library | ||
if (options.nib) { // use nib library | ||
styl.use(nib()); | ||
} | ||
// extend options | ||
if (config.hasOwnProperty('extend') && headers && common.isUAOverride(config, headers) && config.extend.hasOwnProperty('content')) { | ||
options = obj.copy(config.extend.content, config).options; | ||
logger.debug('Override stylus options:', options); | ||
} | ||
// define functions and constant values | ||
@@ -114,2 +145,2 @@ if (options.fn && Object.keys(options.fn).length) { | ||
} | ||
}; | ||
}; |
@@ -12,3 +12,3 @@ /** | ||
var suns = require('suns'); | ||
var _ = require('underscore'); | ||
var _ = require('lodash'); | ||
var logger = require('../logger'); | ||
@@ -15,0 +15,0 @@ var constant = require('../constant'); |
@@ -12,3 +12,3 @@ /** | ||
var _ = require('underscore'); | ||
var _ = require('lodash'); | ||
var mkdirp = require('mkdirp'); | ||
@@ -15,0 +15,0 @@ var jsonminify = require('jsonminify'); |
@@ -11,3 +11,3 @@ /** | ||
var _ = require('underscore'); | ||
var _ = require('lodash'); | ||
var jsonminify = require('jsonminify'); | ||
@@ -14,0 +14,0 @@ var suns = require('suns'); |
@@ -12,3 +12,3 @@ /** | ||
var im = require('imagemagick'); | ||
var _ = require('underscore'); | ||
var _ = require('lodash'); | ||
@@ -15,0 +15,0 @@ var logger = require('../logger'); |
@@ -11,3 +11,3 @@ /** | ||
var _ = require('underscore'); | ||
var _ = require('lodash'); | ||
@@ -146,2 +146,2 @@ var logger = require('../logger'); | ||
} | ||
}; | ||
}; |
@@ -15,2 +15,3 @@ /** | ||
var common = require('./common'); | ||
var obj = require('./obj'); | ||
@@ -93,2 +94,8 @@ var fsys = require('./fsys'); | ||
/** | ||
* common | ||
* @name common | ||
* @memberof beezlib | ||
*/ | ||
common: common, | ||
/** | ||
* empty function | ||
@@ -130,5 +137,4 @@ * @name none | ||
} | ||
}; | ||
module.exports = beezlib; |
@@ -8,3 +8,3 @@ /** | ||
var _ = require('underscore'); | ||
var _ = require('lodash'); | ||
@@ -18,28 +18,13 @@ /** | ||
/** | ||
* for each props in src | ||
* Warnning: !! destructive !! | ||
* | ||
* @memberof obj | ||
* @method | ||
* @param {Object} dst destination | ||
* @param {Object} src source | ||
* @return {Object} | ||
*/ | ||
copyr: function copyr(dst, src) { | ||
var dstProp, srcProp; | ||
copy: function (extend, original) { | ||
var _original = _.cloneDeep(original); | ||
var _extend = _.cloneDeep(extend); | ||
var out = _.merge(_original, _extend); | ||
for (var k in src) { | ||
// avoid unnecessary traversing prototype | ||
if (src.hasOwnProperty(k)) { | ||
dstProp = dst[k]; | ||
srcProp = src[k]; | ||
if (_.isObject(dstProp) && !_.isArray(srcProp)){ | ||
copyr(dst[k], src[k]); // cp recursively | ||
} else { | ||
dst[k] = src[k]; // override/add property 'k' | ||
} | ||
} | ||
} | ||
return dst; | ||
return out; | ||
} | ||
}; |
@@ -11,9 +11,9 @@ /** | ||
var _ = require('underscore'); | ||
var _ = require('lodash'); | ||
var handlebars = require('handlebars'); | ||
var ua = require('beez-ua'); | ||
var logger = require('../logger'); | ||
var obj = require('../obj'); | ||
var constant = require('../constant'); | ||
var logger = require('../logger'); | ||
var common = require('../common'); | ||
@@ -23,23 +23,2 @@ var DEFAULT_ENCODE = constant.DEFAULT_ENCODE; | ||
/** | ||
* Override judgment of UserAgent. | ||
* | ||
* @param {Object} config | ||
* @param {Object} headers | ||
* @return {boolean} | ||
*/ | ||
var isUAOverride = function isUAOverride(config, headers) { | ||
if (!config.extend.hasOwnProperty('condition') || | ||
!config.extend.condition.hasOwnProperty('ua')) { | ||
return false; | ||
} | ||
// Get OS information from UserAgent | ||
ua.setup(headers['user-agent'] || '-'); | ||
return _.some(config.extend.condition.ua, function(os) { | ||
return !!ua.os[os]; | ||
}); | ||
}; | ||
/** | ||
* @name hbs | ||
@@ -87,2 +66,3 @@ * @namespace hbs | ||
out = out.join(''); | ||
fs.writeFileSync(dstpath, out, encode); | ||
@@ -172,8 +152,10 @@ | ||
if (clientconf.hasOwnProperty('extend') && headers && isUAOverride(clientconf, headers) && clientconf.extend.hasOwnProperty('content')) { | ||
clientconf.requirejs = obj.copyr(clientconf.requirejs, clientconf.extend.content); | ||
var out = obj.copy(clientconf.requirejs, {}); | ||
if (clientconf.hasOwnProperty('extend') && headers && common.isUAOverride(clientconf, headers) && clientconf.extend.hasOwnProperty('content')) { | ||
out = obj.copy(clientconf.extend.content, out); | ||
logger.debug('Override requirehbs2hbsc out:', out); | ||
} | ||
var context = { | ||
config: new handlebars.SafeString(JSON.stringify(clientconf.requirejs, null, ' ')), | ||
config: new handlebars.SafeString(JSON.stringify(out, null, ' ')), | ||
entrypoint: entrypoint, | ||
@@ -185,2 +167,4 @@ name: env, | ||
var html = template(context); | ||
/// | ||
fs.writeFileSync(dstpath, html, encode); | ||
@@ -219,6 +203,9 @@ | ||
if (store.stat.data.hasOwnProperty(key)) { | ||
locals = JSON.parse(JSON.stringify(store.stat.data[key])); // deep clone | ||
if (locals.hasOwnProperty('extend') && headers && isUAOverride(locals, headers) && locals.extend.hasOwnProperty('content')) { | ||
locals.requirejs = obj.copyr(locals.requirejs, locals.extend.content); | ||
locals = obj.copy( store.stat.data[key], {}); | ||
if (locals.hasOwnProperty('extend') && headers && common.isUAOverride(locals, headers) && locals.extend.hasOwnProperty('content')) { | ||
locals.requirejs = obj.copy(locals.extend.content, locals.requirejs); | ||
logger.debug('Override hbs2hbsc2html requirejs:', locals.requirejs); | ||
} | ||
for (var k in locals.requirejs.config) { | ||
@@ -234,2 +221,4 @@ var newkey = k.replace('.', '_'); // data.requirejs.config key copy . -> _ | ||
var output = template(locals); | ||
/// | ||
fs.writeFileSync(dstpath, output, encode); | ||
@@ -236,0 +225,0 @@ |
{ | ||
"name": "beezlib", | ||
"version": "0.9.4", | ||
"version": "0.9.6", | ||
"description": "", | ||
@@ -14,2 +14,5 @@ "keywords": [ | ||
], | ||
"scripts": { | ||
"test": "mocha -r should test/test-*.js" | ||
}, | ||
"homepage": "https://github.com/CyberAgent/beezlib", | ||
@@ -49,3 +52,3 @@ "licenses": [ | ||
"bucks": "~0.8.1", | ||
"underscore": "~1.5.0", | ||
"lodash": "~2.4.0", | ||
"imagemagick": "~0.1.0", | ||
@@ -52,0 +55,0 @@ "mkdirp": "~0.3.0", |
beezlib | ||
========= | ||
## About | ||
@@ -5,0 +6,0 @@ |
{ | ||
"develop": { // enviroment name | ||
"entrypoint": "index/index", | ||
"extend": { | ||
"condition": { | ||
"ua": [ "android", "ios" ] | ||
}, | ||
"content": { | ||
"config": { | ||
"test": true | ||
} | ||
} | ||
}, | ||
"requirejs": { | ||
"test": true, | ||
"config": { | ||
"test": true | ||
"test": false | ||
} | ||
@@ -9,0 +19,0 @@ } |
var path = require('path'); | ||
var should = require('should'); | ||
var index = require('../lib'); | ||
@@ -37,345 +35,4 @@ | ||
}); | ||
it('obj copyr', function () { | ||
var obj0 = { | ||
a: 0, | ||
c: "c", | ||
}; | ||
var obj1 = { | ||
b: 1, | ||
d: [0,"",[0, 1], { | ||
a: 0, | ||
b: 1, | ||
c: "", | ||
d: [] | ||
}], | ||
e: { | ||
a: 0, | ||
b: 1, | ||
c: "", | ||
d: [] | ||
} | ||
}; | ||
var extend = index.obj.copyr(obj0, obj1); | ||
JSON.stringify(obj0).should.equal(JSON.stringify(extend)).be.ok; | ||
}), | ||
it('fsys mkdirp', function (done) { | ||
var dirpath = '/tmp/hoge/foo/bar/spam'; | ||
index.fsys.mkdirp(dirpath, 0755, function (err, result) { | ||
if (err) { | ||
should.fail('fsys mkdir_p'); | ||
} else if (result === null) { | ||
should.ok('I already exists.'); | ||
} else { | ||
result.should.equal('/tmp/hoge').be.ok; | ||
} | ||
done(); | ||
}); | ||
}); | ||
it('fsys rmrfSync', function () { | ||
var dirpath = '/tmp/hoge'; | ||
index.fsys.rmrfSync(dirpath); | ||
}); | ||
it('fsys isFile', function () { | ||
var dirpath = '/tmp'; | ||
var dirpath1 = '/tmp/hoge'; | ||
index.fsys.isDirectorySync(dirpath).should.be.ok; | ||
index.fsys.isDirectorySync(dirpath1).should.not.be.ok; | ||
index.fsys.isFileSync(dirpath).should.not.be.ok; | ||
}); | ||
it('fsys readFileFnJSONSync', function () { | ||
var json = index.fsys.readFileFnJSONSync('test/json/json.js'); | ||
json.hoge.should.equal('foo').be.ok; | ||
}); | ||
it('fsys readFileMultiConfigureSync', function () { | ||
var json = index.fsys.readFileMultiConfigureSync('test/json/json.js'); | ||
json.hoge.should.equal('foo').be.ok; | ||
json = index.fsys.readFileMultiConfigureSync('test/json/item.json'); | ||
json.item.fruit.should.equal('Orange').be.ok; | ||
}); | ||
it('fsys/store', function() { | ||
var dir = 'test/json'; | ||
var store = new index.fsys.store.JSONStore(dir); | ||
store.basename.should.equal('json').be.ok; | ||
store.data.item.should.be.ok; | ||
store.mapping.item.should.equal('test/json/item.json'); | ||
store.mapping.hoge.should.equal('test/json/json.js'); | ||
store.hash['test/json/dir/index.json'].should.equal('8b8ef0b684580b7a03e1928651a8d3b545211a6838a1432a91e030015ca8a803').be.ok; | ||
}); | ||
it('fsys/readJsonSync',function() { | ||
var file = 'test/json/user.json'; | ||
var res = index.fsys.readJsonSync(file, true); | ||
res.user.name.should.equal('fkei').be.ok; | ||
}); | ||
it('fsys/chmodfilesSync', function() { | ||
var files = ['test/json/user.json', 'test/json/item.json']; | ||
index.fsys.chmodfilesSync(files, 0755); | ||
}); | ||
it('fsys/cp', function(done) { | ||
var src = 'test/json/user.json'; | ||
var dst = 'test/json/user.copy.json'; | ||
index.fsys.cp(src, dst, function (err, res) { | ||
index.fsys.isFileSync(dst).should.be.ok; | ||
done(); | ||
}); | ||
}); | ||
it('fsys resolveTilde', function() { | ||
var str = index.fsys.resolveTilde('~/Desktop'); | ||
str.substr(0,1).should.equal('/').be.ok; | ||
//console.log(str); | ||
}); | ||
it('fsys pathTilde', function() { | ||
var str = index.fsys.pathTilde('~/Desktop'); | ||
str.substr(0,1).should.equal('/').be.ok; | ||
//console.log(str); | ||
}); | ||
it('template/hbs2hbsc', function() { | ||
var dstpath = index.template.hbs2hbscjs('test/hbs/', 'test.hbs'); | ||
//console.log(dstpath); | ||
dstpath.should.equal('test/hbs/test.hbsc.js'); | ||
}); | ||
it('template/hbsp2hbspjs', function() { | ||
var dstpath = index.template.hbsp2hbspjs('test/hbs/', 'test.hbsp'); | ||
//console.log(dstpath); | ||
dstpath.should.equal('test/hbs/test.hbsp.js'); | ||
}); | ||
it('template/requirehbs2hbsc', function() { | ||
var store = { | ||
stat: new index.fsys.store.JSONStore('test/store') | ||
}; | ||
var dstpath = index.template.requirehbs2hbsc('test/hbs/require.beez.local.develop.js', 'require.beez.js.hbs', store); | ||
//console.log(dstpath); | ||
dstpath.should.equal('test/hbs/require.beez.local.develop.js'); | ||
}); | ||
it('template/hbs2hbsc2html', function() { | ||
var store = { | ||
stat: new index.fsys.store.JSONStore('test/store') | ||
}; | ||
var dstpath = index.template.hbs2hbsc2html('test/hbs/local.develop.html', 'index.html.hbs', store); | ||
dstpath.should.equal('test/hbs/local.develop.html'); | ||
}); | ||
it('css/stylus#write', function(done) { | ||
index.css.stylus.write('./test/stylus/test.styl', './test/stylus/test.css', { | ||
compress: true, | ||
firebug: false, | ||
linenos: false, | ||
nib: true, | ||
fn : { | ||
TEST: 'TEST', | ||
'body-padding': function (value) { | ||
value.should.equal(3); | ||
return value + 'px'; | ||
} | ||
} | ||
}, function (err, css) { | ||
if (err) { | ||
console.log(err); | ||
should.fail(); | ||
} | ||
css.should.be.ok; | ||
//console.log(css); | ||
done(); | ||
}); | ||
}); | ||
it('css/sprite#build', function (done) { | ||
var options = { extnames: ['.png', '.jpg'], ratios: [1, 2] }; | ||
var images = index.css.sprite.getImages('test/image/sprite', 'logo', options); | ||
index.css.sprite.build('test/image/sprite', 'logo', images, options, done); | ||
}); | ||
it('css/sprite#build overwrite: false', function (done) { | ||
var options = { extnames: ['.png', '.jpg'], ratios: [1, 2], overwrite: false}; | ||
var images = index.css.sprite.getImages('test/image/sprite', 'logo', options); | ||
index.css.sprite.build('test/image/sprite', 'logo', images, options, done); | ||
}); | ||
it('css/sprite#getImages', function (done) { | ||
var options = { extnames: ['.png', '.jpg'] }; | ||
var images = index.css.sprite.getImages('test/image/sprite', 'logo', options); | ||
images.should.have.include('test/image/sprite/sprite-logo-hoge.png'); | ||
images.should.have.include('test/image/sprite/sprite-logo-fuga.jpg'); | ||
images.should.have.include('test/image/sprite/sprite-logo-foo.png'); | ||
done(); | ||
}); | ||
it('css/sprite#getGroup', function (done) { | ||
index.css.sprite.getGroup('sprite-logo@10x.png').should.be.equal('logo'); | ||
index.css.sprite.getGroup('sprite-logo-hoge.png').should.be.equal('logo'); | ||
index.css.sprite.getGroup('_sprite-logo-fuga.jpg').should.be.equal('logo'); | ||
index.css.sprite.getGroup('sprite-logo.styl').should.be.equal('logo'); | ||
index.css.sprite.getGroup('sprite-logo.css').should.be.equal('logo'); | ||
done(); | ||
}); | ||
it('css/sprite#getHead', function (done) { | ||
index.css.sprite.getHead('sprite-logo@10x.png').should.be.equal('sprite'); | ||
index.css.sprite.getHead('sprite-logo-10.png').should.be.equal('sprite'); | ||
index.css.sprite.getHead('_sprite-logo-10.jpg').should.be.equal('_sprite'); | ||
index.css.sprite.getHead('sprite-logo.styl').should.be.equal('sprite'); | ||
index.css.sprite.getHead('sprite-logo.css').should.be.equal('sprite'); | ||
done(); | ||
}); | ||
it('css/sprite#getCreateFile', function (done) { | ||
var options = { ratios: [1, 2] }; | ||
var files = index.css.sprite.getCreateFile('sprite-logo-hoge.png', options); | ||
files.should.have.length(3); | ||
files.should.have.include('sprite-logo.styl'); | ||
files.should.have.include('sprite-logo@10x.png'); | ||
files.should.have.include('sprite-logo@20x.png'); | ||
done(); | ||
}); | ||
it('css/sprite#isSpriteImage', function (done) { | ||
var options = { heads: ['sprite', '_sprite'], extnames: ['.png', '.jpg'] }; | ||
index.css.sprite.isSpriteImage('sprite-logo-10.png', options).should.be.true; | ||
index.css.sprite.isSpriteImage('sprite-logo-10.jpg', options).should.be.true; | ||
index.css.sprite.isSpriteImage('sprite-logo@10x.png', options).should.be.false; | ||
index.css.sprite.isSpriteImage('sprite-logo.png', options).should.be.false; | ||
index.css.sprite.isSpriteImage('_sprite-logo-10.png', options).should.be.true; | ||
index.css.sprite.isSpriteImage('_sprite-logo-10.jpg', options).should.be.true; | ||
done(); | ||
}); | ||
it('css/sprite#isSpriteSheet', function (done) { | ||
var options = { heads: ['sprite', '_sprite'] }; | ||
index.css.sprite.isSpriteSheet('sprite-logo@10x.png', options).should.be.true; | ||
index.css.sprite.isSpriteSheet('sprite-logo-10.png', options).should.be.false; | ||
index.css.sprite.isSpriteSheet('sprite-logo.png', options).should.be.false; | ||
done(); | ||
}); | ||
it('css/sprite#isSpriteStylus', function (done) { | ||
var options = { heads: ['sprite', '_sprite'] }; | ||
index.css.sprite.isSpriteStylus('sprite-logo.styl', options).should.be.true; | ||
index.css.sprite.isSpriteStylus('sprite-logo.png', options).should.be.false; | ||
index.css.sprite.isSpriteStylus('_sprite-logo.styl', options).should.be.true; | ||
done(); | ||
}); | ||
it('css/sprite#isSpriteCss', function (done) { | ||
var options = { heads: ['sprite', '_sprite'] }; | ||
index.css.sprite.isSpriteCss('sprite-logo.css', options).should.be.true; | ||
index.css.sprite.isSpriteCss('sprite-logo.png', options).should.be.false; | ||
index.css.sprite.isSpriteCss('_sprite-logo.css', options).should.be.true; | ||
done(); | ||
}); | ||
it('image# getSize/resize', function (done) { | ||
var src = 'test/image/logo.png'; | ||
var dstdir = 'test/image'; | ||
index.image.imagemagick.getSize(src, function(err, res) { | ||
err && should.fail('error index.image.getSize', err, res); | ||
var width = res.width; | ||
var height = res.height; | ||
var ratio = 3.0; | ||
var rw = Math.floor(width * ratio / 2); | ||
var rh = Math.floor(height * ratio / 2); | ||
var dst = path.join(dstdir, '/logo-' + rw + 'x' + rh + '.png'); | ||
index.image.imagemagick.resize({ | ||
srcPath: src, | ||
dstPath: dst, | ||
width: rw, | ||
height: rh, | ||
strip: true, | ||
sharpening: 0.3 | ||
}); | ||
done(); | ||
}); | ||
}); | ||
it('image# makeRatioFileNameSync', function () { | ||
index.image.imagemagick.makeRatioFileNameSync('logo.png', null, 1.3).should.equal('logo-13.png').be.ok; | ||
index.image.imagemagick.makeRatioFileNameSync('logo.png', null, 1.3).should.equal('logo-13.png').be.ok; | ||
index.image.imagemagick.makeRatioFileNameSync('logo.png', null, 2).should.equal('logo-20.png').be.ok; | ||
index.image.imagemagick.makeRatioFileNameSync('logo.jpg', null, 1.3).should.equal('logo-13.jpg').be.ok; | ||
}); | ||
it('image# isRatioFileNameSync', function () { | ||
index.image.imagemagick.isRatioFileNameSync('logo-20.png', null).should.be.ok; | ||
index.image.imagemagick.isRatioFileNameSync('logo.png', null).should.not.be.ok; | ||
}); | ||
it('image# changeRatioFileNameSync', function () { | ||
index.image.imagemagick.changeRatioFileNameSync('logo-20.png', null, 1.3).should.equal('logo-13.png').be.ok; | ||
index.image.imagemagick.changeRatioFileNameSync('logo-hoge-20.png', null, 1.3).should.equal('logo-hoge-13.png').be.ok; | ||
index.image.imagemagick.changeRatioFileNameSync('logo-hoge-120.png', null, 1.3).should.equal('logo-hoge-13.png').be.ok; | ||
}); | ||
it('image# ratioResize', function (done) { | ||
var baseRatio = 2.0; | ||
var outRatios = [3.0, 2.0, 1.3, 1.0]; | ||
var options = { | ||
srcPath: 'test/image/logo.png', | ||
dstPath: 'test/image', | ||
//width: null, | ||
//height: null, | ||
strip: true, | ||
sharpening: 0.3 | ||
}; | ||
index.image.imagemagick.ratioResize(options, baseRatio, outRatios, function (err, res) { | ||
setTimeout(function () { | ||
done(); | ||
}, 200); | ||
}); | ||
}); | ||
it('image# imagemagick.identify logo-10.png', function (done) { | ||
var options = ['-format', '%wx%h', 'test/image/logo-10.png']; | ||
var identify = index.image.imagemagick.identify(options, function(err, res) { | ||
err && should.fail(err); | ||
res = res.replace('\n', '').split('x'); | ||
res[0].should.equal('200').be.ok; | ||
res[1].should.equal('200').be.ok; | ||
done(); | ||
}); | ||
}); | ||
it('image# imagemagick.identify logo-13.png', function (done) { | ||
var options = ['-format', '%wx%h', 'test/image/logo-13.png']; | ||
var identify = index.image.imagemagick.identify(options, function(err, res) { | ||
err && should.fail(err); | ||
res = res.replace('\n', '').split('x'); | ||
res[0].should.equal('260').be.ok; | ||
res[1].should.equal('260').be.ok; | ||
done(); | ||
}); | ||
}); | ||
it('image# imagemagick.identify logo-30.png', function (done) { | ||
var options = ['-format', '%wx%h', 'test/image/logo-30.png']; | ||
var identify = index.image.imagemagick.identify(options, function(err, res) { | ||
err && should.fail(err); | ||
res = res.replace('\n', '').split('x'); | ||
res[0].should.equal('600').be.ok; | ||
res[1].should.equal('600').be.ok; | ||
done(); | ||
}); | ||
}); | ||
it('image# imagemagick.identify logo-600x600.png', function (done) { | ||
var options = ['-format', '%wx%h', 'test/image/logo-600x600.png']; | ||
var identify = index.image.imagemagick.identify(options, function(err, res) { | ||
err && should.fail(err); | ||
res = res.replace('\n', '').split('x'); | ||
res[0].should.equal('600').be.ok; | ||
res[1].should.equal('600').be.ok; | ||
done(); | ||
}); | ||
}); | ||
it('image# optipng logo.png', function(done) { | ||
index.image.optipng('test/image/logo.png', function(err) { | ||
should.not.exist(err); | ||
done(); | ||
}); | ||
}); | ||
it('image# jpegoptim logo.jpg', function(done) { | ||
index.image.jpegoptim('test/image/logo.jpg', function(err) { | ||
should.not.exist(err); | ||
done(); | ||
}); | ||
}); | ||
it('cmd/which', function(done) { | ||
@@ -382,0 +39,0 @@ var cmd = 'ls'; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
393269
88
3118
169
3
9
+ Addedlodash@~2.4.0
+ Addedlodash@2.4.2(transitive)
- Removedunderscore@~1.5.0
- Removedunderscore@1.5.2(transitive)