Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

fluxible-plugin-fetchr

Package Overview
Dependencies
Maintainers
5
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fluxible-plugin-fetchr

A plugin for Fluxible applications to provide an isomorphic interface for RESTful services

  • 0.2.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
140
decreased by-32.69%
Maintainers
5
Weekly downloads
 
Created
Source

Fetchr Plugin for Fluxible

npm version Build Status Dependency Status devDependency Status Coverage Status

Provides isomorphic RESTful service access to your Fluxible application using fetchr.

Usage

var Fluxible = require('fluxible');
var fetchrPlugin = require('fluxible-plugin-fetchr');
var app = new Fluxible();

app.plug(fetchrPlugin({
    xhrPath: '/api' // Path for XHR to be served from
}));

Now, when calling the createContext method on the server, make sure to send in the request object and optionally pass an xhrContext which will be used as parameters for all XHR calls:

app.createContext({
    req: req,
    xhrContext: { // Used as query params for all XHR calls
        lang: 'en-US', // make sure XHR calls receive the same lang as the initial request
        _csrf: 'a3fc2d' // CSRF token to validate on the server using your favorite library
    }
});

Registering Your Services

Since the fetchr plugin is in control the fetchr class, we expose this through the registerService method.

pluginInstance.registerService(yourService);

Or if you need to do this from your application without direct access to the plugin

app.getPlugin('FetchrPlugin').registerService(yourService);

Exposing Your Services

Fetchr also contains an express/connect middleware that can be used as your access point from the client.

var server = express();
server.use(pluginInstance.getXhrPath(), pluginInstance.getMiddleware());

Dynamic XHR Paths

The fetchrPlugin method can also be passed a getXhrPath function that returns the string for the xhrPath. This allows you to dynamically set the xhrPath based on the current context. For instance, if you're hosting multiple sites and want to serve XHR via a pattern route like /:site/api, you can do the following:

app.plug(fetchrPlugin({
    getXhrPath: function (contextOptions) {
        // `contextOptions` is the object passed to `createContext` above
        return contextOptions.req.params.site + '/api';
    }
}));

Fetchr Plugin API

Constructor(options)

Creates a new fetchr plugin instance with the following parameters:

  • options: An object containing the plugin settings
  • options.xhrPath (optional): Stores your xhr path prefix used by client side requests. DEFAULT: '/api'

Instance Methods

getXhrPath

getter for the xhrPath option passed into the constructor.

var pluginInstance = fetchrPlugin({
    xhrPath: '/api'
});

pluginInstance.getXhrPath(); // returns '/api'
registerService(service)

[register a service](#Registering Your Services) with fetchr

getMiddleware

getter for fetchr's express/connect middleware. See [usage](#Exposing Your Services)

actionContext Methods

  • actionContext.service.read(resource, params, [config,] callback): Call the read method of a service. See fetchr docs for more information.
  • actionContext.service.create(resource, params, body, [config,] callback): Call the create method of a service. See fetchr docs for more information.
  • actionContext.service.update(resource, params, body, [config,] callback): Call the update method of a service. See fetchr docs for more information.
  • actionContext.service.delete(resource, params, [config,] callback): Call the delete method of a service. See fetchr docs for more information.
  • actionContext.getServiceMeta(): The plugin will collect metadata for service responses and provide access to it via this method. This will return an array of metadata objects. //: # (API_STOP)

License

This software is free to use under the Yahoo! Inc. BSD license. See the LICENSE file for license text and copyright information.

Keywords

FAQs

Package last updated on 03 Feb 2015

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc