https://github.com/mastilver/node-annotation-parser
a easy to use annotation parser for JavaScript
https://github.com/mastilver/node-annotation-parser
Last synced: over 1 year ago
JSON representation
a easy to use annotation parser for JavaScript
- Host: GitHub
- URL: https://github.com/mastilver/node-annotation-parser
- Owner: mastilver
- License: mit
- Created: 2015-01-24T23:47:42.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2016-12-23T13:01:27.000Z (over 9 years ago)
- Last Synced: 2025-03-18T17:44:43.842Z (over 1 year ago)
- Language: JavaScript
- Size: 24.4 KB
- Stars: 8
- Watchers: 1
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-annotation-parser [](https://travis-ci.org/mastilver/node-annotation-parser) [](https://coveralls.io/r/mastilver/node-annotation-parser)
### Presentation
Unlike many other languages (C#, Java, PHP...), JavaScript doesn't handle annotation.
This module is here to help you correcting that.
### Install
`$ npm install --save annotation-parser`
### Usage
```
annotationParser(filePath, callback)
```
### Exemple
given this file (witch contains annotations) `controller.js`
```
/*
@routePrefix('api')
*/
module.exports = {
// @route('collection', 'GET')
collection: function(){
},
// @route('collection/{id}', 'GET')
index: function(){
},
> };
```
You can then simply retrieve those annotations by doing so:
```
var parser = require('annotation-parser');
parser('controller.js', function(err, annotations){
console.log(annotations);
/*
{
module: {
name: 'controller',
annotations: {
routePrefix: [
['api'],
],
},
ref: /* module reference */
},
functions: {
collection: {
annotations: {
route: [
['collection', 'GET']
],
},
ref: /* the collection function */
},
index: {
annotations: {
route: [
['collection/{id}', 'GET']
],
},
ref: /* the index function */
},
},
}
*/
})
```
### Inspiration
My first goal was to create an [MVC](https://aspnetwebstack.codeplex.com/wikipage?title=Attribute%20Routing%20in%20MVC%20and%20Web%20API) like router for Node.js, but I found it would be better to split this up.
There is already an [annotation parser](https://www.npmjs.com/package/annotation) for node but it didn't suit my needs.
### Contributing
When submiting your pull-request try to follow those guides:
- https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github
- https://medium.com/@vadimdemedes/making-your-first-contribution-de6576ddb190
### Licence
MIT © Thomas Sileghem