iris

Sweet Promise-based XHR/JSONP library for browsers.

npm install iris
7 downloads in the last week
32 downloads in the last month

Iris

Iris is a library for handling HTTP (through XMLHttpRequest) and JSONP requests in a more high-level way. It uses promises to allow for more declarative and flexible handling of the responses from either side.

// HTTP example
var http = require('iris').http

http.get('/user/profile')
    .timeout(10) // in seconds
    .ok(function(data){
       $('#user').html(data)
    })
    .timeouted(function(){
       dialog.error('The operation timed out.')
    })
    .failed(function() {
       dialog.error('Ooops, something went wrong.')
    })


// JSONP example
var jsonp = require('iris').jsonp

jsonp.get('/user/posts')
     .timeout(10)
     .ok(function(data) {
        $('#post-count').text(data.posts.length + ' posts.')
     })
     .timeouted(function() {
        dialog.error('The operation timed out.')
     })
     .failed(function() {
        dialog.error('Ooops, something went wrong.')
     })

Requirements and Supported Platforms

Iris depends on the following libraries:

Additionally, there's a dependency on the set of safely shim-able ECMAScript 5 features, which can be provided by a library like es5-shim.

Installing

  1. you'll need node.js and npm. As soon as you got your hands on those beautiful thingies, you can just run the following in your project's directory.

    $ npm install iris
    
  1. Then require iris in your script:

    var iris = require('iris')
    
    iris.http.get('/za/warudo')
    
  2. Then compile it (use --watch for added development-phase awesomeness):

    $ browserify your-script.js -o bundle.js
    
  3. Finally, just put it all in your page:

    <html>
      {{ ... }}
      <body>
        {{ lots of things may go here, too }}
        <script src="/path/to/bundle.js"></script>
      </body>
    </html>
    

Downloading

Iris is nicely hosted (and developed) on Github. You can download the lastest snapshot or clone the entire repository:

$ git clone git://github.com/killdream/iris.git

Getting support

  • Use the Github tracker to report bugs or request features. Like a boss!

  • Fork, do your changes and send me a pull request if you want to~

  • For general support, you can send me an e-mail on quildreen@gmail.com

Licence

Iris is licensed under the delicious and permissive MIT licence. You can happily copy, share, modify, sell or whatever — refer to the actual licence text for less information:

$ less LICENCE.txt
npm loves you