clay-normalizer
v2.0.1
Published
Normalizer for clay-collection
Downloads
4
Readme
clay-normalizer
Normalizer for clay-collection
Installation
$ npm install clay-normalizer --save
Usage
'use strict'
const { clayEntity } = require('clay-entity')
const { normalize, denormalize } = require('clay-normalizer')
{
let org01 = clayEntity({ id: 1, name: 'org01', $$as: 'Org' })
let user01 = clayEntity({ id: 1, name: 'user01', org: org01, $$as: 'User' })
let user02 = clayEntity({ id: 2, name: 'user02', org: org01, $$as: 'User' })
let { pointers, pointed, relations } = normalize([ user01, user02 ])
console.log(pointers) // -> [ 'User#1', 'User#2' ]
console.log(pointed) // -> { User: { '1': { /* ... */ }, '2': { /* ... */ } }, Org: { '1': { /* ... */ } } }
console.log(relations) // -> { 'User#1': { org: 'Org#1' }, 'User#2': { org: 'Org#1' } }
let users = denormalize({ pointers, pointed, relations })
console.log(users) // -> [ { /* ... */ }, { /* ... */ } ]
}
Functions
Available functions
| Signature | Description |
| ---- | ----------- |
| denormalize(normalized, options) -> ClayEntity[]
| Restore from normalized |
| normalize(collection, options) -> ClayNormalized
| Normalize clay entities |
License
This software is released under the Apache-2.0 License.