aboutsummaryrefslogtreecommitdiff
path: root/node_modules/call-signature/readme.md
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-28 00:38:50 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-28 00:40:43 +0200
commit7fff4499fd915bcea3fa93b1aa8b35f4fe7a6027 (patch)
tree6de9a1aebd150a23b7f8c273ec657a5d0a18fe3e /node_modules/call-signature/readme.md
parent963b7a41feb29cc4be090a2446bdfe0c1f1bcd81 (diff)
add linting (and some initial fixes)
Diffstat (limited to 'node_modules/call-signature/readme.md')
-rw-r--r--node_modules/call-signature/readme.md113
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 [![Build Status](https://travis-ci.org/jamestalmage/call-signature.svg?branch=master)](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)