diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-28 00:38:50 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-28 00:40:43 +0200 |
commit | 7fff4499fd915bcea3fa93b1aa8b35f4fe7a6027 (patch) | |
tree | 6de9a1aebd150a23b7f8c273ec657a5d0a18fe3e /node_modules/auto-bind | |
parent | 963b7a41feb29cc4be090a2446bdfe0c1f1bcd81 (diff) |
add linting (and some initial fixes)
Diffstat (limited to 'node_modules/auto-bind')
-rw-r--r-- | node_modules/auto-bind/index.js | 12 | ||||
-rw-r--r-- | node_modules/auto-bind/license | 21 | ||||
-rw-r--r-- | node_modules/auto-bind/package.json | 38 | ||||
-rw-r--r-- | node_modules/auto-bind/readme.md | 63 |
4 files changed, 134 insertions, 0 deletions
diff --git a/node_modules/auto-bind/index.js b/node_modules/auto-bind/index.js new file mode 100644 index 000000000..2cca81f6c --- /dev/null +++ b/node_modules/auto-bind/index.js @@ -0,0 +1,12 @@ +'use strict'; +module.exports = self => { + for (const key of Object.getOwnPropertyNames(self.constructor.prototype)) { + const val = self[key]; + + if (key !== 'constructor' && typeof val === 'function') { + self[key] = val.bind(self); + } + } + + return self; +}; diff --git a/node_modules/auto-bind/license b/node_modules/auto-bind/license new file mode 100644 index 000000000..654d0bfe9 --- /dev/null +++ b/node_modules/auto-bind/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) + +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/auto-bind/package.json b/node_modules/auto-bind/package.json new file mode 100644 index 000000000..ebb2f0989 --- /dev/null +++ b/node_modules/auto-bind/package.json @@ -0,0 +1,38 @@ +{ + "name": "auto-bind", + "version": "1.1.0", + "description": "Automatically bind methods to their class instance", + "license": "MIT", + "repository": "sindresorhus/auto-bind", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=4" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "auto", + "bind", + "class", + "methods", + "method", + "automatically", + "prototype", + "instance", + "function", + "this", + "self" + ], + "devDependencies": { + "ava": "*", + "xo": "*" + } +} diff --git a/node_modules/auto-bind/readme.md b/node_modules/auto-bind/readme.md new file mode 100644 index 000000000..8c375df9c --- /dev/null +++ b/node_modules/auto-bind/readme.md @@ -0,0 +1,63 @@ +# auto-bind [](https://travis-ci.org/sindresorhus/auto-bind) + +> Automatically bind methods to their class instance + + +## Install + +``` +$ npm install --save auto-bind +``` + + +## Usage + +```js +const autoBind = require('auto-bind'); + +class Unicorn { + constructor(name) { + this.name = name; + autoBind(this); + } + message() { + return `${this.name} is awesome!`; + } +} + +const unicorn = new Unicorn('Rainbow'); + +// Grab the method off the class instance +const message = unicorn.message; + +// Still bound to the class instance +message(); +//=> 'Rainbow is awesome!' + +// Without `autoBind(this)`, the above would have resulted in +message(); +//=> Error: Cannot read property 'name' of undefined +``` + + +## API + +### autoBind(self) + +Bind methods in `self` to their class instance. Returns the `self` object. + +#### self + +Type: `Object` + +Object with methods to bind. + + +## Related + +- [bind-methods](https://github.com/sindresorhus/bind-methods) - Bind all methods in an object to itself or a specified context + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) |