annotation-parser

2.7.0 • Public • Published

node-annotation-parser Build Status Coverage Status

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 like router for Node.js, but I found it would be better to split this up.

There is already an annotation parser for node but it didn't suit my needs.

Licence

MIT © Thomas Sileghem

Readme

Keywords

none

Package Sidebar

Install

npm i annotation-parser

Weekly Downloads

57

Version

2.7.0

License

MIT

Last publish

Collaborators

  • mastilver