|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- [![NPM version][npm-image]][npm-url]
- [![build status][travis-image]][travis-url]
- [![Test coverage][coveralls-image]][coveralls-url]
- [![Downloads][downloads-image]][downloads-url]
- [![Join the chat at https://gitter.im/eslint/doctrine](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/eslint/doctrine?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-
- # Doctrine
-
- Doctrine is a [JSDoc](http://usejsdoc.org) parser that parses documentation comments from JavaScript (you need to pass in the comment, not a whole JavaScript file).
-
- ## Installation
-
- You can install Doctrine using [npm](https://npmjs.com):
-
- ```
- $ npm install doctrine --save-dev
- ```
-
- Doctrine can also be used in web browsers using [Browserify](http://browserify.org).
-
- ## Usage
-
- Require doctrine inside of your JavaScript:
-
- ```js
- var doctrine = require("doctrine");
- ```
-
- ### parse()
-
- The primary method is `parse()`, which accepts two arguments: the JSDoc comment to parse and an optional options object. The available options are:
-
- * `unwrap` - set to `true` to delete the leading `/**`, any `*` that begins a line, and the trailing `*/` from the source text. Default: `false`.
- * `tags` - an array of tags to return. When specified, Doctrine returns only tags in this array. For example, if `tags` is `["param"]`, then only `@param` tags will be returned. Default: `null`.
- * `recoverable` - set to `true` to keep parsing even when syntax errors occur. Default: `false`.
- * `sloppy` - set to `true` to allow optional parameters to be specified in brackets (`@param {string} [foo]`). Default: `false`.
- * `lineNumbers` - set to `true` to add `lineNumber` to each node, specifying the line on which the node is found in the source. Default: `false`.
- * `range` - set to `true` to add `range` to each node, specifying the start and end index of the node in the original comment. Default: `false`.
-
- Here's a simple example:
-
- ```js
- var ast = doctrine.parse(
- [
- "/**",
- " * This function comment is parsed by doctrine",
- " * @param {{ok:String}} userName",
- "*/"
- ].join('\n'), { unwrap: true });
- ```
-
- This example returns the following AST:
-
- {
- "description": "This function comment is parsed by doctrine",
- "tags": [
- {
- "title": "param",
- "description": null,
- "type": {
- "type": "RecordType",
- "fields": [
- {
- "type": "FieldType",
- "key": "ok",
- "value": {
- "type": "NameExpression",
- "name": "String"
- }
- }
- ]
- },
- "name": "userName"
- }
- ]
- }
-
- See the [demo page](http://eslint.org/doctrine/demo/) more detail.
-
- ## Team
-
- These folks keep the project moving and are resources for help:
-
- * Nicholas C. Zakas ([@nzakas](https://github.com/nzakas)) - project lead
- * Yusuke Suzuki ([@constellation](https://github.com/constellation)) - reviewer
-
- ## Contributing
-
- Issues and pull requests will be triaged and responded to as quickly as possible. We operate under the [ESLint Contributor Guidelines](http://eslint.org/docs/developer-guide/contributing), so please be sure to read them before contributing. If you're not sure where to dig in, check out the [issues](https://github.com/eslint/doctrine/issues).
-
- ## Frequently Asked Questions
-
- ### Can I pass a whole JavaScript file to Doctrine?
-
- No. Doctrine can only parse JSDoc comments, so you'll need to pass just the JSDoc comment to Doctrine in order to work.
-
-
- ### License
-
- #### doctrine
-
- Copyright JS Foundation and other contributors, https://js.foundation
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
- #### esprima
-
- some of functions is derived from esprima
-
- Copyright (C) 2012, 2011 [Ariya Hidayat](http://ariya.ofilabs.com/about)
- (twitter: [@ariyahidayat](http://twitter.com/ariyahidayat)) and other contributors.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
- #### closure-compiler
-
- some of extensions is derived from closure-compiler
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
-
- ### Where to ask for help?
-
- Join our [Chatroom](https://gitter.im/eslint/doctrine)
-
- [npm-image]: https://img.shields.io/npm/v/doctrine.svg?style=flat-square
- [npm-url]: https://www.npmjs.com/package/doctrine
- [travis-image]: https://img.shields.io/travis/eslint/doctrine/master.svg?style=flat-square
- [travis-url]: https://travis-ci.org/eslint/doctrine
- [coveralls-image]: https://img.shields.io/coveralls/eslint/doctrine/master.svg?style=flat-square
- [coveralls-url]: https://coveralls.io/r/eslint/doctrine?branch=master
- [downloads-image]: http://img.shields.io/npm/dm/doctrine.svg?style=flat-square
- [downloads-url]: https://www.npmjs.com/package/doctrine
|