vigour-util
Advanced tools
Comparing version 2.0.10 to 2.0.11
@@ -8,4 +8,5 @@ 'use strict' | ||
*/ | ||
var define = Object.defineProperty | ||
module.exports = function () { | ||
module.exports = define | ||
function define () { | ||
var val | ||
@@ -17,9 +18,35 @@ for (let i = 0, length = arguments.length; i < length; i++) { | ||
let type = typeof definition | ||
if (type === 'function' || type !== 'object' || val[key]._base_version) { | ||
definition = { value: definition } | ||
if (key === 'extend' && type === 'object') { | ||
extend(this, definition) | ||
} else { | ||
if (type === 'function' || type !== 'object' || 'isBase' in definition) { | ||
definition = { value: definition } | ||
} | ||
definition.configurable = true | ||
Object.defineProperty(this, key, definition) | ||
} | ||
definition.configurable = true | ||
define(this, key, definition) | ||
} | ||
} | ||
} | ||
function extend (target, val) { | ||
for (let key in val) { | ||
if (typeof val[key] !== 'function') { | ||
throw new Error(`Expect function for extension "${key}"`) | ||
} | ||
val[key] = (target.define || define) | ||
.call(target, { [key]: createExtension(val[key], target[key]) }) | ||
} | ||
} | ||
function createExtension (val, target) { | ||
return function extension () { | ||
const len = arguments.length | ||
const args = new Array(len + 1) | ||
args[0] = target | ||
for (let i = 0; i < len; i++) { | ||
args[i + 1] = arguments[i] | ||
} | ||
return val.apply(this, args) | ||
} | ||
} |
@@ -12,3 +12,3 @@ 'use strict' | ||
if (referenced && | ||
referenced._base_version && | ||
referenced.isBase && | ||
referenced.val !== null) { | ||
@@ -15,0 +15,0 @@ return referenced |
@@ -44,4 +44,3 @@ 'use strict' | ||
case 2: k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8 //eslint-disable-line | ||
case 1: k1 ^= (key.charCodeAt(i) & 0xff) | ||
case 1: k1 ^= (key.charCodeAt(i) & 0xff) //eslint-disable-line | ||
k1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff | ||
@@ -48,0 +47,0 @@ k1 = (k1 << 15) | (k1 >>> 17) |
@@ -10,3 +10,3 @@ 'use strict' | ||
module.exports = function isObj (obj) { | ||
return obj && typeof obj === 'object' && !obj._base_version | ||
return obj && typeof obj === 'object' && !obj.isBase | ||
} |
@@ -15,3 +15,3 @@ 'use strict' | ||
obj && typeof obj === 'object' && | ||
!obj._base_version && | ||
!obj.isBase && | ||
!isBuffer(obj) && | ||
@@ -18,0 +18,0 @@ !isStream(obj) |
{ | ||
"name": "vigour-util", | ||
"version": "2.0.10", | ||
"version": "2.0.11", | ||
"author": "Vigour.io <dev@vigour.io>", | ||
"scripts": { | ||
"test": "NODE_ENV=test node test | tap-difflet && vtest test | tap-difflet", | ||
"test": "NODE_ENV=test node test | tap-difflet && vtest test | tap-difflet && standard", | ||
"cover": "istanbul cover --report none --print detail test/index.js", | ||
@@ -57,4 +57,10 @@ "view-cover": "istanbul report html && open ./coverage/index.html", | ||
}, | ||
"standard": { | ||
"ignore": [ | ||
"regenerator.js" | ||
] | ||
}, | ||
"license": "ISC", | ||
"devDependencies": { | ||
"standard": "^7.0.1", | ||
"browserify": "^13.0.0", | ||
@@ -67,4 +73,5 @@ "coveralls": "^2.11.9", | ||
"tape": "^4.5.1", | ||
"vigour-base": "^2.0.0" | ||
"vigour-base": "^3.0.0", | ||
"pre-commit": "^1.1.3" | ||
} | ||
} |
'use strict' | ||
var Module = require('module') | ||
@@ -54,9 +53,9 @@ var assert = require('assert') | ||
function exclude (options_exclude, path) { | ||
if (options_exclude) { | ||
if (_isArray(options_exclude)) { | ||
function exclude (optionsExclude, path) { | ||
if (optionsExclude) { | ||
if (_isArray(optionsExclude)) { | ||
let excludeIt = false | ||
let len = options_exclude.length | ||
let len = optionsExclude.length | ||
for (let i = 0; i < len && !excludeIt; i += 1) { | ||
if (exclude(options_exclude[i], path)) { | ||
if (exclude(optionsExclude[i], path)) { | ||
excludeIt = true | ||
@@ -68,7 +67,7 @@ } | ||
} | ||
} else if (_isFunction(options_exclude) && options_exclude(path)) { | ||
} else if (_isFunction(optionsExclude) && optionsExclude(path)) { | ||
return true | ||
} else if (_isRegExp(options_exclude) && options_exclude.test(path)) { | ||
} else if (_isRegExp(optionsExclude) && optionsExclude.test(path)) { | ||
return true | ||
} else if (_isString(options_exclude) && path.indexOf(options_exclude) !== -1) { | ||
} else if (_isString(optionsExclude) && path.indexOf(optionsExclude) !== -1) { | ||
return true | ||
@@ -75,0 +74,0 @@ } |
'use strict' | ||
const test = require('tape') | ||
const Base = require('vigour-base') | ||
const define = require('../define') | ||
var test = require('tape') | ||
var Base = require('vigour-base') | ||
var define = require('../define') | ||
test('define', function (t) { | ||
test('define', (t) => { | ||
t.plan(6) | ||
@@ -62,1 +61,32 @@ var subject = {} | ||
}) | ||
test('define - extend', (t) => { | ||
t.plan(2) | ||
var obj = {} | ||
define.call(obj, { | ||
method (number) { | ||
return number * 2 | ||
} | ||
}) | ||
define.call(obj, { | ||
extend: { | ||
method (extend, number) { | ||
return extend(number) * 10 | ||
} | ||
} | ||
}) | ||
t.equal(obj.method(100), 2000, 'extended "method"') | ||
try { | ||
define.call(obj, { | ||
extend: { method: true } | ||
}) | ||
} catch (e) { | ||
t.equal( | ||
e.message, | ||
'Expect function for extension "method"', | ||
'throws error on incorrect type' | ||
) | ||
} | ||
}) |
'use strict' | ||
const test = require('tape') | ||
const include = require('../include') | ||
var test = require('tape') | ||
var include = require('../include') | ||
test('include from object', function (t) { | ||
t.plan(1) | ||
var target = ['existing'] | ||
var thing = { w: 1, y: 'teta', existing: 'existing' } | ||
const target = ['existing'] | ||
const thing = { w: 1, y: 'teta', existing: 'existing' } | ||
include(target, thing) | ||
@@ -18,7 +15,5 @@ t.deepEqual(target, ['existing', 1, 'teta'], 'include from object') | ||
t.plan(1) | ||
var target = ['existing'] | ||
var thing = [1, 'teta', 'existing'] | ||
var teta = include(target, thing) | ||
const target = ['existing'] | ||
const thing = [1, 'teta', 'existing'] | ||
const teta = include(target, thing) // eslint-disable-line | ||
t.deepEqual(target, ['existing', 1, 'teta'], 'include from array') | ||
@@ -29,11 +24,8 @@ }) | ||
t.plan(2) | ||
var target = ['existing'] | ||
var thing = 'teta' | ||
var teta = include(target, thing) | ||
const target = ['existing'] | ||
const thing = 'teta' | ||
const teta = include(target, thing) // eslint-disable-line | ||
t.deepEqual(target, ['existing', 'teta'], 'include nonexisting item') | ||
include(target, thing) | ||
t.deepEqual(target, ['existing', 'teta'], 'include existing item') | ||
t.deepEqual(target, ['existing', 'teta'], 'include existing item') | ||
}) |
@@ -30,3 +30,3 @@ 'use strict' | ||
['"very.unusual.@.unusual.com"@example.com', false], | ||
['"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"', false] | ||
['"very.(),:;<>[]".VERY."very@\\ "very".unusual"', false] | ||
].map(function (item) { | ||
@@ -33,0 +33,0 @@ item[0] += '@vigour.io' |
'use strict' | ||
var test = require('tape') | ||
var Base = require('vigour-base') | ||
var isEmpty = require('../../is/empty') | ||
var testCases = [ | ||
const test = require('tape') | ||
const Base = require('vigour-base') | ||
const isEmpty = require('../../is/empty') | ||
const testCases = [ | ||
// ['object', expectedResult] | ||
[{}, true], | ||
[{ a: true }, false], | ||
[new Base({}), true], | ||
@@ -15,3 +16,3 @@ [new Base({ a: 'a' }), false], | ||
test('isEmpty', function (t) { | ||
test('isEmpty - base', function (t) { | ||
t.plan(testCases.length) | ||
@@ -18,0 +19,0 @@ testCases.forEach(function (item) { |
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
82555
62
1960
10