Added Gulp.js for compiling SCSS stylesheets
This commit is contained in:
30
node_modules/es5-ext/object/_iterate.js
generated
vendored
Normal file
30
node_modules/es5-ext/object/_iterate.js
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
// Internal method, used by iteration functions.
|
||||
// Calls a function for each key-value pair found in object
|
||||
// Optionally takes compareFn to iterate object in specific order
|
||||
|
||||
"use strict";
|
||||
|
||||
var callable = require("./valid-callable")
|
||||
, value = require("./valid-value")
|
||||
, bind = Function.prototype.bind
|
||||
, call = Function.prototype.call
|
||||
, keys = Object.keys
|
||||
, objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;
|
||||
|
||||
module.exports = function (method, defVal) {
|
||||
return function (obj, cb /*, thisArg, compareFn*/) {
|
||||
var list, thisArg = arguments[2], compareFn = arguments[3];
|
||||
obj = Object(value(obj));
|
||||
callable(cb);
|
||||
|
||||
list = keys(obj);
|
||||
if (compareFn) {
|
||||
list.sort(typeof compareFn === "function" ? bind.call(compareFn, obj) : undefined);
|
||||
}
|
||||
if (typeof method !== "function") method = list[method];
|
||||
return call.call(method, list, function (key, index) {
|
||||
if (!objPropertyIsEnumerable.call(obj, key)) return defVal;
|
||||
return call.call(cb, thisArg, obj[key], key, obj, index);
|
||||
});
|
||||
};
|
||||
};
|
34
node_modules/es5-ext/object/assign-deep.js
generated
vendored
Normal file
34
node_modules/es5-ext/object/assign-deep.js
generated
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
|
||||
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 (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(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 target;
|
||||
}
|
||||
if (isPlainObject(source) || isArray(source)) return copyDeep(source);
|
||||
return source;
|
||||
};
|
||||
|
||||
module.exports = function (target /*, ...objects*/) {
|
||||
return uniq
|
||||
.call([ensureValue(target)].concat(slice.call(arguments, 1).map(ensureValue)))
|
||||
.reduce(deepAssign);
|
||||
};
|
10
node_modules/es5-ext/object/assign/implement.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/assign/implement.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
if (!require("./is-implemented")()) {
|
||||
Object.defineProperty(Object, "assign", {
|
||||
value: require("./shim"),
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true
|
||||
});
|
||||
}
|
3
node_modules/es5-ext/object/assign/index.js
generated
vendored
Normal file
3
node_modules/es5-ext/object/assign/index.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = require("./is-implemented")() ? Object.assign : require("./shim");
|
9
node_modules/es5-ext/object/assign/is-implemented.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/assign/is-implemented.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = function () {
|
||||
var assign = Object.assign, obj;
|
||||
if (typeof assign !== "function") return false;
|
||||
obj = { foo: "raz" };
|
||||
assign(obj, { bar: "dwa" }, { trzy: "trzy" });
|
||||
return obj.foo + obj.bar + obj.trzy === "razdwatrzy";
|
||||
};
|
23
node_modules/es5-ext/object/assign/shim.js
generated
vendored
Normal file
23
node_modules/es5-ext/object/assign/shim.js
generated
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
|
||||
var keys = require("../keys")
|
||||
, value = require("../valid-value")
|
||||
, max = Math.max;
|
||||
|
||||
module.exports = function (dest, src /*, …srcn*/) {
|
||||
var error, i, length = max(arguments.length, 2), assign;
|
||||
dest = Object(value(dest));
|
||||
assign = function (key) {
|
||||
try {
|
||||
dest[key] = src[key];
|
||||
} catch (e) {
|
||||
if (!error) error = e;
|
||||
}
|
||||
};
|
||||
for (i = 1; i < length; ++i) {
|
||||
src = arguments[i];
|
||||
keys(src).forEach(assign);
|
||||
}
|
||||
if (error !== undefined) throw error;
|
||||
return dest;
|
||||
};
|
16
node_modules/es5-ext/object/clear.js
generated
vendored
Normal file
16
node_modules/es5-ext/object/clear.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
var keys = require("./keys");
|
||||
|
||||
module.exports = function (obj) {
|
||||
var error;
|
||||
keys(obj).forEach(function (key) {
|
||||
try {
|
||||
delete this[key];
|
||||
} catch (e) {
|
||||
if (!error) error = e;
|
||||
}
|
||||
}, obj);
|
||||
if (error !== undefined) throw error;
|
||||
return obj;
|
||||
};
|
8
node_modules/es5-ext/object/compact.js
generated
vendored
Normal file
8
node_modules/es5-ext/object/compact.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
var filter = require("./filter")
|
||||
, isValue = require("./is-value");
|
||||
|
||||
module.exports = function (obj) {
|
||||
return filter(obj, function (val) { return isValue(val); });
|
||||
};
|
39
node_modules/es5-ext/object/compare.js
generated
vendored
Normal file
39
node_modules/es5-ext/object/compare.js
generated
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
|
||||
var strCompare = require("../string/#/case-insensitive-compare")
|
||||
, isObject = require("./is-object")
|
||||
, isValue = require("./is-value")
|
||||
, numIsNaN = require("../number/is-nan")
|
||||
, resolve
|
||||
, typeMap;
|
||||
|
||||
typeMap = { undefined: 0, object: 1, boolean: 2, string: 3, number: 4 };
|
||||
|
||||
resolve = function (a) {
|
||||
if (isObject(a)) {
|
||||
if (typeof a.valueOf !== "function") return NaN;
|
||||
a = a.valueOf();
|
||||
if (isObject(a)) {
|
||||
if (typeof a.toString !== "function") return NaN;
|
||||
a = a.toString();
|
||||
if (typeof a !== "string") return NaN;
|
||||
}
|
||||
}
|
||||
return a;
|
||||
};
|
||||
|
||||
module.exports = function (val1, val2) {
|
||||
if (val1 === val2) return 0; // Same
|
||||
|
||||
val1 = resolve(val1);
|
||||
val2 = resolve(val2);
|
||||
// eslint-disable-next-line eqeqeq
|
||||
if (val1 == val2) return typeMap[typeof val1] - typeMap[typeof val2];
|
||||
if (!isValue(val1)) return -1;
|
||||
if (!isValue(val2)) return 1;
|
||||
if (typeof val1 === "string" || typeof val2 === "string") {
|
||||
return strCompare.call(val1, val2);
|
||||
}
|
||||
if (numIsNaN(val1) && numIsNaN(val2)) return 0; // Jslint: ignore
|
||||
return Number(val1) - Number(val2);
|
||||
};
|
35
node_modules/es5-ext/object/copy-deep.js
generated
vendored
Normal file
35
node_modules/es5-ext/object/copy-deep.js
generated
vendored
Normal file
@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
|
||||
var forEach = require("./for-each")
|
||||
, isPlainObject = require("./is-plain-object")
|
||||
, ensureValue = require("./valid-value")
|
||||
, isArray = Array.isArray;
|
||||
|
||||
var copyValue = function (value, ancestors, ancestorsCopy) {
|
||||
var mode;
|
||||
if (isPlainObject(value)) mode = "object";
|
||||
else if (isArray(value)) mode = "array";
|
||||
if (!mode) return value;
|
||||
|
||||
var copy = ancestorsCopy[ancestors.indexOf(value)];
|
||||
if (copy) return copy;
|
||||
copy = mode === "object" ? {} : [];
|
||||
|
||||
ancestors.push(value);
|
||||
ancestorsCopy.push(copy);
|
||||
if (mode === "object") {
|
||||
forEach(value, function (item, key) {
|
||||
copy[key] = copyValue(item, ancestors, ancestorsCopy);
|
||||
});
|
||||
} else {
|
||||
value.forEach(function (item, index) {
|
||||
copy[index] = copyValue(item, ancestors, ancestorsCopy);
|
||||
});
|
||||
}
|
||||
ancestors.pop();
|
||||
ancestorsCopy.pop();
|
||||
|
||||
return copy;
|
||||
};
|
||||
|
||||
module.exports = function (source) { return copyValue(ensureValue(source), [], []); };
|
19
node_modules/es5-ext/object/copy.js
generated
vendored
Normal file
19
node_modules/es5-ext/object/copy.js
generated
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
|
||||
var aFrom = require("../array/from")
|
||||
, assign = require("./assign")
|
||||
, value = require("./valid-value");
|
||||
|
||||
module.exports = function (obj /*, propertyNames, options*/) {
|
||||
var copy = Object(value(obj)), propertyNames = arguments[1], options = Object(arguments[2]);
|
||||
if (copy !== obj && !propertyNames) return copy;
|
||||
var result = {};
|
||||
if (propertyNames) {
|
||||
aFrom(propertyNames, function (propertyName) {
|
||||
if (options.ensure || propertyName in obj) result[propertyName] = obj[propertyName];
|
||||
});
|
||||
} else {
|
||||
assign(result, obj);
|
||||
}
|
||||
return result;
|
||||
};
|
5
node_modules/es5-ext/object/count.js
generated
vendored
Normal file
5
node_modules/es5-ext/object/count.js
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var keys = require("./keys");
|
||||
|
||||
module.exports = function (obj) { return keys(obj).length; };
|
43
node_modules/es5-ext/object/create.js
generated
vendored
Normal file
43
node_modules/es5-ext/object/create.js
generated
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
// Workaround for http://code.google.com/p/v8/issues/detail?id=2804
|
||||
|
||||
"use strict";
|
||||
|
||||
var create = Object.create, shim;
|
||||
|
||||
if (!require("./set-prototype-of/is-implemented")()) {
|
||||
shim = require("./set-prototype-of/shim");
|
||||
}
|
||||
|
||||
module.exports = (function () {
|
||||
var nullObject, polyProps, desc;
|
||||
if (!shim) return create;
|
||||
if (shim.level !== 1) return create;
|
||||
|
||||
nullObject = {};
|
||||
polyProps = {};
|
||||
desc = { configurable: false, enumerable: false, writable: true, value: undefined };
|
||||
Object.getOwnPropertyNames(Object.prototype).forEach(function (name) {
|
||||
if (name === "__proto__") {
|
||||
polyProps[name] = {
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
value: undefined
|
||||
};
|
||||
return;
|
||||
}
|
||||
polyProps[name] = desc;
|
||||
});
|
||||
Object.defineProperties(nullObject, polyProps);
|
||||
|
||||
Object.defineProperty(shim, "nullPolyfill", {
|
||||
configurable: false,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
value: nullObject
|
||||
});
|
||||
|
||||
return function (prototype, props) {
|
||||
return create(prototype === null ? nullObject : prototype, props);
|
||||
};
|
||||
})();
|
9
node_modules/es5-ext/object/ensure-array.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/ensure-array.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
var toShortString = require("../to-short-string-representation")
|
||||
, isArray = require("./is-array-like");
|
||||
|
||||
module.exports = function (value) {
|
||||
if (isArray(value)) return value;
|
||||
throw new TypeError(toShortString(value) + " is not a array");
|
||||
};
|
9
node_modules/es5-ext/object/ensure-finite-number.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/ensure-finite-number.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
var isFiniteNumber = require("./is-finite-number")
|
||||
, safeToString = require("../safe-to-string");
|
||||
|
||||
module.exports = function (value) {
|
||||
if (isFiniteNumber(value)) return Number(value);
|
||||
throw new TypeError(safeToString(value) + " does not represent a finite number value");
|
||||
};
|
9
node_modules/es5-ext/object/ensure-integer.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/ensure-integer.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
var toShortString = require("../to-short-string-representation")
|
||||
, isInteger = require("./is-integer");
|
||||
|
||||
module.exports = function (num) {
|
||||
if (!isInteger(num)) throw new TypeError(toShortString(num) + " is not a integer");
|
||||
return Number(num);
|
||||
};
|
10
node_modules/es5-ext/object/ensure-natural-number-value.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/ensure-natural-number-value.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
var isNaturalValue = require("./is-natural-number-value")
|
||||
, toShortString = require("../to-short-string-representation");
|
||||
|
||||
module.exports = function (arg) {
|
||||
var num = Number(arg);
|
||||
if (!isNaturalValue(arg)) throw new TypeError(toShortString(arg) + " is not a natural number");
|
||||
return num;
|
||||
};
|
10
node_modules/es5-ext/object/ensure-natural-number.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/ensure-natural-number.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
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(toShortString(arg) + " is not a natural number");
|
||||
return num;
|
||||
};
|
11
node_modules/es5-ext/object/ensure-plain-function.js
generated
vendored
Normal file
11
node_modules/es5-ext/object/ensure-plain-function.js
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
var safeToString = require("../safe-to-string")
|
||||
, isPlainFunction = require("./is-plain-function");
|
||||
|
||||
module.exports = function (value) {
|
||||
if (!isPlainFunction(value)) {
|
||||
throw new TypeError(safeToString(value) + " is not a plain function");
|
||||
}
|
||||
return value;
|
||||
};
|
9
node_modules/es5-ext/object/ensure-plain-object.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/ensure-plain-object.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
var safeToString = require("../safe-to-string")
|
||||
, isPlainObject = require("./is-plain-object");
|
||||
|
||||
module.exports = function (value) {
|
||||
if (!isPlainObject(value)) throw new TypeError(safeToString(value) + " is not a plain object");
|
||||
return value;
|
||||
};
|
9
node_modules/es5-ext/object/ensure-promise.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/ensure-promise.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
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 promise");
|
||||
return value;
|
||||
};
|
9
node_modules/es5-ext/object/ensure-thenable.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/ensure-thenable.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
var safeToString = require("../safe-to-string")
|
||||
, isThenable = require("./is-thenable");
|
||||
|
||||
module.exports = function (value) {
|
||||
if (!isThenable(value)) throw new TypeError(safeToString(value) + " is not a thenable");
|
||||
return value;
|
||||
};
|
10
node_modules/es5-ext/object/entries/implement.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/entries/implement.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
if (!require("./is-implemented")()) {
|
||||
Object.defineProperty(Object, "entries", {
|
||||
value: require("./shim"),
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true
|
||||
});
|
||||
}
|
3
node_modules/es5-ext/object/entries/index.js
generated
vendored
Normal file
3
node_modules/es5-ext/object/entries/index.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = require("./is-implemented")() ? Object.entries : require("./shim");
|
6
node_modules/es5-ext/object/entries/is-implemented.js
generated
vendored
Normal file
6
node_modules/es5-ext/object/entries/is-implemented.js
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = function () {
|
||||
try { return Object.entries({ foo: 12 })[0][0] === "foo"; }
|
||||
catch (e) { return false; }
|
||||
};
|
14
node_modules/es5-ext/object/entries/shim.js
generated
vendored
Normal file
14
node_modules/es5-ext/object/entries/shim.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
var ensureValue = require("../valid-value");
|
||||
|
||||
module.exports = function (object) {
|
||||
ensureValue(object);
|
||||
var result = [];
|
||||
object = Object(object);
|
||||
for (var key in object) {
|
||||
if (!propertyIsEnumerable.call(object, key)) continue;
|
||||
result.push([key, object[key]]);
|
||||
}
|
||||
return result;
|
||||
};
|
7
node_modules/es5-ext/object/eq.js
generated
vendored
Normal file
7
node_modules/es5-ext/object/eq.js
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
var numIsNaN = require("../number/is-nan");
|
||||
|
||||
module.exports = function (val1, val2) {
|
||||
return val1 === val2 || (numIsNaN(val1) && numIsNaN(val2));
|
||||
};
|
3
node_modules/es5-ext/object/every.js
generated
vendored
Normal file
3
node_modules/es5-ext/object/every.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = require("./_iterate")("every", true);
|
14
node_modules/es5-ext/object/filter.js
generated
vendored
Normal file
14
node_modules/es5-ext/object/filter.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
var callable = require("./valid-callable")
|
||||
, forEach = require("./for-each")
|
||||
, call = Function.prototype.call;
|
||||
|
||||
module.exports = function (obj, cb /*, thisArg*/) {
|
||||
var result = {}, thisArg = arguments[2];
|
||||
callable(cb);
|
||||
forEach(obj, function (value, key, targetObj, index) {
|
||||
if (call.call(cb, thisArg, value, key, targetObj, index)) result[key] = targetObj[key];
|
||||
});
|
||||
return result;
|
||||
};
|
3
node_modules/es5-ext/object/find-key.js
generated
vendored
Normal file
3
node_modules/es5-ext/object/find-key.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = require("./_iterate")(require("../array/#/find"), false);
|
10
node_modules/es5-ext/object/find.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/find.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
var findKey = require("./find-key")
|
||||
, isValue = require("./is-value");
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
module.exports = function (obj, cb /*, thisArg, compareFn*/) {
|
||||
var key = findKey.apply(this, arguments);
|
||||
return isValue(key) ? obj[key] : key;
|
||||
};
|
13
node_modules/es5-ext/object/first-key.js
generated
vendored
Normal file
13
node_modules/es5-ext/object/first-key.js
generated
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
var value = require("./valid-value")
|
||||
, objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;
|
||||
|
||||
module.exports = function (obj) {
|
||||
var i;
|
||||
value(obj);
|
||||
for (i in obj) {
|
||||
if (objPropertyIsEnumerable.call(obj, i)) return i;
|
||||
}
|
||||
return null;
|
||||
};
|
16
node_modules/es5-ext/object/flatten.js
generated
vendored
Normal file
16
node_modules/es5-ext/object/flatten.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
var isPlainObject = require("./is-plain-object")
|
||||
, forEach = require("./for-each")
|
||||
, process;
|
||||
|
||||
process = function self(value, key) {
|
||||
if (isPlainObject(value)) forEach(value, self, this);
|
||||
else this[key] = value;
|
||||
};
|
||||
|
||||
module.exports = function (obj) {
|
||||
var flattened = {};
|
||||
forEach(obj, process, flattened);
|
||||
return flattened;
|
||||
};
|
3
node_modules/es5-ext/object/for-each.js
generated
vendored
Normal file
3
node_modules/es5-ext/object/for-each.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = require("./_iterate")("forEach");
|
17
node_modules/es5-ext/object/get-property-names.js
generated
vendored
Normal file
17
node_modules/es5-ext/object/get-property-names.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
var uniq = require("../array/#/uniq")
|
||||
, value = require("./valid-value")
|
||||
, push = Array.prototype.push
|
||||
, getOwnPropertyNames = Object.getOwnPropertyNames
|
||||
, getPrototypeOf = Object.getPrototypeOf;
|
||||
|
||||
module.exports = function (obj) {
|
||||
var keys;
|
||||
obj = Object(value(obj));
|
||||
keys = getOwnPropertyNames(obj);
|
||||
while ((obj = getPrototypeOf(obj))) {
|
||||
push.apply(keys, getOwnPropertyNames(obj));
|
||||
}
|
||||
return uniq.call(keys);
|
||||
};
|
70
node_modules/es5-ext/object/index.js
generated
vendored
Normal file
70
node_modules/es5-ext/object/index.js
generated
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
assign: require("./assign"),
|
||||
assignDeep: require("./assign-deep"),
|
||||
clear: require("./clear"),
|
||||
compact: require("./compact"),
|
||||
compare: require("./compare"),
|
||||
copy: require("./copy"),
|
||||
copyDeep: require("./copy-deep"),
|
||||
count: require("./count"),
|
||||
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"),
|
||||
ensurePlainObject: require("./ensure-plain-object"),
|
||||
ensurePromise: require("./ensure-promise"),
|
||||
ensureThenable: require("./ensure-thenable"),
|
||||
entries: require("./entries"),
|
||||
eq: require("./eq"),
|
||||
every: require("./every"),
|
||||
filter: require("./filter"),
|
||||
find: require("./find"),
|
||||
findKey: require("./find-key"),
|
||||
firstKey: require("./first-key"),
|
||||
flatten: require("./flatten"),
|
||||
forEach: require("./for-each"),
|
||||
getPropertyNames: require("./get-property-names"),
|
||||
is: require("./is"),
|
||||
isArrayLike: require("./is-array-like"),
|
||||
isCallable: require("./is-callable"),
|
||||
isCopy: require("./is-copy"),
|
||||
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"),
|
||||
map: require("./map"),
|
||||
mapKeys: require("./map-keys"),
|
||||
normalizeOptions: require("./normalize-options"),
|
||||
mixin: require("./mixin"),
|
||||
mixinPrototypes: require("./mixin-prototypes"),
|
||||
primitiveSet: require("./primitive-set"),
|
||||
safeTraverse: require("./safe-traverse"),
|
||||
serialize: require("./serialize"),
|
||||
setPrototypeOf: require("./set-prototype-of"),
|
||||
some: require("./some"),
|
||||
toArray: require("./to-array"),
|
||||
unserialize: require("./unserialize"),
|
||||
validateArrayLike: require("./validate-array-like"),
|
||||
validateArrayLikeObject: require("./validate-array-like-object"),
|
||||
validCallable: require("./valid-callable"),
|
||||
validObject: require("./valid-object"),
|
||||
validateStringifiable: require("./validate-stringifiable"),
|
||||
validateStringifiableValue: require("./validate-stringifiable-value"),
|
||||
validValue: require("./valid-value")
|
||||
};
|
17
node_modules/es5-ext/object/is-array-like.js
generated
vendored
Normal file
17
node_modules/es5-ext/object/is-array-like.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
var isFunction = require("../function/is-function")
|
||||
, isObject = require("./is-object")
|
||||
, isValue = require("./is-value");
|
||||
|
||||
module.exports = function (value) {
|
||||
return (
|
||||
(isValue(value) &&
|
||||
typeof value.length === "number" &&
|
||||
// Just checking ((typeof x === 'object') && (typeof x !== 'function'))
|
||||
// won't work right for some cases, e.g.:
|
||||
// type of instance of NodeList in Safari is a 'function'
|
||||
((isObject(value) && !isFunction(value)) || typeof value === "string")) ||
|
||||
false
|
||||
);
|
||||
};
|
5
node_modules/es5-ext/object/is-callable.js
generated
vendored
Normal file
5
node_modules/es5-ext/object/is-callable.js
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
// Deprecated
|
||||
|
||||
"use strict";
|
||||
|
||||
module.exports = function (obj) { return typeof obj === "function"; };
|
59
node_modules/es5-ext/object/is-copy-deep.js
generated
vendored
Normal file
59
node_modules/es5-ext/object/is-copy-deep.js
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
"use strict";
|
||||
|
||||
var eq = require("./eq")
|
||||
, isPlainObject = require("./is-plain-object")
|
||||
, value = require("./valid-value");
|
||||
|
||||
var isArray = Array.isArray
|
||||
, keys = Object.keys
|
||||
, objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable
|
||||
, objHasOwnProperty = Object.prototype.hasOwnProperty
|
||||
, eqArr
|
||||
, eqVal
|
||||
, eqObj;
|
||||
|
||||
eqArr = function (arr1, arr2, recMap) {
|
||||
var i, length = arr1.length;
|
||||
if (length !== arr2.length) return false;
|
||||
for (i = 0; i < length; ++i) {
|
||||
if (objHasOwnProperty.call(arr1, i) !== objHasOwnProperty.call(arr2, i)) return false;
|
||||
if (!eqVal(arr1[i], arr2[i], recMap)) return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
eqObj = function (obj1, obj2, recMap) {
|
||||
var k1 = keys(obj1), k2 = keys(obj2);
|
||||
if (k1.length !== k2.length) return false;
|
||||
return k1.every(function (key) {
|
||||
if (!objPropertyIsEnumerable.call(obj2, key)) return false;
|
||||
return eqVal(obj1[key], obj2[key], recMap);
|
||||
});
|
||||
};
|
||||
|
||||
eqVal = function (val1, val2, recMap) {
|
||||
var i, eqX, c1, c2;
|
||||
if (eq(val1, val2)) return true;
|
||||
if (isPlainObject(val1)) {
|
||||
if (!isPlainObject(val2)) return false;
|
||||
eqX = eqObj;
|
||||
} else if (isArray(val1) && isArray(val2)) {
|
||||
eqX = eqArr;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
c1 = recMap[0];
|
||||
c2 = recMap[1];
|
||||
i = c1.indexOf(val1);
|
||||
if (i === -1) {
|
||||
i = c1.push(val1) - 1;
|
||||
c2[i] = [];
|
||||
} else if (c2[i].indexOf(val2) !== -1) return true;
|
||||
c2[i].push(val2);
|
||||
return eqX(val1, val2, recMap);
|
||||
};
|
||||
|
||||
module.exports = function (val1, val2) {
|
||||
if (eq(value(val1), value(val2))) return true;
|
||||
return eqVal(Object(val1), Object(val2), [[], []]);
|
||||
};
|
23
node_modules/es5-ext/object/is-copy.js
generated
vendored
Normal file
23
node_modules/es5-ext/object/is-copy.js
generated
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
|
||||
var eq = require("./eq")
|
||||
, value = require("./valid-value")
|
||||
, keys = Object.keys
|
||||
, objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;
|
||||
|
||||
module.exports = function (val1, val2) {
|
||||
var k1, k2;
|
||||
|
||||
if (eq(value(val1), value(val2))) return true;
|
||||
|
||||
val1 = Object(val1);
|
||||
val2 = Object(val2);
|
||||
|
||||
k1 = keys(val1);
|
||||
k2 = keys(val2);
|
||||
if (k1.length !== k2.length) return false;
|
||||
return k1.every(function (key) {
|
||||
if (!objPropertyIsEnumerable.call(val2, key)) return false;
|
||||
return eq(val1[key], val2[key]);
|
||||
});
|
||||
};
|
14
node_modules/es5-ext/object/is-empty.js
generated
vendored
Normal file
14
node_modules/es5-ext/object/is-empty.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
var value = require("./valid-value")
|
||||
, objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;
|
||||
|
||||
module.exports = function (obj) {
|
||||
var i;
|
||||
value(obj);
|
||||
for (i in obj) {
|
||||
// Jslint: ignore
|
||||
if (objPropertyIsEnumerable.call(obj, i)) return false;
|
||||
}
|
||||
return true;
|
||||
};
|
5
node_modules/es5-ext/object/is-finite-number.js
generated
vendored
Normal file
5
node_modules/es5-ext/object/is-finite-number.js
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var isNumber = require("./is-number-value");
|
||||
|
||||
module.exports = function (value) { return isNumber(value) && isFinite(value); };
|
10
node_modules/es5-ext/object/is-integer.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/is-integer.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
var isInteger = require("../number/is-integer")
|
||||
, isValue = require("./is-value");
|
||||
|
||||
module.exports = function (arg) {
|
||||
if (!isValue(arg)) return false;
|
||||
arg = Number(arg);
|
||||
return isInteger(arg);
|
||||
};
|
9
node_modules/es5-ext/object/is-natural-number-value.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/is-natural-number-value.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
var isNaturalNumber = require("./is-natural-number")
|
||||
, isValue = require("./is-value");
|
||||
|
||||
module.exports = function (arg) {
|
||||
if (!isValue(arg)) return false;
|
||||
return isNaturalNumber(arg);
|
||||
};
|
5
node_modules/es5-ext/object/is-natural-number.js
generated
vendored
Normal file
5
node_modules/es5-ext/object/is-natural-number.js
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var isNatural = require("../number/is-natural");
|
||||
|
||||
module.exports = function (arg) { return isNatural(Number(arg)); };
|
9
node_modules/es5-ext/object/is-number-value.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/is-number-value.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
var isValue = require("./is-value");
|
||||
|
||||
module.exports = function (value) {
|
||||
if (!isValue(value)) return false;
|
||||
try { return !isNaN(value); }
|
||||
catch (e) { return false; }
|
||||
};
|
7
node_modules/es5-ext/object/is-object.js
generated
vendored
Normal file
7
node_modules/es5-ext/object/is-object.js
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
var isValue = require("./is-value");
|
||||
|
||||
var map = { function: true, object: true };
|
||||
|
||||
module.exports = function (value) { return (isValue(value) && map[typeof value]) || false; };
|
11
node_modules/es5-ext/object/is-plain-function.js
generated
vendored
Normal file
11
node_modules/es5-ext/object/is-plain-function.js
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
var isClassStr = RegExp.prototype.test.bind(/^\s*class[\s{/}]/)
|
||||
, fnToString = Function.prototype.toString;
|
||||
|
||||
module.exports = function (fn) {
|
||||
if (typeof fn !== "function") return false;
|
||||
if (typeof fn.call !== "function") return false;
|
||||
if (typeof fn.apply !== "function") return false;
|
||||
return !isClassStr(fnToString.call(fn));
|
||||
};
|
20
node_modules/es5-ext/object/is-plain-object.js
generated
vendored
Normal file
20
node_modules/es5-ext/object/is-plain-object.js
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
"use strict";
|
||||
|
||||
var getPrototypeOf = Object.getPrototypeOf
|
||||
, prototype = Object.prototype
|
||||
, objToString = prototype.toString
|
||||
, id = Object().toString();
|
||||
|
||||
module.exports = function (value) {
|
||||
var proto, valueConstructor;
|
||||
if (!value || typeof value !== "object" || objToString.call(value) !== id) {
|
||||
return false;
|
||||
}
|
||||
proto = getPrototypeOf(value);
|
||||
if (proto === null) {
|
||||
valueConstructor = value.constructor;
|
||||
if (typeof valueConstructor !== "function") return true;
|
||||
return valueConstructor.prototype !== value;
|
||||
}
|
||||
return proto === prototype || getPrototypeOf(proto) === null;
|
||||
};
|
4
node_modules/es5-ext/object/is-promise.js
generated
vendored
Normal file
4
node_modules/es5-ext/object/is-promise.js
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
"use strict";
|
||||
|
||||
// In next major this check will also confirm on promise constructor
|
||||
module.exports = require("./is-thenable");
|
6
node_modules/es5-ext/object/is-thenable.js
generated
vendored
Normal file
6
node_modules/es5-ext/object/is-thenable.js
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
var isCallable = require("./is-callable")
|
||||
, isObject = require("./is-object");
|
||||
|
||||
module.exports = function (value) { return isObject(value) && isCallable(value.then); };
|
5
node_modules/es5-ext/object/is-value.js
generated
vendored
Normal file
5
node_modules/es5-ext/object/is-value.js
generated
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
var _undefined = require("../function/noop")(); // Support ES3 engines
|
||||
|
||||
module.exports = function (val) { return val !== _undefined && val !== null; };
|
10
node_modules/es5-ext/object/is.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/is.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
// Implementation credits go to:
|
||||
// http://wiki.ecmascript.org/doku.php?id=harmony:egal
|
||||
|
||||
"use strict";
|
||||
|
||||
var numIsNaN = require("../number/is-nan");
|
||||
|
||||
module.exports = function (val1, val2) {
|
||||
return val1 === val2 ? val1 !== 0 || 1 / val1 === 1 / val2 : numIsNaN(val1) && numIsNaN(val2);
|
||||
};
|
17
node_modules/es5-ext/object/key-of.js
generated
vendored
Normal file
17
node_modules/es5-ext/object/key-of.js
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
|
||||
var eq = require("./eq")
|
||||
, some = require("./some");
|
||||
|
||||
module.exports = function (obj, searchValue) {
|
||||
var result;
|
||||
return some(obj, function (value, name) {
|
||||
if (eq(value, searchValue)) {
|
||||
result = name;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
})
|
||||
? result
|
||||
: null;
|
||||
};
|
10
node_modules/es5-ext/object/keys/implement.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/keys/implement.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
if (!require("./is-implemented")()) {
|
||||
Object.defineProperty(Object, "keys", {
|
||||
value: require("./shim"),
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true
|
||||
});
|
||||
}
|
3
node_modules/es5-ext/object/keys/index.js
generated
vendored
Normal file
3
node_modules/es5-ext/object/keys/index.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = require("./is-implemented")() ? Object.keys : require("./shim");
|
10
node_modules/es5-ext/object/keys/is-implemented.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/keys/is-implemented.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = function () {
|
||||
try {
|
||||
Object.keys("primitive");
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
};
|
7
node_modules/es5-ext/object/keys/shim.js
generated
vendored
Normal file
7
node_modules/es5-ext/object/keys/shim.js
generated
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
var isValue = require("../is-value");
|
||||
|
||||
var keys = Object.keys;
|
||||
|
||||
module.exports = function (object) { return keys(isValue(object) ? Object(object) : object); };
|
18
node_modules/es5-ext/object/map-keys.js
generated
vendored
Normal file
18
node_modules/es5-ext/object/map-keys.js
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
var callable = require("./valid-callable")
|
||||
, forEach = require("./for-each")
|
||||
, call = Function.prototype.call;
|
||||
|
||||
module.exports = function (obj, cb /*, thisArg*/) {
|
||||
var result = {}, thisArg = arguments[2];
|
||||
callable(cb);
|
||||
forEach(
|
||||
obj,
|
||||
function (value, key, targetObj, index) {
|
||||
result[call.call(cb, thisArg, key, value, this, index)] = value;
|
||||
},
|
||||
obj
|
||||
);
|
||||
return result;
|
||||
};
|
14
node_modules/es5-ext/object/map.js
generated
vendored
Normal file
14
node_modules/es5-ext/object/map.js
generated
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
var callable = require("./valid-callable")
|
||||
, forEach = require("./for-each")
|
||||
, call = Function.prototype.call;
|
||||
|
||||
module.exports = function (obj, cb /*, thisArg*/) {
|
||||
var result = {}, thisArg = arguments[2];
|
||||
callable(cb);
|
||||
forEach(obj, function (value, key, targetObj, index) {
|
||||
result[key] = call.call(cb, thisArg, value, key, targetObj, index);
|
||||
});
|
||||
return result;
|
||||
};
|
25
node_modules/es5-ext/object/mixin-prototypes.js
generated
vendored
Normal file
25
node_modules/es5-ext/object/mixin-prototypes.js
generated
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
|
||||
var value = require("./valid-value")
|
||||
, mixin = require("./mixin");
|
||||
|
||||
var getPrototypeOf = Object.getPrototypeOf;
|
||||
|
||||
module.exports = function (target, source) {
|
||||
target = Object(value(target));
|
||||
source = Object(value(source));
|
||||
if (target === source) return target;
|
||||
|
||||
var sources = [];
|
||||
while (source && !isPrototypeOf.call(source, target)) {
|
||||
sources.unshift(source);
|
||||
source = getPrototypeOf(source);
|
||||
}
|
||||
|
||||
var error;
|
||||
sources.forEach(function (sourceProto) {
|
||||
try { mixin(target, sourceProto); } catch (mixinError) { error = mixinError; }
|
||||
});
|
||||
if (error) throw error;
|
||||
return target;
|
||||
};
|
26
node_modules/es5-ext/object/mixin.js
generated
vendored
Normal file
26
node_modules/es5-ext/object/mixin.js
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
|
||||
var value = require("./valid-value")
|
||||
, defineProperty = Object.defineProperty
|
||||
, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor
|
||||
, getOwnPropertyNames = Object.getOwnPropertyNames
|
||||
, getOwnPropertySymbols = Object.getOwnPropertySymbols;
|
||||
|
||||
module.exports = function (target, source) {
|
||||
var error, sourceObject = Object(value(source));
|
||||
target = Object(value(target));
|
||||
getOwnPropertyNames(sourceObject).forEach(function (name) {
|
||||
try {
|
||||
defineProperty(target, name, getOwnPropertyDescriptor(source, name));
|
||||
} catch (e) { error = e; }
|
||||
});
|
||||
if (typeof getOwnPropertySymbols === "function") {
|
||||
getOwnPropertySymbols(sourceObject).forEach(function (symbol) {
|
||||
try {
|
||||
defineProperty(target, symbol, getOwnPropertyDescriptor(source, symbol));
|
||||
} catch (e) { error = e; }
|
||||
});
|
||||
}
|
||||
if (error !== undefined) throw error;
|
||||
return target;
|
||||
};
|
20
node_modules/es5-ext/object/normalize-options.js
generated
vendored
Normal file
20
node_modules/es5-ext/object/normalize-options.js
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
"use strict";
|
||||
|
||||
var isValue = require("./is-value");
|
||||
|
||||
var forEach = Array.prototype.forEach, create = Object.create;
|
||||
|
||||
var process = function (src, obj) {
|
||||
var key;
|
||||
for (key in src) obj[key] = src[key];
|
||||
};
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
module.exports = function (opts1 /*, …options*/) {
|
||||
var result = create(null);
|
||||
forEach.call(arguments, function (options) {
|
||||
if (!isValue(options)) return;
|
||||
process(Object(options), result);
|
||||
});
|
||||
return result;
|
||||
};
|
10
node_modules/es5-ext/object/primitive-set.js
generated
vendored
Normal file
10
node_modules/es5-ext/object/primitive-set.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
"use strict";
|
||||
|
||||
var forEach = Array.prototype.forEach, create = Object.create;
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
module.exports = function (arg /*, …args*/) {
|
||||
var set = create(null);
|
||||
forEach.call(arguments, function (name) { set[name] = true; });
|
||||
return set;
|
||||
};
|
16
node_modules/es5-ext/object/safe-traverse.js
generated
vendored
Normal file
16
node_modules/es5-ext/object/safe-traverse.js
generated
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
|
||||
var value = require("./valid-value")
|
||||
, isValue = require("./is-value");
|
||||
|
||||
module.exports = function (obj /*, …names*/) {
|
||||
var length, current = 1;
|
||||
value(obj);
|
||||
length = arguments.length - 1;
|
||||
if (!length) return obj;
|
||||
while (current < length) {
|
||||
obj = obj[arguments[current++]];
|
||||
if (!isValue(obj)) return undefined;
|
||||
}
|
||||
return obj[arguments[current]];
|
||||
};
|
41
node_modules/es5-ext/object/serialize.js
generated
vendored
Normal file
41
node_modules/es5-ext/object/serialize.js
generated
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
"use strict";
|
||||
|
||||
var toArray = require("./to-array")
|
||||
, isDate = require("../date/is-date")
|
||||
, isValue = require("../object/is-value")
|
||||
, isRegExp = require("../reg-exp/is-reg-exp");
|
||||
|
||||
var isArray = Array.isArray
|
||||
, stringify = JSON.stringify
|
||||
, objHasOwnProperty = Object.prototype.hasOwnProperty;
|
||||
var keyValueToString = function (value, key) {
|
||||
return stringify(key) + ":" + module.exports(value);
|
||||
};
|
||||
|
||||
var sparseMap = function (arr) {
|
||||
var i, length = arr.length, result = new Array(length);
|
||||
for (i = 0; i < length; ++i) {
|
||||
if (!objHasOwnProperty.call(arr, i)) continue;
|
||||
result[i] = module.exports(arr[i]);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
module.exports = function (obj) {
|
||||
if (!isValue(obj)) return String(obj);
|
||||
switch (typeof obj) {
|
||||
case "string":
|
||||
return stringify(obj);
|
||||
case "number":
|
||||
case "boolean":
|
||||
case "function":
|
||||
return String(obj);
|
||||
case "object":
|
||||
if (isArray(obj)) return "[" + sparseMap(obj) + "]";
|
||||
if (isRegExp(obj)) return String(obj);
|
||||
if (isDate(obj)) return "new Date(" + obj.valueOf() + ")";
|
||||
return "{" + toArray(obj, keyValueToString) + "}";
|
||||
default:
|
||||
throw new TypeError("Serialization of " + String(obj) + "is unsupported");
|
||||
}
|
||||
};
|
12
node_modules/es5-ext/object/set-prototype-of/implement.js
generated
vendored
Normal file
12
node_modules/es5-ext/object/set-prototype-of/implement.js
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
var shim;
|
||||
|
||||
if (!require("./is-implemented")() && (shim = require("./shim"))) {
|
||||
Object.defineProperty(Object, "setPrototypeOf", {
|
||||
value: shim,
|
||||
configurable: true,
|
||||
enumerable: false,
|
||||
writable: true
|
||||
});
|
||||
}
|
3
node_modules/es5-ext/object/set-prototype-of/index.js
generated
vendored
Normal file
3
node_modules/es5-ext/object/set-prototype-of/index.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = require("./is-implemented")() ? Object.setPrototypeOf : require("./shim");
|
9
node_modules/es5-ext/object/set-prototype-of/is-implemented.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/set-prototype-of/is-implemented.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
var create = Object.create, getPrototypeOf = Object.getPrototypeOf, plainObject = {};
|
||||
|
||||
module.exports = function (/* CustomCreate*/) {
|
||||
var setPrototypeOf = Object.setPrototypeOf, customCreate = arguments[0] || create;
|
||||
if (typeof setPrototypeOf !== "function") return false;
|
||||
return getPrototypeOf(setPrototypeOf(customCreate(null), plainObject)) === plainObject;
|
||||
};
|
81
node_modules/es5-ext/object/set-prototype-of/shim.js
generated
vendored
Normal file
81
node_modules/es5-ext/object/set-prototype-of/shim.js
generated
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
/* eslint no-proto: "off" */
|
||||
|
||||
// Big thanks to @WebReflection for sorting this out
|
||||
// https://gist.github.com/WebReflection/5593554
|
||||
|
||||
"use strict";
|
||||
|
||||
var isObject = require("../is-object")
|
||||
, value = require("../valid-value")
|
||||
, objIsPrototypeOf = Object.prototype.isPrototypeOf
|
||||
, defineProperty = Object.defineProperty
|
||||
, nullDesc = { configurable: true, enumerable: false, writable: true, value: undefined }
|
||||
, validate;
|
||||
|
||||
validate = function (obj, prototype) {
|
||||
value(obj);
|
||||
if (prototype === null || isObject(prototype)) return obj;
|
||||
throw new TypeError("Prototype must be null or an object");
|
||||
};
|
||||
|
||||
module.exports = (function (status) {
|
||||
var fn, set;
|
||||
if (!status) return null;
|
||||
if (status.level === 2) {
|
||||
if (status.set) {
|
||||
set = status.set;
|
||||
fn = function (obj, prototype) {
|
||||
set.call(validate(obj, prototype), prototype);
|
||||
return obj;
|
||||
};
|
||||
} else {
|
||||
fn = function (obj, prototype) {
|
||||
validate(obj, prototype).__proto__ = prototype;
|
||||
return obj;
|
||||
};
|
||||
}
|
||||
} else {
|
||||
fn = function self(obj, prototype) {
|
||||
var isNullBase;
|
||||
validate(obj, prototype);
|
||||
isNullBase = objIsPrototypeOf.call(self.nullPolyfill, obj);
|
||||
if (isNullBase) delete self.nullPolyfill.__proto__;
|
||||
if (prototype === null) prototype = self.nullPolyfill;
|
||||
obj.__proto__ = prototype;
|
||||
if (isNullBase) defineProperty(self.nullPolyfill, "__proto__", nullDesc);
|
||||
return obj;
|
||||
};
|
||||
}
|
||||
return Object.defineProperty(fn, "level", {
|
||||
configurable: false,
|
||||
enumerable: false,
|
||||
writable: false,
|
||||
value: status.level
|
||||
});
|
||||
})(
|
||||
(function () {
|
||||
var tmpObj1 = Object.create(null)
|
||||
, tmpObj2 = {}
|
||||
, set
|
||||
, desc = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__");
|
||||
|
||||
if (desc) {
|
||||
try {
|
||||
set = desc.set; // Opera crashes at this point
|
||||
set.call(tmpObj1, tmpObj2);
|
||||
} catch (ignore) {}
|
||||
if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { set: set, level: 2 };
|
||||
}
|
||||
|
||||
tmpObj1.__proto__ = tmpObj2;
|
||||
if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 2 };
|
||||
|
||||
tmpObj1 = {};
|
||||
tmpObj1.__proto__ = tmpObj2;
|
||||
if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 1 };
|
||||
|
||||
return false;
|
||||
})()
|
||||
);
|
||||
|
||||
require("../create");
|
3
node_modules/es5-ext/object/some.js
generated
vendored
Normal file
3
node_modules/es5-ext/object/some.js
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = require("./_iterate")("some", false);
|
21
node_modules/es5-ext/object/to-array.js
generated
vendored
Normal file
21
node_modules/es5-ext/object/to-array.js
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
|
||||
var callable = require("./valid-callable")
|
||||
, isValue = require("./is-value")
|
||||
, forEach = require("./for-each")
|
||||
, call = Function.prototype.call
|
||||
, defaultCb = function (value, key) { return [key, value]; };
|
||||
|
||||
module.exports = function (obj /*, cb, thisArg, compareFn*/) {
|
||||
var a = [], cb = arguments[1], thisArg = arguments[2];
|
||||
cb = isValue(cb) ? callable(cb) : defaultCb;
|
||||
|
||||
forEach(
|
||||
obj,
|
||||
function (value, key, targetObj, index) {
|
||||
a.push(call.call(cb, thisArg, value, key, this, index));
|
||||
},
|
||||
obj, arguments[3]
|
||||
);
|
||||
return a;
|
||||
};
|
8
node_modules/es5-ext/object/unserialize.js
generated
vendored
Normal file
8
node_modules/es5-ext/object/unserialize.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
var value = require("./valid-value");
|
||||
|
||||
module.exports = function (code) {
|
||||
// eslint-disable-next-line no-new-func
|
||||
return new Function("return " + value(code))();
|
||||
};
|
6
node_modules/es5-ext/object/valid-callable.js
generated
vendored
Normal file
6
node_modules/es5-ext/object/valid-callable.js
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
module.exports = function (fn) {
|
||||
if (typeof fn !== "function") throw new TypeError(fn + " is not a function");
|
||||
return fn;
|
||||
};
|
8
node_modules/es5-ext/object/valid-object.js
generated
vendored
Normal file
8
node_modules/es5-ext/object/valid-object.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
var isObject = require("./is-object");
|
||||
|
||||
module.exports = function (value) {
|
||||
if (!isObject(value)) throw new TypeError(value + " is not an Object");
|
||||
return value;
|
||||
};
|
8
node_modules/es5-ext/object/valid-value.js
generated
vendored
Normal file
8
node_modules/es5-ext/object/valid-value.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
var isValue = require("./is-value");
|
||||
|
||||
module.exports = function (value) {
|
||||
if (!isValue(value)) throw new TypeError("Cannot use null or undefined");
|
||||
return value;
|
||||
};
|
9
node_modules/es5-ext/object/validate-array-like-object.js
generated
vendored
Normal file
9
node_modules/es5-ext/object/validate-array-like-object.js
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
var isArrayLike = require("./is-array-like")
|
||||
, isObject = require("./is-object");
|
||||
|
||||
module.exports = function (obj) {
|
||||
if (isObject(obj) && isArrayLike(obj)) return obj;
|
||||
throw new TypeError(obj + " is not array-like object");
|
||||
};
|
8
node_modules/es5-ext/object/validate-array-like.js
generated
vendored
Normal file
8
node_modules/es5-ext/object/validate-array-like.js
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
var isArrayLike = require("./is-array-like");
|
||||
|
||||
module.exports = function (obj) {
|
||||
if (isArrayLike(obj)) return obj;
|
||||
throw new TypeError(obj + " is not array-like value");
|
||||
};
|
6
node_modules/es5-ext/object/validate-stringifiable-value.js
generated
vendored
Normal file
6
node_modules/es5-ext/object/validate-stringifiable-value.js
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
var ensureValue = require("./valid-value")
|
||||
, stringifiable = require("./validate-stringifiable");
|
||||
|
||||
module.exports = function (value) { return stringifiable(ensureValue(value)); };
|
12
node_modules/es5-ext/object/validate-stringifiable.js
generated
vendored
Normal file
12
node_modules/es5-ext/object/validate-stringifiable.js
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
var isCallable = require("./is-callable");
|
||||
|
||||
module.exports = function (stringifiable) {
|
||||
try {
|
||||
if (stringifiable && isCallable(stringifiable.toString)) return stringifiable.toString();
|
||||
return String(stringifiable);
|
||||
} catch (e) {
|
||||
throw new TypeError("Passed argument cannot be stringifed");
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user