UNPKG

kitsu-core

Version:

Core serialisation and deserialsation functions for the kitsu JSON:API client

2 lines (1 loc) 615 B
import{deattribute as t}from"./deattribute.mjs";import"./error.mjs";import{filterIncludes as r}from"./filterIncludes.mjs";function e(e,i){let{id:o,type:s,meta:a}=e;const p=r(i,{id:o,type:s});return p.relationships&&n(p,i),a&&(p.meta=a),t(p)}function i(t,r,i){t[i]=[];for(const o of t.relationships[i].data)t[i].push(e(o,r))}function o(t,r,i){t[i]=e(t.relationships[i].data,r),delete t[i].relationships}function n(t,r){const{relationships:e}=t;let n=!1;for(const s in e)e[s].data&&Array.isArray(e[s].data)?(i(t,r,s),n=!0):e[s].data&&(o(t,r,s),n=!0);return n&&delete t.relationships,t}export{n as linkRelationships};