json-linker
Provides linking compatible with jsonapi.
Usage Example
Linking for json serialization
var song = {
title: 'Sunshine of Your Love'
riffs: [
{ id: 'abc123', start: '1:04', stop: '1:20' },
{ id: 'qwe234', start: '2:34', stop: '2:59' }
],
tags: [
{ id: 'w00t', name: 'creamy' },
{ id: '4r33l', name: 'awesome' }
]
}
var JsonLinker = require('json-linker')
var json = new JsonLinker(song, 'songs')
.links('riffs', 'tags')
.toJson()
Unlinking for embedded models
var json = {
songs: [{
title: 'Sunshine of Your Love',
links: {
riffs: ['abc123', 'qwe234'],
tags: ['w00t', '4r33l']
}
}],
linked: {
riffs: [
{ id: 'abc123', start: '1:04', stop: '1:20' },
{ id: 'qwe234', start: '2:34', stop: '2:59' }
],
tags: [
{ id: 'w00t', name: 'creamy' },
{ id: '4r33l', name: 'awesome' }
]
}
}
var JsonLinker = require('json-linker')
var model = new JsonLinker(song)
.toEmbeddedModel()