UNPKG

@ncoderz/superenum

Version:

Simple, typesafe enums in TypeScript, fully compatible with standard JavaScript

1 lines 2.53 kB
"use strict";var superenum=(()=>{var e=Object.defineProperty,n=Object.getOwnPropertyDescriptor,t=Object.getOwnPropertyNames,l=Object.prototype.hasOwnProperty,r={};((n,t)=>{for(var l in t)e(n,l,{get:t[l],enumerable:!0})})(r,{Enum:()=>o});var u,f=new WeakMap;function o(e){let n=f.get(e),t=e;if(!n){let l=[];for(let n in e){let e=Number(n);!isNaN(e)&&t[t[e]]===e||l.push(n)}let r={t:l,l:new Map};for(let e of r.t){let n=t[e];r.l.set(n,e)}f.set(e,r),n=r}function l(){let e=new Map;for(let l of n.t){let n=t[l];e.set(l,n)}return n.u=e,e}function r(){let e=new Map;for(let l of n.t){let n=t[l],r="string"==typeof n?n.toLowerCase():n;e.set(r,l)}return n.o=e,e}function u(){let e=new Map;return n.i=e,e}function o(e,t){var u,f;if(null!=t&&t.ignoreCase&&"string"==typeof e){let t=null!=(u=n.u)?u:l(),o=(null!=(f=n.o)?f:r()).get(e.toLowerCase());return o?t.get(o):void 0}if(n.l.has(e))return e}function a(e,r){var u,f;let o=null!=(u=n.u)?u:l();return null!=r&&r.ignoreCase&&"string"==typeof e?(null!=(f=n.v)?f:function(){let e=new Map;for(let l of n.t){let n=t[l];e.set(l.toLowerCase(),n)}return n.v=e,e}()).get(e.toLowerCase()):o.get(`${e}`)}function i(){var e;return null!=(e=n.p)?e:function(){var e;let t=null!=(e=n.u)?e:l();return n.p=n.t.map(e=>t.get(e)),n.p}()}function c(){var e;return null!=(e=n.m)?e:function(){var e;let t=null!=(e=n.u)?e:l();return n.m=n.t.map(e=>[e,t.get(e)]),n.m}()}return{fromValue:o,fromKey:a,keyFromValue:function(e,t){var l;return null!=t&&t.ignoreCase&&"string"==typeof e?(null!=(l=n.o)?l:r()).get(e.toLowerCase()):n.l.get(e)},hasKey:function(e,n){return null!=a(e,n)},hasValue:function(e,n){return null!=o(e,n)},keys:()=>n.t,values:()=>i(),entries:()=>c(),[Symbol.iterator]:function*(){for(let e of i())yield e},setAllLabels:function(e){var t;let l=null!=(t=n.i)?t:u();for(let[n,t]of Object.entries(e)){let e=o(n);null!=e&&l.set(e,t)}},setLabels:function(e,t){var l;(null!=(l=n.i)?l:u()).set(e,t)},getLabels:function(e){var t,l;return null!=(l=(null!=(t=n.i)?t:u()).get(e))?l:{}},getLabel:function(e,t){var l,r,f;let o=null!=(r=(null!=(l=n.i)?l:u()).get(e))?r:{};if(!t)for(let n of Object.values(o))return null!=n?n:`${e}`;return null!=(f=o[t])?f:`${e}`}}}return o.fromArray=e=>{let n=e;return Array.isArray(n)||(n=[]),n.reduce((e,n)=>(e[n]=n,e),{})},u=r,((r,u,f,o)=>{if(u&&"object"==typeof u||"function"==typeof u)for(let a of t(u))!l.call(r,a)&&a!==f&&e(r,a,{get:()=>u[a],enumerable:!(o=n(u,a))||o.enumerable});return r})(e({},"__esModule",{value:!0}),u)})();//# sourceMappingURL=superenum.global.js.map