-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from devolksbank/initial
Initial version
- Loading branch information
Showing
23 changed files
with
1,402 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# ts sources | ||
/lib | ||
index.ts | ||
|
||
# descriptors | ||
@types |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
// d.ts file for doctrine. | ||
// Only the bare minimal has been declared here. | ||
declare namespace doctrine { | ||
export interface Comment { | ||
description: string; | ||
tags: Tag[]; | ||
} | ||
|
||
export interface Tag { | ||
title: string; | ||
description: string; | ||
type: Type; | ||
} | ||
|
||
export interface Type { | ||
type: string; | ||
name: string; | ||
} | ||
} | ||
|
||
declare module 'doctrine' { | ||
export function parse(code: string | Buffer, options: any): Comment; | ||
} | ||
export = doctrine; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
// d.ts file for espree. | ||
// Only the bare minimal has been declared here. | ||
declare namespace espree { | ||
interface Comment { | ||
value: string; | ||
} | ||
interface ParseOptions { | ||
comments: boolean; | ||
attachComment: boolean; | ||
} | ||
interface Ast { | ||
comments: Comment[]; | ||
} | ||
} | ||
|
||
declare module 'espree' { | ||
export function parse(code: string | Buffer, options: any): espree.Ast; | ||
} | ||
|
||
export = espree; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,142 @@ | ||
# yadop | ||
Yet Another Doc Parser | ||
Yadop (Yet Another Doc Parser) is a [JSDoc](http://usejsdoc.org) parser that uses [Espree](https://github.com/eslint/espree) and [Doctrine](https://github.com/eslint/doctrine) to process your sources. | ||
|
||
## Installation | ||
|
||
You can install Yadop using [npm](https://npmjs.com): | ||
|
||
``` | ||
$ npm install yadop --save-dev | ||
``` | ||
|
||
## Usage | ||
|
||
Require yadop inside of your JavaScript: | ||
|
||
```js | ||
var yadop = require("yadop"); | ||
``` | ||
|
||
#### JSDoc | ||
|
||
In order to process the jsdoc you can execute the following: | ||
|
||
```js | ||
yadop.jsdoc.processor({ | ||
cwd: 'directory/containing/sources', // the source directory | ||
pattern: '*/*.js' // the pattern | ||
}).process(); | ||
``` | ||
|
||
#### NGDoc | ||
|
||
In order to process the ngdoc you can execute the following: | ||
|
||
```js | ||
var comments = yadop.ngdoc.processor({ | ||
cwd: 'directory/containing/sources', // the source directory | ||
pattern: '*/*.js' // the pattern | ||
}).process(); | ||
|
||
var results = yadop.ngdoc.mapper().map(comments); | ||
``` | ||
|
||
## Configuration | ||
|
||
Both the yadop.jsdoc.processor and the yadop.ngdoc.processor are called with a configuration object. | ||
This object contains the following attributes: | ||
|
||
##### cwd | ||
Type: `string` | ||
Default: current working directory | ||
Mandatory: false | ||
|
||
The current working directory. | ||
|
||
##### pattern | ||
Type: `string` | ||
Default: **/*.js | ||
Mandatory: false | ||
|
||
The file pattern. | ||
|
||
##### ignore | ||
Type: `string` | ||
Default: [] | ||
Mandatory: false | ||
|
||
The ignore patterns. | ||
|
||
### Example | ||
|
||
```js | ||
{ | ||
cwd: 'directory/containing/sources', // the source directory | ||
pattern: '*/*.js' // the pattern | ||
} | ||
``` | ||
|
||
## Available functions | ||
|
||
#### yadop.jsdoc.processor | ||
Type: `Function` | ||
Param: `Configuration` The configuration object as seen above. | ||
Returns: [doctrine](https://github.com/eslint/doctrine)Comment[] | ||
|
||
Processes jsdoc for each file in the specified cwd. | ||
|
||
#### yadop.ngdoc.processor | ||
Type: `Function` | ||
Param: `Configuration` | ||
Returns: [doctrine](https://github.com/eslint/doctrine)Comment[] | ||
|
||
Processes jsdoc for each file in the specified cwd but only containing the ngdoc tags. | ||
|
||
#### yadop.ngdoc.mapper | ||
Type: `Function` | ||
Param: [doctrine](https://github.com/eslint/doctrine)`Comment[]` | ||
Returns: [yadop](blob/initial/lib/ngdoc/model/module.ts)Module[] | ||
|
||
Processes a [doctrine](https://github.com/eslint/doctrine)Comment[] and returns a [yadop](blob/initial/lib/ngdoc/model/module.ts)module[]. | ||
|
||
## Example | ||
```json | ||
[{ "name": "my-module" }, { | ||
"name": "another-module", | ||
"entities": [{ | ||
"name": "my-component", | ||
"type": "component", | ||
"attributes": [{ | ||
"name": "items", | ||
"optional": false, | ||
"description": "Some attribute", | ||
"type": "Object[]" | ||
}, { | ||
"name": "items[].name", | ||
"optional": true, | ||
"description": "The (optional) name of the item", | ||
"type": "string" | ||
}, { | ||
"name": "items[].value", | ||
"optional": false, | ||
"description": "The value of the item", | ||
"type": "number" | ||
}] | ||
}, { | ||
"name": "SomeService", | ||
"type": "service", | ||
"methods": [{ | ||
"name": "SomeService#sayWhat", | ||
"description": "Says what.", | ||
"params": [{ "name": "who", "description": "Who said it", "type": "string" }, { | ||
"name": "when", | ||
"description": "When to say" | ||
}] | ||
}, { | ||
"name": "SomeService#welcome", | ||
"description": "Say welcome", | ||
"returns": { "name": "message The message", "type": "object" } | ||
}] | ||
}, { "name": "AnotherService", "type": "service" }] | ||
}] | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
import Configuration from './lib/configuration'; | ||
import Processor from './lib/processor'; | ||
import NgdocProcessor from './lib/ngdoc/ngdocProcessor'; | ||
import NgdocMapper from './lib/ngdoc/ngdocMapper'; | ||
|
||
(() => { | ||
'use strict'; | ||
|
||
module.exports = { | ||
jsdoc: { | ||
processor: (configuration: Configuration) => { | ||
return new Processor(configuration); | ||
} | ||
}, | ||
ngdoc: { | ||
processor: (configuration: Configuration) => { | ||
return new NgdocProcessor(configuration); | ||
}, | ||
mapper: () => { | ||
return new NgdocMapper() | ||
} | ||
} | ||
} | ||
})(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
/** Configuration information that is necessary for the processor to process docs. */ | ||
interface Configuration { | ||
cwd?: string; | ||
pattern?: string; | ||
ignore?: string[]; | ||
} | ||
|
||
export default Configuration; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
export interface AttributeType { | ||
name: string; | ||
description?: string; | ||
type?: string; | ||
optional: boolean; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import {Method} from './method'; | ||
import {AttributeType} from './attributeType'; | ||
|
||
export interface Entity { | ||
name: string; | ||
description?: string; | ||
type?: string; | ||
methods?: Method[]; | ||
attributes?: AttributeType[]; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
export enum EntityType { | ||
COMPONENT = 0, | ||
SERVICE = 1, | ||
DIRECTIVE = 2, | ||
FILTER = 3 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
import {ReturnType} from './returnType'; | ||
import {ParamType} from './paramType'; | ||
|
||
export interface Method { | ||
name: string; | ||
description?: string; | ||
returns?: ReturnType; | ||
params?: ParamType[]; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import {Entity} from './entity'; | ||
|
||
export interface Module { | ||
name: string; | ||
entities?: Entity[]; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
export interface ParamType { | ||
name: string; | ||
description?: string; | ||
type?: string; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
export interface ReturnType { | ||
name: string; | ||
type?: string; | ||
} |
Oops, something went wrong.