UNPKG

gmail-mbox-stats

Version:
34 lines (33 loc) 1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCoolEnum = void 0; // generate type-safe object (as enum) from array of strings const createCoolEnum = (arrInput) => { const arr = arrInput; const asSet = new Set(arr); if (asSet.size !== arr.length) { throw new Error("groupIdsArr should have unique elements"); } const asObjEnum = arr.reduce((accu, curr) => { accu[curr] = curr; return accu; }, {}); const asStrToInd = arr.reduce((accu, curr, index) => { accu[curr] = index; return accu; }, {}); const final = { asArr: arr, asObjEnum, asSet, asStrToInd, }; return final; }; exports.createCoolEnum = createCoolEnum; // test: // let jijdfdf = ["vbvvbvbbvb", "qeqeqeqe", "i7777", "i7777"] as const; // const qqdqd = createCoolEnum(jijdfdf); // const qqdqd2 = createCoolEnum(["dfdf", "bbbbb"]); // qqdqd.asObjEnum.i7777; // qqdqd2.asObjEnum.dfdf;