Coder Social home page Coder Social logo

tulios / mappersmith-redux-middleware Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 42 KB

it is a middleware for mappersmith which dispatches your request lifecycle to a redux store

Home Page: https://www.npmjs.com/package/mappersmith-redux-middleware

License: MIT License

JavaScript 97.96% Shell 2.04%
javascript redux mappersmith middleware redux-middleware

mappersmith-redux-middleware's Introduction

npm version Build Status

Mappersmith Redux Middleware

MappersmithReduxMiddleware is a middleware for mappersmith which dispatches your request lifecycle to a redux store

Installation

NPM

npm install mappersmith-redux-middleware --save
# yarn add mappersmith-redux-middleware

Browser

Download the tag/latest version from the dist folder.

Usage

Configure the middleware with your redux store and add it to your manifest, like:

import forge from 'mappersmith'
import ReduxMiddleware, { setStore } from 'mappersmith-redux-middleware'

import store from 'my-store'
setStore(store)

const client = forge({
  middlewares: [ReduxMiddleware],
  resources: {
    User: {
      all: { path: '/users' },
      byId: { path: '/users/{id}' }
    }
  }
})

The events will follow the pattern:

{
  type: 'mappersmith/<phase>/<resource-name>/<resource-method>',
  payload: { /* */ }
}

where phase can be: request, response or failure. Examples:

client.User.all({ admin: 'true' })

// request event
// {
//   type: 'mappersmith/request/User/all',
//   payload: {
//     params: { admin: true },
//     headers: {},
//     body: null
//   }
// }
//
// response event
// {
//   type: 'mappersmith/response/User/all',
//   payload: {
//     status: 200,
//     headers: { 'content-type': 'application/json' },
//     data: [
//       { id: 1, name: 'John Doe' },
//       /* ... */
//     ]
//   }
// }

In case of failure:

client.User.all({ admin: 'true' })

// request event
// {
//   type: 'mappersmith/request/User/all',
//   payload: {
//     params: { admin: true },
//     headers: {},
//     body: null
//   }
// }
//
// response event
// {
//   type: 'mappersmith/failure/User/all',
//   payload: {
//     status: 503,
//     headers: { 'content-type': 'application/json' },
//     data: {
//       error: 'Critical error!'
//     }
//   }
// }

Running all tests

yarn test

Compile and release

NODE_ENV=production yarn build

License

See LICENSE for more details.

mappersmith-redux-middleware's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.