🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

ic-ajax

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ic-ajax

ember friendly $.ajax wrapper

0.4.0
Source
npm
Version published
Weekly downloads
2.6K
-1.9%
Maintainers
1
Weekly downloads
 
Created
Source

ic-ajax

Ember-friendly jQuery.ajax wrapper.

  • returns RSVP promises
  • makes apps more testable (resolves promises with Ember.run)
  • makes testing ajax simpler with fixture support

Installation

bower install ic-ajax

... or ...

npm install ic-ajax

... or download main.js and include it into your app however you want.

Module Support

  • AMD

    define(['bower_components/ic-ajax'], function(ajax) {});

  • Node.JS (CJS)

    var ajax = require('ic-ajax')

  • Globals

    var ajax = ic.ajax;

    All instructure canvas stuff lives on the ic global.

API

Ajax simply wraps jQuery.ajax with two exceptions:

  • success and error callbacks are not supported
  • does not resolve three arguments like $.ajax (real promises only resolve a single value). ic.ajax only resolves the response data from the request, while ic.ajax.raw resolves an object with the three "arguments" as keys if you need them.

Other than that, use it exactly like $.ajax.

var ajax = ic.ajax;
App.ApplicationRoute = Ember.Route.extend({
  model: function() {
    return ajax('/foo');
  }
}

// if you need access to the jqXHR or textStatus, use raw
ajax.raw('/foo').then(function(result) {
  // result.response
  // result.textStatus
  // result.jqXHR
});

Simplified Testing

Adding fixtures with defineFixture tells ic-ajax to resolve the promise with the fixture matching a url instead of making a request. This allows you to test your app without creating fake servers with sinon, etc.

Example:

ic.ajax.defineFixture('api/v1/courses', {
  response: [{name: 'basket weaving'}],
  jqXHR: {},
  textStatus: 'success'
});

ic.ajax('api/v1/courses').then(function(result) {
  deepEqual(result, ic.ajax.lookupFixture('api/v1/courses').response);
});

Contributing

Install dependencies and run tests with the following:

bower install
npm install
npm test

Special Thanks

Inspired by discourse ajax.

MIT Style license

(c) 2013 Instructure, Inc.

Keywords

ember

FAQs

Package last updated on 07 Feb 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts