November Perfect Moustache

    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)
        });
      }
    }
     

    Install

    npm i falcor-http-datasource

    DownloadsWeekly Downloads

    257

    Version

    0.1.3

    License

    ALV2

    Last publish

    Collaborators

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