Package Exports
- json-linker
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (json-linker) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
json-linker
Provides linking compatible with jsonapi.
Usage Example
Linking for json serialization
// currently works only with singular models
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()
// outputs =>
//
// {
// 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' }
// ]
// }
// }Unlinking for embedded models
// currently works only with singular 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()
// outputs =>
// 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' }
// ]
// }