UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

56 lines (54 loc) 1.49 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import { castArray, invert } from 'lodash-uni'; // https://stackoverflow.com/questions/56415826/is-it-possible-to-precisely-type-invert-in-typescript /** * 构造枚举数据。 * * @param map 枚举映射数据 */ export function makeEnum(map) { var res = _extends({}, map, invert(map)); Object.defineProperties(res, { $list: { value: Object.keys(map).reduce(function (res, key) { res.push({ label: key, value: map[key] }); return res; }, []), enumerable: false, writable: false, configurable: false }, $buildList: { value: function (keys) { var labelMap = Array.isArray(keys) ? undefined : keys; keys = Array.isArray(keys) ? keys : Object.keys(keys); return Object.keys(map).reduce(function (res, key) { if (keys.includes(key)) { res.push({ label: (labelMap == null ? void 0 : labelMap[key]) || key, value: map[key] }); } return res; }, []); }, enumerable: false, writable: false, configurable: false }, $is: { value: function (value, keys) { return castArray(keys).some(function (key) { return value === key || value === res[key]; }); }, enumerable: false, writable: false, configurable: false } }); return res; }