varchar.js 1020 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import { entityKind } from "../../entity.js";
  2. import { getColumnNameAndConfig } from "../../utils.js";
  3. import { MySqlColumn, MySqlColumnBuilder } from "./common.js";
  4. class MySqlVarCharBuilder extends MySqlColumnBuilder {
  5. static [entityKind] = "MySqlVarCharBuilder";
  6. /** @internal */
  7. constructor(name, config) {
  8. super(name, "string", "MySqlVarChar");
  9. this.config.length = config.length;
  10. this.config.enum = config.enum;
  11. }
  12. /** @internal */
  13. build(table) {
  14. return new MySqlVarChar(
  15. table,
  16. this.config
  17. );
  18. }
  19. }
  20. class MySqlVarChar extends MySqlColumn {
  21. static [entityKind] = "MySqlVarChar";
  22. length = this.config.length;
  23. enumValues = this.config.enum;
  24. getSQLType() {
  25. return this.length === void 0 ? `varchar` : `varchar(${this.length})`;
  26. }
  27. }
  28. function varchar(a, b) {
  29. const { name, config } = getColumnNameAndConfig(a, b);
  30. return new MySqlVarCharBuilder(name, config);
  31. }
  32. export {
  33. MySqlVarChar,
  34. MySqlVarCharBuilder,
  35. varchar
  36. };
  37. //# sourceMappingURL=varchar.js.map