UNPKG

object-no-new-keys

Version:

Check, does a plain object (AST/JSON) has any unique keys, not present in a reference object (another AST/JSON)

19 lines (17 loc) 5.85 kB
/** * @name object-no-new-keys * @fileoverview Check, does a plain object (AST/JSON) has any unique keys, not present in a reference object (another AST/JSON) * @version 5.1.9 * @author Roy Revelt, Codsen Ltd * @license MIT * {@link https://codsen.com/os/object-no-new-keys/} */ "use strict";var objectNoNewKeys=(()=>{var N=Object.create;var h=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames,w=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var j=(t,n,o)=>n in t?h(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,g=(t,n)=>{for(var o in n||(n={}))O.call(n,o)&&j(t,o,n[o]);if(w)for(var o of w(n))P.call(n,o)&&j(t,o,n[o]);return t};var M=(t,n)=>()=>(n||t((n={exports:{}}).exports,n),n.exports),L=(t,n)=>{for(var o in n)h(t,o,{get:n[o],enumerable:!0})},S=(t,n,o,l)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of T(n))!O.call(t,a)&&a!==o&&h(t,a,{get:()=>n[a],enumerable:!(l=E(n,a))||l.enumerable});return t};var F=(t,n,o)=>(o=t!=null?N(v(t)):{},S(n||!t||!t.__esModule?h(o,"default",{value:t,enumerable:!0}):o,t)),H=t=>S(h({},"__esModule",{value:!0}),t);var k=M((I,x)=>{"use strict";x.exports=J;function m(t){return t instanceof Buffer?Buffer.from(t):new t.constructor(t.buffer.slice(),t.byteOffset,t.length)}function J(t){if(t=t||{},t.circles)return R(t);let n=new Map;if(n.set(Date,s=>new Date(s)),n.set(Map,(s,u)=>new Map(l(Array.from(s),u))),n.set(Set,(s,u)=>new Set(l(Array.from(s),u))),t.constructorHandlers)for(let s of t.constructorHandlers)n.set(s[0],s[1]);let o=null;return t.proto?f:a;function l(s,u){let e=Object.keys(s),r=new Array(e.length);for(let i=0;i<e.length;i++){let c=e[i],p=s[c];typeof p!="object"||p===null?r[c]=p:p.constructor!==Object&&(o=n.get(p.constructor))?r[c]=o(p,u):ArrayBuffer.isView(p)?r[c]=m(p):r[c]=u(p)}return r}function a(s){if(typeof s!="object"||s===null)return s;if(Array.isArray(s))return l(s,a);if(s.constructor!==Object&&(o=n.get(s.constructor)))return o(s,a);let u={};for(let e in s){if(Object.hasOwnProperty.call(s,e)===!1)continue;let r=s[e];typeof r!="object"||r===null?u[e]=r:r.constructor!==Object&&(o=n.get(r.constructor))?u[e]=o(r,a):ArrayBuffer.isView(r)?u[e]=m(r):u[e]=a(r)}return u}function f(s){if(typeof s!="object"||s===null)return s;if(Array.isArray(s))return l(s,f);if(s.constructor!==Object&&(o=n.get(s.constructor)))return o(s,f);let u={};for(let e in s){let r=s[e];typeof r!="object"||r===null?u[e]=r:r.constructor!==Object&&(o=n.get(r.constructor))?u[e]=o(r,f):ArrayBuffer.isView(r)?u[e]=m(r):u[e]=f(r)}return u}}function R(t){let n=[],o=[],l=new Map;if(l.set(Date,e=>new Date(e)),l.set(Map,(e,r)=>new Map(f(Array.from(e),r))),l.set(Set,(e,r)=>new Set(f(Array.from(e),r))),t.constructorHandlers)for(let e of t.constructorHandlers)l.set(e[0],e[1]);let a=null;return t.proto?u:s;function f(e,r){let i=Object.keys(e),c=new Array(i.length);for(let p=0;p<i.length;p++){let d=i[p],y=e[d];if(typeof y!="object"||y===null)c[d]=y;else if(y.constructor!==Object&&(a=l.get(y.constructor)))c[d]=a(y,r);else if(ArrayBuffer.isView(y))c[d]=m(y);else{let A=n.indexOf(y);A!==-1?c[d]=o[A]:c[d]=r(y)}}return c}function s(e){if(typeof e!="object"||e===null)return e;if(Array.isArray(e))return f(e,s);if(e.constructor!==Object&&(a=l.get(e.constructor)))return a(e,s);let r={};n.push(e),o.push(r);for(let i in e){if(Object.hasOwnProperty.call(e,i)===!1)continue;let c=e[i];if(typeof c!="object"||c===null)r[i]=c;else if(c.constructor!==Object&&(a=l.get(c.constructor)))r[i]=a(c,s);else if(ArrayBuffer.isView(c))r[i]=m(c);else{let p=n.indexOf(c);p!==-1?r[i]=o[p]:r[i]=s(c)}}return n.pop(),o.pop(),r}function u(e){if(typeof e!="object"||e===null)return e;if(Array.isArray(e))return f(e,u);if(e.constructor!==Object&&(a=l.get(e.constructor)))return a(e,u);let r={};n.push(e),o.push(r);for(let i in e){let c=e[i];if(typeof c!="object"||c===null)r[i]=c;else if(c.constructor!==Object&&(a=l.get(c.constructor)))r[i]=a(c,u);else if(ArrayBuffer.isView(c))r[i]=m(c);else{let p=n.indexOf(c);p!==-1?r[i]=o[p]:r[i]=u(c)}}return n.pop(),o.pop(),r}}});var W={};L(W,{defaults:()=>D,noNewKeys:()=>U,version:()=>Q});var C=F(k(),1);var Z=(0,C.default)();function b(t){if(t==null||typeof t!="object")return!1;let n=Object.getPrototypeOf(t);return n!==null&&n!==Object.prototype&&Object.getPrototypeOf(n)!==null?!1:!(Symbol.iterator in t)&&!(Symbol.toStringTag in t)}function _(t){return typeof t=="string"}function $(t,n){return b(t)&&_(n)&&n in t}var B="5.1.9";var Q=B,D={mode:2};function U(t,n,o){if(o&&!b(o))throw new TypeError(`object-no-new-keys/noNewKeys(): [THROW_ID_02] resolvedOpts should be a plain object. It was given as ${JSON.stringify(o,null,4)} (type ${typeof o})`);let l=g(g({},D),o);if(typeof l.mode=="string"&&["1","2"].includes(l.mode))l.mode=+l.mode;else if(![1,2].includes(l.mode))throw new TypeError('object-no-new-keys/objectNoNewKeys(): [THROW_ID_01] resolvedOpts.mode should be "1" or "2" (string or number).');function a(f,s,u,e){let r;if(b(f))b(s)?Object.keys(f).forEach(i=>{$(s,i)?(b(f[i])||Array.isArray(f[i]))&&(r={path:e.path.length?`${e.path}.${i}`:i,res:e.res},e.res=a(f[i],s[i],u,r).res):(r=e.path.length?`${e.path}.${i}`:i,e.res.push(r))}):e.res=e.res.concat(Object.keys(f).map(i=>e.path.length?`${e.path}.${i}`:i));else if(Array.isArray(f))if(Array.isArray(s))for(let i=0,c=f.length;i<c;i++)r={path:`${e.path.length?e.path:""}[${i}]`,res:e.res},u.mode===2?e.res=a(f[i],s[0],u,r).res:e.res=a(f[i],s[i],u,r).res;else e.res=e.res.concat(f.map((i,c)=>`${e.path.length?e.path:""}[${c}]`));return e}return a(t,n,l,{path:"",res:[]}).res}return H(W);})(); /** * @name codsen-utils * @fileoverview Various utility functions * @version 1.6.8 * @author Roy Revelt, Codsen Ltd * @license MIT * {@link https://codsen.com/os/codsen-utils/} */