diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:01:11 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:02:09 +0200 |
commit | 363723fc84f7b8477592e0105aeb331ec9a017af (patch) | |
tree | 29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/option-chain/readme.md | |
parent | 5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff) |
node_modules
Diffstat (limited to 'node_modules/option-chain/readme.md')
-rw-r--r-- | node_modules/option-chain/readme.md | 64 |
1 files changed, 33 insertions, 31 deletions
diff --git a/node_modules/option-chain/readme.md b/node_modules/option-chain/readme.md index efa9af4cc..a2f976b70 100644 --- a/node_modules/option-chain/readme.md +++ b/node_modules/option-chain/readme.md @@ -1,6 +1,6 @@ -# option-chain [](https://travis-ci.org/jamestalmage/option-chain) [](https://coveralls.io/github/jamestalmage/option-chain?branch=master) +# option-chain [](https://travis-ci.org/avajs/option-chain) [](https://coveralls.io/github/avajs/option-chain?branch=master) -> Use fluent property chains in lieu of options objects. +> Use fluent property chains in lieu of options objects ## Install @@ -16,21 +16,22 @@ $ npm install --save option-chain const optionChain = require('option-chain'); const optionDefinition = { - defaults: { - bar: false - }, - chainableMethods: { - foo: {foo: true}, - notFoo: {foo: false}, - bar: {bar: true} - } + defaults: { + bar: false + }, + chainableMethods: { + foo: {foo: true}, + notFoo: {foo: false}, + bar: {bar: true} + } }; function printOptionsAndArgs(options, args) { - console.log(options); - if (args.length) { - console.log(args); - } + console.log(options); + + if (args.length) { + console.log(args); + } } const fn = optionChain(optionDefinition, printOptionsAndArgs); @@ -56,8 +57,8 @@ fn.foo('a', 'b'); ##### chainableMethods -Type: `Object` -*Required* +*Required*<br> +Type: `Object` A map of chainable property names to the options set by adding property to the chain. @@ -65,10 +66,10 @@ Given the following: ```js const chainableMethods = { - foo: {foo: true}, - notFoo: {foo: false}, - bar: {bar: true}, - both: {foo: true, bar: true} + foo: {foo: true}, + notFoo: {foo: false}, + bar: {bar: true}, + both: {foo: true, bar: true} } ``` @@ -77,38 +78,38 @@ Then: - `fn.foo` would set `foo` to `true`. - `fn.bar` would set `bar` to `true`. - `fn.both` sets both `foo` and `bar` to `true`. -- The last property in the chain takes precedence, so `fn.foo.notFoo` would result in `foo` being `false`. +- The last property in the chain takes precedence, so `fn.foo.notFoo` would result in `foo` being `false`. ##### defaults -Type: `Object` +Type: `Object`<br> Default: `{}` A set of default starting properties. ##### spread -Type: `boolean` +Type: `boolean`<br> Default: `false` By default, any arguments passed to the wrapper are passed as an array to the second argument of the wrapped function. When this is `true`, additional arguments will be spread out as additional arguments: ```js function withoutSpread(opts, args) { - let foo = args[0]; - let bar = args[1]; - // ... + let foo = args[0]; + let bar = args[1]; + // ... } function withSpread(opts, foo, bar) { - // ... + // ... } ``` #### callback -Type: `function` +Type: `Function` This callback is called with the accumulated options as the first argument. Depending on the value of `options.spread`, arguments passed to the wrapper will either be an array as the second argument or spread out as the 2nd, 3rd, 4th... arguments. @@ -116,14 +117,15 @@ This callback is called with the accumulated options as the first argument. Depe If supplied, the `target` object is extended with the property getters and returned. Otherwise a wrapper function is created for `options.defaults`, then that wrapper is extended and returned. -*Hint:* If you want to extend a `target` and add a method that simply uses the defaults, add a chainable method definition with an empty spec: +*Hint:* If you want to extend a `target` and add a method that simply uses the defaults, add a chainable method definition with an empty spec: ```js const chainableMethods = { - defaultMethodName: {} + defaultMethodName: {} } ``` + ## License -MIT © [James Talmage](http://github.com/jamestalmage) +MIT © [James Talmage](https://github.com/jamestalmage) |