aboutsummaryrefslogtreecommitdiff
path: root/node_modules/es5-ext/object
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/es5-ext/object')
-rw-r--r--node_modules/es5-ext/object/assign-deep.js29
-rw-r--r--node_modules/es5-ext/object/ensure-natural-number-value.js9
-rw-r--r--node_modules/es5-ext/object/ensure-natural-number.js5
-rw-r--r--node_modules/es5-ext/object/ensure-promise.js2
-rw-r--r--node_modules/es5-ext/object/index.js8
-rw-r--r--node_modules/es5-ext/object/is-promise.js8
-rw-r--r--node_modules/es5-ext/object/keys/implement.js8
-rw-r--r--node_modules/es5-ext/object/keys/index.js4
-rw-r--r--node_modules/es5-ext/object/keys/is-implemented.js4
-rw-r--r--node_modules/es5-ext/object/keys/shim.js4
10 files changed, 43 insertions, 38 deletions
diff --git a/node_modules/es5-ext/object/assign-deep.js b/node_modules/es5-ext/object/assign-deep.js
index 8034a038e..4a8597a49 100644
--- a/node_modules/es5-ext/object/assign-deep.js
+++ b/node_modules/es5-ext/object/assign-deep.js
@@ -2,31 +2,32 @@
var includes = require("../array/#/contains")
, uniq = require("../array/#/uniq")
+ , copyDeep = require("./copy-deep")
, objForEach = require("./for-each")
, isPlainObject = require("./is-plain-object")
, ensureValue = require("./valid-value");
var isArray = Array.isArray, slice = Array.prototype.slice;
-var deepAssign = function (source, target) {
- if (isPlainObject(source)) {
- if (!isPlainObject(target)) return target;
- objForEach(target, function (value, key) {
- source[key] = deepAssign(source[key], value);
- });
- return source;
+var deepAssign = function (target, source) {
+ if (target === source) return target;
+ if (isPlainObject(target) && isPlainObject(source)) {
+ objForEach(source, function (value, key) { target[key] = deepAssign(target[key], value); });
+ return target;
}
- if (isArray(source)) {
- if (!isArray(target)) return target;
- target.forEach(function (item) {
- if (!includes.call(source, item)) source.push(item);
+ if (isArray(target) && isArray(source)) {
+ source.forEach(function (item) {
+ if (includes.call(target, item)) return;
+ if (isArray(item) || isPlainObject(item)) item = copyDeep(item);
+ target.push(item);
});
- return source;
+ return target;
}
- return target;
+ if (isPlainObject(source) || isArray(source)) return copyDeep(source);
+ return source;
};
-module.exports = function (target /*, ...objects*/) {
+module.exports = function (target/*, ...objects*/) {
return uniq
.call([ensureValue(target)].concat(slice.call(arguments, 1).map(ensureValue)))
.reduce(deepAssign);
diff --git a/node_modules/es5-ext/object/ensure-natural-number-value.js b/node_modules/es5-ext/object/ensure-natural-number-value.js
index d47d5d149..1a901aa42 100644
--- a/node_modules/es5-ext/object/ensure-natural-number-value.js
+++ b/node_modules/es5-ext/object/ensure-natural-number-value.js
@@ -1,9 +1,10 @@
"use strict";
-var ensure = require("./ensure-natural-number")
- , isValue = require("./is-value");
+var isNaturalValue = require("./is-natural-number-value")
+ , toShortString = require("../to-short-string-representation");
module.exports = function (arg) {
- if (!isValue(arg)) throw new TypeError(arg + " is not a natural number");
- return ensure(arg);
+ var num = Number(arg);
+ if (!isNaturalValue(arg)) throw new TypeError(toShortString(arg) + " is not a natural number");
+ return num;
};
diff --git a/node_modules/es5-ext/object/ensure-natural-number.js b/node_modules/es5-ext/object/ensure-natural-number.js
index 5b35e4a13..ec7e51467 100644
--- a/node_modules/es5-ext/object/ensure-natural-number.js
+++ b/node_modules/es5-ext/object/ensure-natural-number.js
@@ -1,9 +1,10 @@
"use strict";
-var isNatural = require("../number/is-natural");
+var isNatural = require("../number/is-natural")
+ , toShortString = require("../to-short-string-representation");
module.exports = function (arg) {
var num = Number(arg);
- if (!isNatural(num)) throw new TypeError(arg + " is not a natural number");
+ if (!isNatural(num)) throw new TypeError(toShortString(arg) + " is not a natural number");
return num;
};
diff --git a/node_modules/es5-ext/object/ensure-promise.js b/node_modules/es5-ext/object/ensure-promise.js
index 0a1119c4e..b5b535631 100644
--- a/node_modules/es5-ext/object/ensure-promise.js
+++ b/node_modules/es5-ext/object/ensure-promise.js
@@ -4,6 +4,6 @@ var safeToString = require("../safe-to-string")
, isPromise = require("./is-promise");
module.exports = function (value) {
- if (!isPromise(value)) throw new TypeError(safeToString(value) + " is not a thenable");
+ if (!isPromise(value)) throw new TypeError(safeToString(value) + " is not a promise");
return value;
};
diff --git a/node_modules/es5-ext/object/index.js b/node_modules/es5-ext/object/index.js
index 7075be41a..ed0b7d5a6 100644
--- a/node_modules/es5-ext/object/index.js
+++ b/node_modules/es5-ext/object/index.js
@@ -12,9 +12,13 @@ module.exports = {
create: require("./create"),
ensureArray: require("./ensure-array"),
ensureFiniteNumber: require("./ensure-finite-number"),
+ ensureInteger: require("./ensure-integer"),
ensureNaturalNumber: require("./ensure-natural-number"),
ensureNaturalNumberValue: require("./ensure-natural-number-value"),
+ ensurePlainFunction: require("./ensure-plain-function"),
ensurePromise: require("./ensure-promise"),
+ ensureThenable: require("./ensure-thenable"),
+ entries: require("./entries"),
eq: require("./eq"),
every: require("./every"),
filter: require("./filter"),
@@ -31,11 +35,15 @@ module.exports = {
isCopyDeep: require("./is-copy-deep"),
isEmpty: require("./is-empty"),
isFiniteNumber: require("./is-finite-number"),
+ isInteger: require("./is-integer"),
+ isNaturalNumber: require("./is-natural-number"),
+ isNaturalNumberValue: require("./is-natural-number-value"),
isNumberValue: require("./is-number-value"),
isObject: require("./is-object"),
isPlainFunction: require("./is-plain-function"),
isPlainObject: require("./is-plain-object"),
isPromise: require("./is-promise"),
+ isThenable: require("./is-thenable"),
isValue: require("./is-value"),
keyOf: require("./key-of"),
keys: require("./keys"),
diff --git a/node_modules/es5-ext/object/is-promise.js b/node_modules/es5-ext/object/is-promise.js
index 3e5d20d16..33d6df133 100644
--- a/node_modules/es5-ext/object/is-promise.js
+++ b/node_modules/es5-ext/object/is-promise.js
@@ -1,8 +1,4 @@
"use strict";
-var isCallable = require("./is-callable")
- , isObject = require("./is-object");
-
-module.exports = function (value) {
- return isObject(value) && isCallable(value.then);
-};
+// In next major this check will also confirm on promise constructor
+module.exports = require("./is-thenable");
diff --git a/node_modules/es5-ext/object/keys/implement.js b/node_modules/es5-ext/object/keys/implement.js
index 7119a706e..72ecfbdfc 100644
--- a/node_modules/es5-ext/object/keys/implement.js
+++ b/node_modules/es5-ext/object/keys/implement.js
@@ -1,8 +1,10 @@
"use strict";
if (!require("./is-implemented")()) {
- Object.defineProperty(Object, "keys", { value: require("./shim"),
+ Object.defineProperty(Object, "keys", {
+ value: require("./shim"),
configurable: true,
-enumerable: false,
-writable: true });
+ enumerable: false,
+ writable: true
+ });
}
diff --git a/node_modules/es5-ext/object/keys/index.js b/node_modules/es5-ext/object/keys/index.js
index b56b5347c..d1942279f 100644
--- a/node_modules/es5-ext/object/keys/index.js
+++ b/node_modules/es5-ext/object/keys/index.js
@@ -1,5 +1,3 @@
"use strict";
-module.exports = require("./is-implemented")()
- ? Object.keys
- : require("./shim");
+module.exports = require("./is-implemented")() ? Object.keys : require("./shim");
diff --git a/node_modules/es5-ext/object/keys/is-implemented.js b/node_modules/es5-ext/object/keys/is-implemented.js
index 7abd33a88..2dfcf1b99 100644
--- a/node_modules/es5-ext/object/keys/is-implemented.js
+++ b/node_modules/es5-ext/object/keys/is-implemented.js
@@ -5,6 +5,6 @@ module.exports = function () {
Object.keys("primitive");
return true;
} catch (e) {
- return false;
-}
+ return false;
+ }
};
diff --git a/node_modules/es5-ext/object/keys/shim.js b/node_modules/es5-ext/object/keys/shim.js
index bc802017e..a8908d5c7 100644
--- a/node_modules/es5-ext/object/keys/shim.js
+++ b/node_modules/es5-ext/object/keys/shim.js
@@ -4,6 +4,4 @@ var isValue = require("../is-value");
var keys = Object.keys;
-module.exports = function (object) {
- return keys(isValue(object) ? Object(object) : object);
-};
+module.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };