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/call-signature/readme.md | |
parent | 963b7a41feb29cc4be090a2446bdfe0c1f1bcd81 (diff) |
add linting (and some initial fixes)
Diffstat (limited to 'node_modules/call-signature/readme.md')
-rw-r--r-- | node_modules/call-signature/readme.md | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/node_modules/call-signature/readme.md b/node_modules/call-signature/readme.md new file mode 100644 index 000000000..0ea355e03 --- /dev/null +++ b/node_modules/call-signature/readme.md @@ -0,0 +1,113 @@ +# call-signature [](https://travis-ci.org/jamestalmage/call-signature) + +> Parse / Generate Method Signatures + + +## Install + +``` +$ npm install --save call-signature +``` + + +## Usage + +```js +var signature = require('call-signature'); + +// parse a call signature definition +var parsed = signature.parse('t.equal(expected, actual, [message])'); + +console.log(parsed); +/* => + { + callee: { + type: 'MemberExpression', + object: 't', + member: 'equal' + }, + args: [ + { + name: 'actual', + optional: false + }, + { + name: 'expected', + optional: false + }, + { + name: 'message', + optional: true + } + ] + } +*/ + + +// Create signature definitions from the parsed object. +signature.generate(parsed); + +//=> "t.equal(expected, actual, [message])" +``` + + +## API + +### callSignature.parse(input) + +#### input + +Type: `string` + +A string that matches the call signature spec: + +`object.member(required_arg1, required_arg2, [optional_arg1])` +`name(required_arg1, required_arg2, [optional_arg1])` + +`object`, `member` and `name` can be any identifiers, but currently the callee must be a `MemberExpression` or an `Identifier` (that requirement may loosen in the future). + +You can have any number of arguments. Optional arguments are denoted by placing the argument name between square `[`brackets`]`. + +#### returns + +A simple JS Object with three properties `callee` and `args`. + +`callee` will be an object containing `type` property and its corresponding properties. + +when matched against `MemberExpression` like `foo.bar(baz)`, `object` and `member` will be strings. + + callee: { + type: 'MemberExpression', + object: 'foo', + member: 'bar' + } + +when matched against `Identifier` like `foo(baz)`, `name` will be string. + + callee: { + type: 'Identifier', + name: 'foo' + } + +`args` will be an array. Each item of the array will have two properties `name`, and `optional`. + `name` will be the `string` name of the arg. `optional` will be a boolean value. + +### callSignature.generate(parsed) + +#### input + +Type: `Object` + +Must have the same definition as the return value from the `parse` method. + +#### returns + +A `string` signature definition that will parse to exactly the provided input. + +## Related + +- [escallmatch](https://www.npmjs.com/package/escallmatch) - Similar, with compatible string definitions to this library. Can be used to match AST Nodes to parsed signatures. + +## License + +MIT © [James Talmage](http://github.com/jamestalmage) |