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
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'
}
}
}
}
import normalize from 'jsonapi-normalizer'
normalize(someJsonApiObject)
That's all there is to it! No options or schema definitions.
npm install --save jsonapi-normalizer
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.