aboutsummaryrefslogtreecommitdiff
path: root/node_modules/static-extend
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-08-14 05:01:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-08-14 05:02:09 +0200
commit363723fc84f7b8477592e0105aeb331ec9a017af (patch)
tree29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/static-extend
parent5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff)
downloadwallet-core-363723fc84f7b8477592e0105aeb331ec9a017af.tar.xz
node_modules
Diffstat (limited to 'node_modules/static-extend')
-rw-r--r--node_modules/static-extend/LICENSE21
-rw-r--r--node_modules/static-extend/index.js90
-rw-r--r--node_modules/static-extend/package.json63
3 files changed, 174 insertions, 0 deletions
diff --git a/node_modules/static-extend/LICENSE b/node_modules/static-extend/LICENSE
new file mode 100644
index 000000000..e28e60323
--- /dev/null
+++ b/node_modules/static-extend/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016, Jon Schlinkert.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/static-extend/index.js b/node_modules/static-extend/index.js
new file mode 100644
index 000000000..f4124b2aa
--- /dev/null
+++ b/node_modules/static-extend/index.js
@@ -0,0 +1,90 @@
+/*!
+ * static-extend <https://github.com/jonschlinkert/static-extend>
+ *
+ * Copyright (c) 2016, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */
+
+'use strict';
+
+var copy = require('object-copy');
+var define = require('define-property');
+var util = require('util');
+
+/**
+ * Returns a function for extending the static properties,
+ * prototype properties, and descriptors from the `Parent`
+ * constructor onto `Child` constructors.
+ *
+ * ```js
+ * var extend = require('static-extend');
+ * Parent.extend = extend(Parent);
+ *
+ * // optionally pass a custom merge function as the second arg
+ * Parent.extend = extend(Parent, function(Child) {
+ * Child.prototype.mixin = function(key, val) {
+ * Child.prototype[key] = val;
+ * };
+ * });
+ *
+ * // extend "child" constructors
+ * Parent.extend(Child);
+ *
+ * // optionally define prototype methods as the second arg
+ * Parent.extend(Child, {
+ * foo: function() {},
+ * bar: function() {}
+ * });
+ * ```
+ * @param {Function} `Parent` Parent ctor
+ * @param {Function} `extendFn` Optional extend function for handling any necessary custom merging. Useful when updating methods that require a specific prototype.
+ * @param {Function} `Child` Child ctor
+ * @param {Object} `proto` Optionally pass additional prototype properties to inherit.
+ * @return {Object}
+ * @api public
+ */
+
+function extend(Parent, extendFn) {
+ if (typeof Parent !== 'function') {
+ throw new TypeError('expected Parent to be a function.');
+ }
+
+ return function(Ctor, proto) {
+ if (typeof Ctor !== 'function') {
+ throw new TypeError('expected Ctor to be a function.');
+ }
+
+ util.inherits(Ctor, Parent);
+ copy(Ctor, Parent);
+
+ // proto can be null or a plain object
+ if (typeof proto === 'object') {
+ var obj = Object.create(proto);
+
+ for (var k in obj) {
+ Ctor.prototype[k] = obj[k];
+ }
+ }
+
+ // keep a reference to the parent prototype
+ define(Ctor.prototype, '_parent_', {
+ configurable: true,
+ set: function() {},
+ get: function() {
+ return Parent.prototype;
+ }
+ });
+
+ if (typeof extendFn === 'function') {
+ extendFn(Ctor, Parent);
+ }
+
+ Ctor.extend = extend(Ctor, extendFn);
+ };
+};
+
+/**
+ * Expose `extend`
+ */
+
+module.exports = extend;
diff --git a/node_modules/static-extend/package.json b/node_modules/static-extend/package.json
new file mode 100644
index 000000000..a63ab9500
--- /dev/null
+++ b/node_modules/static-extend/package.json
@@ -0,0 +1,63 @@
+{
+ "name": "static-extend",
+ "description": "Adds a static `extend` method to a class, to simplify inheritance. Extends the static properties, prototype properties, and descriptors from a `Parent` constructor onto `Child` constructors.",
+ "version": "0.1.2",
+ "homepage": "https://github.com/jonschlinkert/static-extend",
+ "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
+ "repository": "jonschlinkert/static-extend",
+ "bugs": {
+ "url": "https://github.com/jonschlinkert/static-extend/issues"
+ },
+ "license": "MIT",
+ "files": [
+ "index.js"
+ ],
+ "main": "index.js",
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "devDependencies": {
+ "gulp-format-md": "^0.1.9",
+ "mocha": "^2.5.3"
+ },
+ "keywords": [
+ "class",
+ "ctor",
+ "descriptor",
+ "extend",
+ "extends",
+ "inherit",
+ "inheritance",
+ "merge",
+ "method",
+ "prop",
+ "properties",
+ "property",
+ "prototype"
+ ],
+ "verb": {
+ "run": true,
+ "toc": false,
+ "layout": "default",
+ "tasks": [
+ "readme"
+ ],
+ "plugins": [
+ "gulp-format-md"
+ ],
+ "reflinks": [
+ "verb",
+ "verb-readme-generator"
+ ],
+ "lint": {
+ "reflinks": true
+ }
+ }
+}