nativeEnum.js 732 B

1234567891011121314151617181920
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.parseNativeEnumDef = void 0;
  4. function parseNativeEnumDef(def) {
  5. const object = def.values;
  6. const actualKeys = Object.keys(def.values).filter((key) => {
  7. return typeof object[object[key]] !== "number";
  8. });
  9. const actualValues = actualKeys.map((key) => object[key]);
  10. const parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));
  11. return {
  12. type: parsedTypes.length === 1
  13. ? parsedTypes[0] === "string"
  14. ? "string"
  15. : "number"
  16. : ["string", "number"],
  17. enum: actualValues,
  18. };
  19. }
  20. exports.parseNativeEnumDef = parseNativeEnumDef;