npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

falcor-fetch-http-datasource

v1.1.0

Published

Falcor Http DataSource using isomorphic fetch

Downloads

12

Readme

falcor-fetch-http-datasource

Falcor Http DataSource using isomorphic fetch

Install

npm install falcor-fetch-http-datasource

Usage

Minimalistic ES6 example, a quick dirty setup

import falcor from 'falcor';
import FetchDataSource from 'falcor-fetch-http-datasource';

var model = new falcor.Model({
  source: new FetchDataSource('/model.json')
});

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

Headers

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

Cookies

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

CORS

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

Agent (Node only)

var source = new FetchDataSource('/model.json', {
  agent: {...agentObject}
});

Timeout

var source = new FetchDataSource('/model.json', {
  timeout: 5000
});

Retry

//Retry will try again if response status was not in 200-299 range
var source = new FetchDataSource('/model.json', {
  retry:1
});

OnResponse

var onResponse = function(url, statusCode, requestHeaders, responseHeaders, jsonBody, options){
  //json body will only be returned if statusCode is 200-299
  console.log(url, statusCode, requestHeaders, responseHeaders, jsonBody, options);
  //You can update options for subsequent retry calls  
}

var source = new FetchDataSource('/model.json', {
  onResponse:onResponse
});

MaxQuerySize

//Will split the query based on how many characters are in the url.  If its over maxQuerySize the multiple requests will be made to the server by splitting up the query into smaller subqueries.
// This should happen transparently and should not have any impact on the output value.
var source = new FetchDataSource('/model.json', {
  maxQuerySize:1 //Default is 7000 characters
});