falcor-http-datasource
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/falcor-http-datasource package

0.1.3 • Public • Published

HttpDataSource

This is a Falcor DataSource which can be used to retrieve JSON Graph information from an HTTP server.

Install

npm install falcor-http-datasource

Usage

Minimalistic ES6 example, a quick dirty setup

import falcor from 'falcor';
import HttpDataSource from 'falcor-http-datasource';
import user from 'app/models/user';
 
var model = new falcor.Model({
  source: new HttpDataSource('/model.json')
});

If you need some additional info for your global HTTP requests consider something like

JWT

var source = new HttpDataSource('/model.json', {
  headers: {
    'Authorization': `bearer ' + token`
  }
});

Cookies

var source = new HttpDataSource('/model.json', {
  withCredentials: true
});
// server must include the header `Access-Control-Allow-Credentials: true`

CORS

var source = new HttpDataSource('/model.json', {
  crossDomain: true
});

or you might want to pass it to constructor as your global AppSource

 
export class AppSource extends HttpDataSource {
  constructor(path, token) {
    super(path, {
      headers: {
        'Authorization': `bearer ${ token }`
      }
      timeout: 20000
    })
  }
 
  get(...args) {
    // returns an Observable if you wanted to map/filter/reduce/etc
    return super.get(...args)
  }
  set(...args) {
    // returns an Observable if you wanted to map/filter/reduce/etc
    return super.set(...args)
  }
  call(...args) {
    // returns an Observable if you wanted to map/filter/reduce/etc
    return super.call(...args)
  }
 
  onBeforeRequest(config) {
    // as of now you're able to mutate the config object before we create our xhr instance
    // you would attach any url params here
    // config.url = config.url + '&something=Value'
    console.log(config);
  }
  buildQueryObject(...args) {
    // helper method to build our url for advanced implementations
    return super.buildQueryObject(...args)
  }
}
 
export class FalcorModel extends falcor.Model {
  constructor(cache) {
    super({
      cache: cache,
      source: new AppSource('/model.json', user.token)
    });
  }
}
 

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.3
    777
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.1.3
    777
  • 0.1.2
    0
  • 0.1.1
    0

Package Sidebar

Install

npm i falcor-http-datasource

Weekly Downloads

777

Version

0.1.3

License

ALV2

Last publish

Collaborators

  • kkwon
  • kaylie
  • donutespresso
  • tbranyen
  • tvui-user
  • tvuiops-user
  • gsimpson
  • barb_the_builder
  • mmarchini
  • wesleytodd
  • satyend