Skip to content

Beetrack/jsonapi-normalizer

 
 

Repository files navigation

jsonapi-normalizer

CircleCI JavaScript Style Guide

A tool similar to normalizr, but which leverages the self-describing schemas present in JSONAPI to automatically normalize without hand-written schema definitions.

Unlike the original code, this fork will always render relationships as an array of ids. See this explication

TL;DR

Turns this:

{
  data: [{
    type: 'articles',
    id: '1',
    attributes: {
      title: 'title',
      body: 'body'
    },
    relationships: {
      author: {
        data: {
          id: '42',
          type: 'users'
        }
      }
    }
  }],

  included: [
    {
      type: 'users',
      id: '42',
      attributes: {
        name: 'John'
      }
    }
  ]
}

Into this:

{
  result: {
    articles: ['1']
  },
  entities: {
    articles: {
      '1': {
        id: '1',
        title: 'title',
        body: 'body',
        author: ['42']
      }
    },
    users: {
      '42': {
        id: '42',
        name: 'John'
      }
    }
  }
}

Usage

import normalize from 'jsonapi-normalizer'

normalize(someJsonApiObject)

That's all there is to it! No options or schema definitions.

Installation

npm install --save jsonapi-normalizer

Contributing

To run on your own machine, clone the project and install dependencies using Yarn.

git clone [email protected]:stevenpetryk/jsonapi-normalizer.git
cd jsonapi-normalizer
yarn install

Testing is as simple as:

yarn test

Please ensure that your tests pass before requesting that a pull request is reviewed.

About

Normalizes JSONAPI for use in Redux or similar systems.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • JavaScript 100.0%