abe-json-builder

Strips ABE spec files to JSON files containing response body only.


Keywords
abe, mocks, json
License
MIT
Install
npm install abe-json-builder@0.1.4

Documentation

Build Status Dependency Status devDependency Status Monthly downloads License

abe-json-builder

Strips ABE spec files to JSON files containing response body only, for example:

File sample-post.json

{
    "description": "Sample for ABE implementations",
    "url": "/",
    "method": "POST",
    "examples": {
        "OK": {
            "description": "Sample successful POST",
            "request": {
                "queryParams": { "verbose": "0" },
                "headers": { "Content-type": "application/json" },
                "body": { "payload": "Sample" }
            },
            "response": {
                "status": 201,
                "headers": { "Content-type": "application/json" },
                "body": { "id": 1, "payload": "Sample" }
            }
        },
        "OK_2": {
            "description": "Sample successful POST",
            "request": {
                "queryParams": { "verbose": "0" },
                "headers": { "Content-type": "application/json" },
                "body": { "payload": "Another Sample" }
            },
            "response": {
                "status": 201,
                "headers": { "Content-type": "application/json" },
                "body": { "id": 2, "payload": "Another Sample" }
            }
        }
    }
}

Would be converted into two different files (using the file name and the example key to generate the new file):

- sample-post-OK.json
- sample-post-OK_2.json

sample-post-OK.json

{
    "id": 1,
    "payload": "Sample"
}

sample-post-OK_2.json

{
    "id": 2,
    "payload": "Another Sample"
}

Usage

It is expected that you are using ABE Spec's for this node module to be used, to take a look at the Spec's take a look at the repo here.

npm install --save-dev abe-json-builder

You will need to run the JSON Builder prior to running your tests and/or server.

Example usage (file name createFeeds.js):

var createFeeds = require('abe-json-builder'),
    options = {
        'verbose': false,
        'location': 'myApp/mocks/**/*',
        'build': 'www/dist/json/'
    };

createFeeds.jsonBuilder(options);

To execute you would then need to run

node createFeeds.js

A suggestion would be to add this to your package.json as a script command.

Callbacks

If you'd like to fire a callback on completion, you can pass a function as a second argument like so:

var createFeeds = require('abe-json-builder'),
    callback = function () {
        console.log('I am called on complete');
    },
    options = {
        'verbose': false,
        'location': 'myApp/mocks/**/*',
        'build': 'www/dist/json/'
    };

createFeeds.jsonBuilder(options, callback);