enum.cjs 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. "use strict";
  2. var __defProp = Object.defineProperty;
  3. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  4. var __getOwnPropNames = Object.getOwnPropertyNames;
  5. var __hasOwnProp = Object.prototype.hasOwnProperty;
  6. var __export = (target, all) => {
  7. for (var name in all)
  8. __defProp(target, name, { get: all[name], enumerable: true });
  9. };
  10. var __copyProps = (to, from, except, desc) => {
  11. if (from && typeof from === "object" || typeof from === "function") {
  12. for (let key of __getOwnPropNames(from))
  13. if (!__hasOwnProp.call(to, key) && key !== except)
  14. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  15. }
  16. return to;
  17. };
  18. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  19. var enum_exports = {};
  20. __export(enum_exports, {
  21. MySqlEnumColumn: () => MySqlEnumColumn,
  22. MySqlEnumColumnBuilder: () => MySqlEnumColumnBuilder,
  23. MySqlEnumObjectColumn: () => MySqlEnumObjectColumn,
  24. MySqlEnumObjectColumnBuilder: () => MySqlEnumObjectColumnBuilder,
  25. mysqlEnum: () => mysqlEnum
  26. });
  27. module.exports = __toCommonJS(enum_exports);
  28. var import_entity = require("../../entity.cjs");
  29. var import_common = require("./common.cjs");
  30. class MySqlEnumColumnBuilder extends import_common.MySqlColumnBuilder {
  31. static [import_entity.entityKind] = "MySqlEnumColumnBuilder";
  32. constructor(name, values) {
  33. super(name, "string", "MySqlEnumColumn");
  34. this.config.enumValues = values;
  35. }
  36. /** @internal */
  37. build(table) {
  38. return new MySqlEnumColumn(
  39. table,
  40. this.config
  41. );
  42. }
  43. }
  44. class MySqlEnumColumn extends import_common.MySqlColumn {
  45. static [import_entity.entityKind] = "MySqlEnumColumn";
  46. enumValues = this.config.enumValues;
  47. getSQLType() {
  48. return `enum(${this.enumValues.map((value) => `'${value}'`).join(",")})`;
  49. }
  50. }
  51. class MySqlEnumObjectColumnBuilder extends import_common.MySqlColumnBuilder {
  52. static [import_entity.entityKind] = "MySqlEnumObjectColumnBuilder";
  53. constructor(name, values) {
  54. super(name, "string", "MySqlEnumObjectColumn");
  55. this.config.enumValues = values;
  56. }
  57. /** @internal */
  58. build(table) {
  59. return new MySqlEnumObjectColumn(
  60. table,
  61. this.config
  62. );
  63. }
  64. }
  65. class MySqlEnumObjectColumn extends import_common.MySqlColumn {
  66. static [import_entity.entityKind] = "MySqlEnumObjectColumn";
  67. enumValues = this.config.enumValues;
  68. getSQLType() {
  69. return `enum(${this.enumValues.map((value) => `'${value}'`).join(",")})`;
  70. }
  71. }
  72. function mysqlEnum(a, b) {
  73. if (typeof a === "string" && Array.isArray(b) || Array.isArray(a)) {
  74. const name = typeof a === "string" && a.length > 0 ? a : "";
  75. const values = (typeof a === "string" ? b : a) ?? [];
  76. if (values.length === 0) {
  77. throw new Error(`You have an empty array for "${name}" enum values`);
  78. }
  79. return new MySqlEnumColumnBuilder(name, values);
  80. }
  81. if (typeof a === "string" && typeof b === "object" || typeof a === "object") {
  82. const name = typeof a === "object" ? "" : a;
  83. const values = typeof a === "object" ? Object.values(a) : typeof b === "object" ? Object.values(b) : [];
  84. if (values.length === 0) {
  85. throw new Error(`You have an empty array for "${name}" enum values`);
  86. }
  87. return new MySqlEnumObjectColumnBuilder(name, values);
  88. }
  89. }
  90. // Annotate the CommonJS export names for ESM import in node:
  91. 0 && (module.exports = {
  92. MySqlEnumColumn,
  93. MySqlEnumColumnBuilder,
  94. MySqlEnumObjectColumn,
  95. MySqlEnumObjectColumnBuilder,
  96. mysqlEnum
  97. });
  98. //# sourceMappingURL=enum.cjs.map