hal-json-normalizer
Version:
HAL JSON API response normalizer
1 lines • 4.93 kB
JavaScript
(()=>{"use strict";var e={n:r=>{var n=r&&r.__esModule?()=>r.default:()=>r;return e.d(n,{a:n}),n},d:(r,n)=>{for(var t in n)e.o(n,t)&&!e.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:n[t]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},r={};e.r(r),e.d(r,{default:()=>L});const n=require("lodash/camelCase");var t=e.n(n);const o=require("lodash/isArray");var i=e.n(o);const a=require("lodash/cloneDeep");var l=e.n(a);const u=require("lodash/keys");var c=e.n(u);const f=require("lodash/merge");var s=e.n(f);const d=require("lodash/difference");var y,b=e.n(d);function m(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n<r;n++)t[n]=e[n];return t}function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function v(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function h(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?v(Object(n),!0).forEach((function(r){O(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))}))}return e}function O(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function S(e,r){return e&&e.href?e.templated?e:h(h({},e),{},{href:r(e.href)}):e}function g(e,r){return i()(e)?e.map((function(e){return S(e,r)})):S(e,r)}function j(e){if(null===e||"object"!==p(e))return e;if(i()(e))return e.map(j);var r={};return c()(e).forEach((function(n){r[t()(n)]=j(e[n])})),r}function _(e,r){var n=Object.keys(e);return 1===n.length&&n[0]===r}function k(e){return"object"===p(e)&&null!==e&&_(e,"_links")&&_(e._links,"self")}function w(e,r,n){return n.filterReferences&&k(e)||s()(r,y(e,n)),S(l()(((e||{})._links||{}).self)||null,n.normalizeUri)}function K(e,r,n){return i()(e)?e.map((function(e){return w(e,r,n)})):w(e,r,n)}function P(e,r,n){var o=n.camelizeKeys,i=O({},r,{});return c()(e._embedded).forEach((function(a){o?i[r][t()(a)]=j(K(e._embedded[a],i,n)):i[r][a]=K(e._embedded[a],i,n)})),i}function A(e,r,n){var o=n.camelizeKeys,i=n.normalizeUri,a=O({},r,{});return c()(e._links).forEach((function(n){"self"!==n&&(o?a[r][t()(n)]=g(l()(e._links[n]),i):a[r][n]=g(l()(e._links[n]),i))})),a}function E(e,r,n,t){var o,i={},a="".concat(e,"#").concat(r);return i[a]=(O(o={},t.embeddedStandaloneListKey,n),O(o,t.metaKey,{self:a,virtual:!0,owningResource:e,owningRelation:r}),o),i[e]={},i[e][r]={href:a,virtual:!0},i}function z(e,r,n){var t,o={},i=P(e,r,n),a=A(e,r,n);return s()(o,a),s()(o,i),c()(i[r]).forEach((function(e){var t,l;Array.isArray(i[r][e])&&(r in a&&e in a[r]&&"object"===p(l=a[r][e])&&null!==l&&_(l,"href")?(o[r][e]=a[r][e],o[a[r][e].href]=(O(t={},n.embeddedStandaloneListKey,i[r][e]),O(t,n.metaKey,{self:a[r][e].href}),t)):n.virtualSelfLinks&&e!==n.embeddedStandaloneListKey&&(delete o[r][e],s()(o,E(r,e,i[r][e],n))))})),n.virtualSelfLinks&&b()(c()(a[r]),[].concat((t=c()(i[r]),function(e){if(Array.isArray(e))return m(e)}(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,r){if(e){if("string"==typeof e)return m(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,r):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[n.embeddedStandaloneListKey])).forEach((function(e){Array.isArray(a[r][e])&&(delete o[r][e],s()(o,E(r,e,a[r][e],n)))})),o}function L(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=h({camelizeKeys:!0,normalizeUri:function(e){return e},metaKey:"_meta",filterReferences:!1},r);return n.filterReferences&&k(e)?{}:y(e,n)}y=function(e,r){var n,o=r.camelizeKeys,i=r.normalizeUri,a=r.metaKey;if(!((n=e)&&n._links&&n._links.self&&null!=n._links.self.href))return e;var u=i(e._links.self.href),f=O({},u,{});return c()(e).filter((function(e){return"_embedded"!==e&&"_links"!==e})).forEach((function(r){o?r===a?f[u][a]=j(l()(e[r])):f[u][t()(r)]=j(l()(e[r])):f[u][r]=l()(e[r])})),r.embeddedStandaloneListKey?s()(f,z(e,u,r)):(s()(f,A(e,u,r)),s()(f,P(e,u,r))),f[u][a]=f[u][a]||{},f[u][a].self=u,f},module.exports=r})();