You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

json-api-models

Package Overview
Dependencies
Maintainers
0
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

json-api-models - npm Package Compare versions

Comparing version

to
0.2.0-beta.9

2

dist/index.es.js

@@ -1,1 +0,1 @@

const e=class{constructor(e,t){Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"attributes",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"relationships",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"meta",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"links",{enumerable:!0,configurable:!0,writable:!0,value:{}}),this.type=e.type,this.id=e.id,this.merge(e)}identifier(){return{id:this.id,type:this.type}}merge(e){this.links=e.links??this.links,this.meta=e.meta??this.meta,e.attributes&&(Object.assign(this.attributes,e.attributes),Object.keys(e.attributes).forEach((e=>{Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this),e)||Object.getOwnPropertyDescriptor(this,e)||Object.defineProperty(this,e,{get:()=>this.attributes[e],configurable:!0,enumerable:!0})}))),e.relationships&&Object.entries(e.relationships).forEach((([e,t])=>{this.relationships[e]=this.relationships[e]||{},Object.assign(this.relationships[e],t),Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this),e)||Object.getOwnPropertyDescriptor(this,e)||Object.defineProperty(this,e,{get:()=>this.getRelationship(e),configurable:!0,enumerable:!0})}))}getRelationship(e){const t=this.relationships[e].data;return Array.isArray(t)||t?this.store.find(t):void 0}};class t{constructor(e={}){Object.defineProperty(this,"models",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"graph",{enumerable:!0,configurable:!0,writable:!0,value:{}})}find(e,t){return null===e?null:Array.isArray(e)?e.map((e=>this.find(e))):"object"==typeof e?this.find(e.type,e.id):t&&this.graph[e]?.[t]||null}findAll(e){return this.graph[e]?Object.keys(this.graph[e]).map((t=>this.graph[e][t])):[]}sync(e){return e.included?.map((e=>this.syncResource(e))),Array.isArray(e.data)?e.data.map((e=>this.syncResource(e))):e.data?this.syncResource(e.data):null}syncResource(e){const{type:t,id:r}=e;return this.graph[t]=this.graph[t]||{},this.graph[t][r]?this.graph[t][r].merge(e):this.graph[t][r]=this.createModel(e),this.graph[t][r]}createModel(t){return new(this.models[t.type]||e)(t,this)}forget(e){delete this.graph[e.type][e.id]}reset(){this.graph={}}}export{e as Model,t as Store};
const e=class{constructor(e,t){Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"attributes",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"relationships",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"meta",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"links",{enumerable:!0,configurable:!0,writable:!0,value:{}}),this.type=e.type,this.id=e.id,this.merge(e)}identifier(){return{id:this.id,type:this.type}}merge(e){this.links=e.links??this.links,this.meta=e.meta??this.meta,e.attributes&&(Object.assign(this.attributes,e.attributes),Object.keys(e.attributes).forEach((e=>{Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this),e)||Object.getOwnPropertyDescriptor(this,e)||(this[e]=null,Object.defineProperty(this,e,{get:()=>this.attributes[e],configurable:!0,enumerable:!0}))}))),e.relationships&&Object.entries(e.relationships).forEach((([e,t])=>{this.relationships[e]=this.relationships[e]||{},Object.assign(this.relationships[e],t),Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this),e)||Object.getOwnPropertyDescriptor(this,e)||(this[e]=null,Object.defineProperty(this,e,{get:()=>this.getRelationship(e),configurable:!0,enumerable:!0}))}))}getRelationship(e){const t=this.relationships[e].data;return Array.isArray(t)||t?this.store.find(t):void 0}};class t{constructor(e={}){Object.defineProperty(this,"models",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"graph",{enumerable:!0,configurable:!0,writable:!0,value:{}})}find(e,t){return null===e?null:Array.isArray(e)?e.map((e=>this.find(e))):"object"==typeof e?this.find(e.type,e.id):t&&this.graph[e]?.[t]||null}findAll(e){return this.graph[e]?Object.keys(this.graph[e]).map((t=>this.graph[e][t])):[]}sync(e){return e.included?.map((e=>this.syncResource(e))),Array.isArray(e.data)?e.data.map((e=>this.syncResource(e))):e.data?this.syncResource(e.data):null}syncResource(e){const{type:t,id:r}=e;return this.graph[t]=this.graph[t]||{},this.graph[t][r]?this.graph[t][r].merge(e):this.graph[t][r]=this.createModel(e),this.graph[t][r]}createModel(t){return new(this.models[t.type]||e)(t,this)}forget(e){delete this.graph[e.type][e.id]}reset(){this.graph={}}}export{e as Model,t as Store};
{
"name": "json-api-models",
"description": "A lightweight layer for working with JSON:API data.",
"version": "0.2.0-beta.8",
"version": "0.2.0-beta.9",
"author": "Toby Zerner",

@@ -6,0 +6,0 @@ "license": "MIT",

@@ -58,2 +58,4 @@ import { JsonApiResource, SchemaCollection } from './types';

(this as any)[name] = null;
Object.defineProperty(this, name, {

@@ -84,2 +86,4 @@ get: () => this.attributes[name],

(this as any)[name] = null;
Object.defineProperty(this, name, {

@@ -86,0 +90,0 @@ get: () => this.getRelationship(name),