1.0.4 • Published 9 years ago

molecularjs v1.0.4

Weekly downloads
3
License
ISC
Repository
github
Last release
9 years ago

Molecular 'travis build' npm version Codacy Badge

Micro-library to make http request simply in the browser or with a NodeJs server.

Install

On nodejs

$ npm install molecularjs

On Bower

$ bower install molecularjs

Usage

With nodejs :

// First require the library
var Molecular = require('molecular');

Use Molecular like that

// Connect to your favorites APIs
Molecular.connect({
  'Github': 'https://api.github.com',
  'Slack' : 'http://api.slack.com'
});

// Set some options
// There are all options from the basic nodejs https module
Molecular.to('Github').setOptions({
  headers: {
    'user-agent': 'ArthurMialon'
  }
});

// Make a simply request to get some events
Molecular.to('Github').get('/users/arthurmialon/events')
  .progress(function(req) {
    console.log("request progress");
  })
  .success(function(data, req) {
    console.log(data, req);
  })
  .error(function(err, req) {
    console.log(err);
  });

In a browser :

Use it almost like in nodejs : You just have to import the file to your website

<!-- Import it to your website -->
<script src="molecular.js"></script>

Molecular API

More doc coming soon...

.connections

See all your connections to APIs

.connect(apis)

Parameters :

NameType
APIsObject

Example :

Molecular.connect({
  'Github': 'https://api.github.com',
  'Slack' : 'https://api.slack.com'
});

.to(apiName)

Parameters :

NameType
apiNameString
@returnObject

Example :

Molecular.to('ApiName')

.get(url, params)

Parameters :

NameType
urlString
paramsObject
@returnCallback Object

Example :

Molecular.get('http://your/api/endpoints', {limit: 2, orderby: "id", sort: "desc"});

.post(url, data)

Parameters :

NameType
urlString
dataObject
@returnCallback Object

Example :

Molecular.post('http://your/api/endpoints', {});

.put(url, data)

Parameters :

NameType
urlString
dataObject
@returnCallback Object

Example :

Molecular.put('http://your/api/endpoints', {});

.delete(url)

Parameters :

NameType
urlString
@returnCallback Object

Example :

Molecular.delete('http://your/api/endpoints');

.setMethod(name callback)

Parameters :

NameType
nameString
callbackFunction

Example :

Molecular.setMethod('methodName', function(arguments, callback) {
  // Do stuff and apply the callback
});

.setOptions(options)

Parameters :

NameType
optionsObject

Example :

Molecular.setOptions({
  headers: {
    "ContentType": "Application/json"
  }
});

.sendRequest(method, path, data, options)

Parameters :

NameType
methodString
pathString
dataObject / Boolean
optionsObject
@returnCallback Object

Example :

Molecular.sendRequest('GET', 'http://your/api/endpoint', false, {});

Advanced

You can simply add some methods to your connections

For example if I want to get the last commit from a specific repo (i.e: SailsJs)

// Set a new method to the api
Molecular.to('Github').setMethod('lasCommit', function(owner, repo, callback) {
  this.get('/repos/'+owner+'/'+repo+'/commits')
    .success(function(data) {
      // Add JSON.parse(data) in nodejs to data instead of data[0]
      callback.apply(this, [false, data[0]]);
    })
    .error(function(err) {
      callback.apply(this, [true, undefined]);
    });
});

// Get the last commit from sailsJs
Molecular.to('Github').lasCommit('balderdashy', 'sails', function(err, commit) {
  (err) ? console.error(err) : console.log(commit);
});

Next version 1.1

  • Support http & https
  • Better options management (JSON and default options etc...)
  • Call en error if status code >= 200 & < 300 for http module nodejs
  • Get the body response on error
  • Fixes on POST/PUT request
  • Fixes on options with xhr
  • Minified version for bower
  • Automatic JSON.parse on data