kitsu-core
Advanced tools
Comparing version 7.3.1-beta.1 to 7.3.1-beta.2
@@ -1,1 +0,1 @@ | ||
"use strict";async function deattribute(t){return"object"==typeof t&&null!==t&&(Array.isArray(t)?await t.map(async t=>deattribute(t)):t.attributes&&t.attributes.constructor===Object&&(Object.keys(t.attributes).forEach(e=>{t[e]=t.attributes[e]}),delete t.attributes)),t}function error(t){if(t.response){const e=t.response.data;e&&e.errors&&(t.errors=e.errors)}throw t}async function filterIncludes(t,e){let{id:r,type:a}=e;try{const e=t.filter(t=>t.id===r&&t.type===a)[0]||{id:r,type:a};return Object.assign({},e)}catch(t){error(t)}}async function link(t,e){let{id:r,type:a,meta:i}=t;const s=await filterIncludes(e,{id:r,type:a});return s.relationships&&await linkRelationships(s,e),i&&(s.meta=i),deattribute(s)}async function linkArray(t,e,r){t[r]=[];for(let a of await t.relationships[r].data)t[r].push(await link(a,e))}async function linkObject(t,e,r){t[r]=await link(t.relationships[r].data,e),delete t[r].relationships}async function linkRelationships(t,e){const{relationships:r}=t;let a=!1;for(let i in await r)r[i].data&&Array.isArray(r[i].data)?(await linkArray(t,e,i),a=!0):r[i].data&&(await linkObject(t,e,i),a=!0);return a&&delete t.relationships,t}async function deserialiseArray(t){for(let e of await t.data)t.included&&(e=await linkRelationships(e,t.included)),e.attributes&&(e=await deattribute(e)),t.data[t.data.indexOf(e)]=e;return t}async function deserialise(t){return t.data&&t.data.constructor===Array?t=await deserialiseArray(t):t.included&&(t.data=await linkRelationships(t.data,t.included)),delete t.included,t.data&&t.data.attributes&&(t.data=await deattribute(t.data)),t}function queryFormat(t,e){return null!==t&&"object"==typeof t?query(t,e):encodeURIComponent(e)+"="+encodeURIComponent(t)}function query(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const r=[];for(const a in t)t.hasOwnProperty(a)&&r.push(queryFormat(t[a],e?"".concat(e,"[").concat(a,"]"):a));return r.join("&")}Object.defineProperty(exports,"__esModule",{value:!0});const requiresID=(t,e)=>"".concat(t," requires an ID for the ").concat(e," relationships");async function isValid(t,e,r){if(t.constructor!==Object||0===Object.keys(t).length)throw new Error("".concat(e," requires a JSON object body"));if("POST"!==e&&!t.id)throw new Error("".concat(e," requires an ID for the ").concat(r," type"))}async function serialiseObject(t,e,r,a,i){if("string"!=typeof t.id)throw new Error(requiresID(i,r));return a.relationships||(a.relationships={}),t.type||(t.type=e),a.relationships[r]={data:Object.assign(t)},a}async function serialiseArray(t,e,r,a,i){return a.relationships||(a.relationships={}),a.relationships[r]={data:t.map(t=>{let{id:a,type:s}=t;if(!a)throw new Error(requiresID(i,r));return{id:a,type:s||e}})},a}async function serialiseAttr(t,e,r){return r.attributes||(r.attributes={}),r.attributes[e]=t,r}async function serialise(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"POST";try{const a=this.plural(this.camel(t));let i={type:a};await isValid(e,r,a),"POST"!==r&&(i.id=String(e.id));for(let t in e){const a=e[t],s=this.plural(this.camel(t));null!==a&&a.constructor===Object?i=await serialiseObject(a,s,t,i,r):null!==a&&Array.isArray(a)?i=await serialiseArray(a,s,t,i,r):"id"!==t&&"type"!==t&&(i=await serialiseAttr(a,t,i))}return{data:i}}catch(t){throw error(t)}}var index=t=>t.replace(/[-_][a-z\u00E0-\u00F6\u00F8-\u00FE]/g,t=>t.slice(1).toUpperCase()),index$1=t=>t.charAt(0).toLowerCase()+t.slice(1).replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,t=>"-"+t.toLowerCase()),index$2=t=>t.charAt(0).toLowerCase()+t.slice(1).replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g,t=>"_"+t.toLowerCase());exports.camel=index,exports.deattribute=deattribute,exports.deserialise=deserialise,exports.error=error,exports.filterIncludes=filterIncludes,exports.kebab=index$1,exports.linkRelationships=linkRelationships,exports.query=query,exports.serialise=serialise,exports.snake=index$2; | ||
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var deattribute=require("./deattribute.js"),error=require("./error.js"),filterIncludes=require("./filterIncludes.js"),linkRelationships=require("./linkRelationships.js"),deserialise=require("./deserialise.js"),query=require("./query.js"),serialise=require("./serialise.js"),camel=require("./camel.js"),kebab=require("./kebab.js"),snake=require("./snake.js");exports.deattribute=deattribute.deattribute,exports.error=error.error,exports.filterIncludes=filterIncludes.filterIncludes,exports.linkRelationships=linkRelationships.linkRelationships,exports.deserialise=deserialise.deserialise,exports.query=query.query,exports.serialise=serialise.serialise,exports.camel=camel,exports.kebab=kebab,exports.snake=snake; |
{ | ||
"version": "7.3.1-beta.1", | ||
"version": "7.3.1-beta.2", | ||
"name": "kitsu-core", | ||
@@ -16,2 +16,3 @@ "description": "Core serialisation and deserialsation functions for the kitsu JSON:API client", | ||
"module": "lib/index.mjs", | ||
"browser": "lib/index.browser.js", | ||
"types": "index.d.ts", | ||
@@ -48,10 +49,2 @@ "homepage": "https://github.com/wopian/kitsu/tree/master/packages/kitsu-core#readme", | ||
"limit": "1.3 kb" | ||
}, | ||
{ | ||
"path": "./node/index.js", | ||
"limit": "1.22 kb" | ||
}, | ||
{ | ||
"path": "./node/index.mjs", | ||
"limit": "1.24 kb" | ||
} | ||
@@ -58,0 +51,0 @@ ], |
@@ -30,3 +30,3 @@ <h1 align=center>Kitsu Core</h1> | ||
# | ||
# | ||
@@ -44,4 +44,3 @@ ## Features | ||
| -----------------: | :----------------: | :--: | :----: | :-----: | :----: | :--: | | ||
| `kitsu-core` | ≤ 1.2 kb | 8+ | 63+ | 60+ | 11+ | 17+ | | ||
| `kitsu-core/node`† | ≤ 1.1 kb | 8+ | | | | | | ||
| `kitsu-core`† | ≤ 1.2 kb | 8+ | 63+ | 60+ | 11+ | 17+ | | ||
@@ -63,3 +62,2 @@ \* Including all dependencies, minified & gzipped<br> | ||
import { camel } from 'kitsu-core' // ES Modules and Babel | ||
import { camel } from 'kitsu-core/node' // Lighter node-only package | ||
const { camel } = require('kitsu-core') // CommonJS and Browserify | ||
@@ -70,6 +68,6 @@ | ||
### Packd CDN | ||
### jsDelivr CDN | ||
```html | ||
<script src='https://bundle.run/kitsu-core@6?name=kitsuCore'></script> | ||
<script src='https://cdn.jsdelivr.net/npm/kitsu-core'></script> | ||
``` | ||
@@ -232,3 +230,3 @@ | ||
- `included` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** The response included object | ||
- `opts` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** | ||
- `opts` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** | ||
- `opts.id` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The relationship ID | ||
@@ -235,0 +233,0 @@ - `opts.type` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The relationship type |
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
55718
27
100
369