Socket
Socket
Sign inDemoInstall

beezlib

Package Overview
Dependencies
Maintainers
4
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

beezlib - npm Package Compare versions

Comparing version 0.9.4 to 0.9.6

lib/common.js

56

lib/css/sprite.js

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc