UNPKG

regard

Version:

Sugar-interface to access multiple data sources.

124 lines (92 loc) 3.33 kB
# Regard [![build status][travis-svg]][travis-url] [![dependency status][deps-svg]][deps-url] [![dev dependency status][dev-deps-svg]][dev-deps-url] [![license][license-image]][license-url] [![npm badge][npm-badge-png]][npm-url] Sugar-interface to access multiple data sources. ## Example In the example below, we will: 1. Create a new instance of _Regard_ ; 2. Load two connectors (_FsConnector_ and _HttpConnector_) ; 3. Create two major endpoints (`root` which give access to the current folder and `mb` which give access to the [Mockbin API](http://mockbin.com/docs)); 4. Execute a request to http://mockbin.com/request, write the result into `sample.json`, read it and print the content on the standard output. ```javascript var Regard = require('regard'); // #1 Create a new instance of Regard var regard = Regard(); // #2 Load two connectors regard .$$(Regard.FsConnector) .$$(Regard.HttpConnector); // #3 Create two major endpoints regard .$('mb', 'http://mockbin.com') .$('root', __dirname); // #4 Execute a request to http://mockbin.com/request regard('mb', 'request') .then(function (res) { // write the result into __dirname/sample.json return regard.root('write', 'sample.json', res.body); }) .then(function () { // read it return regard.root('read', 'sample.json'); }) .then(function (res) { // and print it console.log(res); }); ``` We can rewrite this example with less code lines: 1. Create an instance of _Regard_ initialized with _FsConnector_ and _HttpConnector_ ; 2. Create two major endpoints and two nested endpoints (one under the `mb` endpoint and an other under the `root` endpoint); 3. Execute a request, write the result into `sample.json` and print it. ```javascript var Regard = require('regard'); // #1 Create an instance of Regard initialized with two connectors var regard = Regard('fs', 'http'); // #2 Create two major endpoints and one nested endpoint under each of them regard .$('mb', 'http://mockbin.com') .$('root', __dirname) .mb.$('request', 'request') .root.$('sample', 'sample.json'); // #3 Execute a request, write and print the result regard.mb.request() .then(function (res) { return regard.root.sample('write', res.body); }) .then(console.log); ``` The two example above have the same result: the request's response is wrote into `sample.json`. ```bash $ cat sample.json { startedDateTime: '2015-09-23T07:04:52.797Z', clientIPAddress: '79.87.208.107', method: 'GET', url: 'http://mockbin.com/request', httpVersion: 'HTTP/1.1', // ... } ``` ## Tests ``` npm test ``` ## Credits * [Steven Enten](https://github.com/enten) ## License [MIT][license-url] [npm-url]: https://npmjs.org/package/regard [npm-version-svg]: http://vb.teelaun.ch/enten/regard.svg [travis-svg]: https://travis-ci.org/enten/regard.svg?branch=master [travis-url]: https://travis-ci.org/enten/regard [deps-svg]: https://david-dm.org/enten/regard.svg [deps-url]: https://david-dm.org/enten/regard [dev-deps-svg]: https://david-dm.org/enten/regard/dev-status.svg [dev-deps-url]: https://david-dm.org/enten/regard#info=devDependencies [npm-badge-png]: https://nodei.co/npm/regard.png [license-image]: http://img.shields.io/npm/l/regard.svg [license-url]: https://raw.githubusercontent.com/enten/regard/master/LICENSE