UNPKG

type-fns

Version:

A set of types, type checks, and type guards for simpler, safer, and easier to read code.

34 lines 1.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createIsOfEnum = void 0; const withAssure_1 = require("../wrappers/withAssure"); /** * a generic fn that allows us to create type checks for enums. for example: * ```ts * // you have an enum * enum Planet { * ... * VENUS = 'VENUS', * EARTH = 'EARTH', * MARS = 'MARS', * ... * } * * // define a type check for your enum * const isPlanet = createIsOfEnum.assess(Planet); * * // use it to assess type for type guarded blocks * if (!isPlanet.assess(potentialPlanet)) throw new Error('is not a planet'); * * // use it to assure type for type guarded type casts * const planet: Planet = isPlanet.assure(potentialPlanet) * ``` * * ref: https://stackoverflow.com/a/58278753/3068233 */ const createIsOfEnum = (e) => { const check = (token) => Object.values(e).includes(token); return (0, withAssure_1.withAssure)(check); }; exports.createIsOfEnum = createIsOfEnum; //# sourceMappingURL=isOfEnum.js.map