gmail-mbox-stats
Version:
Nice tool to analyze Gmail MBOX file
34 lines (33 loc) • 1 kB
JavaScript
;
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;