Socket
Socket
Sign inDemoInstall

101

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

101 - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

group-by.js

8

del.js

@@ -6,3 +6,5 @@ /**

var keypather = require('keypather')();
var passAny = require('./pass-any');
var isString = require('./is-string');
var isNumber = require('./is-number');
var isObject = require('./is-object');

@@ -35,3 +37,3 @@

var keys;
var numberOrString = passAny(isString, isNumber);
if (isObject(obj) && numberOrString(key)) {

@@ -55,5 +57,1 @@ // (obj, key)

}
function numberOrString (val) {
return isString(val) || typeof val === 'number';
}
{
"name": "101",
"version": "1.0.0",
"version": "1.1.0",
"description": "common javascript utils that can be required selectively that assume es5+",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -6,6 +6,6 @@ /**

var clone = require("./clone");
var assign = require('./assign');
var isString = require('./is-string');
var isNumber = require('./is-number');
var isObject = require('./is-object');
var isNumber = require('./is-number');
var keypather = require('keypather')();

@@ -24,12 +24,8 @@ /**

function put (obj, key, val) {
var putObj;
if (!arguments.length) {
throw new TypeError('Invalid number of arguments: expected at least one');
}
var setObj;
if (arguments.length === 1) {
// (putObj)
putObj = obj;
if (!isObject(putObj)) throw new TypeError('Invalid arguments: expected putObj');
// (setObj)
setObj = obj;
return function (obj) {
return assign(clone(obj), putObj); // returns new object
return putKeypaths(obj, setObj); // extends original
};

@@ -40,24 +36,34 @@ }

// (key, val)
val = arguments[1];
key = arguments[0];
putObj = {};
putObj[key] = val;
val = key;
key = obj;
setObj = {};
keypather.set(setObj, key, val);
return function (obj) {
return assign(clone(obj), putObj); // returns new object
return putKeypaths(obj, setObj); // extends original
};
}
else if (isObject(key)) {
// (obj, putObj)
putObj = key;
return assign(clone(obj), putObj);
// (obj, setObj)
setObj = key;
return putKeypaths(obj, setObj); // extends original
}
else {
throw new TypeError('Invalid arguments: expected key, val or obj, putObj');
throw new TypeError('Invalid arguments: expected string, number, or object');
}
}
else {
putObj = {};
putObj[key] = val;
return assign(clone(obj), putObj); // returns new object
setObj = {};
keypather.set(setObj, key, val);
return putKeypaths(obj, setObj); // extends original
}
}
function putKeypaths (obj, setObj) {
// copy the object
obj = clone(obj);
Object.keys(setObj).forEach(function (keypath) {
var val = setObj[keypath];
keypather.set(obj, keypath, val);
});
return obj;
}

@@ -17,3 +17,3 @@ ![101](http://i.imgur.com/MFrmMt6.png)

* Each util method is a module that can be required `require('101/<util>')`.
* Currently node/browserify is supported, I will add other module system support on request.
* Currently CommonJS (node, browserify, webpack, etc) is supported, I will add other module system support on request.
* Other libraries can be large, and require manually creating custom builds when optimizing for size.

@@ -705,2 +705,14 @@

obj; // { foo: 1, bar: 2 } (not modified)
// supports keypaths by default
var obj = {
bar: 2
};
put(obj, 'foo.qux', 100); // { foo: { qux: 100 }, bar: 2 }
put(obj, {
'foo.qux': 100
'yolo': 1
}); // { foo: { qux: 100 }, bar: 2, yolo: 1 }
obj; // { foo: 1, bar: 2 } (not modified)
```

@@ -707,0 +719,0 @@

@@ -6,2 +6,3 @@ /**

var isString = require('./is-string');
var isNumber = require('./is-number');
var isObject = require('./is-object');

@@ -31,3 +32,3 @@ var keypather = require('keypather')();

if (arguments.length === 2) {
if (isString(obj) || typeof obj === 'number') {
if (isString(obj) || isNumber(obj)) {
// (key, val)

@@ -48,3 +49,3 @@ val = key;

else {
throw new TypeError('Invalid arguments: expected str, val or val, obj');
throw new TypeError('Invalid arguments: expected string, number, or object');
}

@@ -51,0 +52,0 @@ }

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