clay-normalizer

2.0.1 • Public • Published

clay-normalizer

Build Status npm Version JS Standard

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.

Links

Readme

Keywords

Package Sidebar

Install

npm i clay-normalizer

Weekly Downloads

1

Version

2.0.1

License

Apache-2.0

Last publish

Collaborators

  • realglobe