date.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { entityKind } from "../../entity.js";
  2. import { getColumnNameAndConfig } from "../../utils.js";
  3. import { MySqlColumn, MySqlColumnBuilder } from "./common.js";
  4. class MySqlDateBuilder extends MySqlColumnBuilder {
  5. static [entityKind] = "MySqlDateBuilder";
  6. constructor(name) {
  7. super(name, "date", "MySqlDate");
  8. }
  9. /** @internal */
  10. build(table) {
  11. return new MySqlDate(table, this.config);
  12. }
  13. }
  14. class MySqlDate extends MySqlColumn {
  15. static [entityKind] = "MySqlDate";
  16. constructor(table, config) {
  17. super(table, config);
  18. }
  19. getSQLType() {
  20. return `date`;
  21. }
  22. mapFromDriverValue(value) {
  23. return new Date(value);
  24. }
  25. }
  26. class MySqlDateStringBuilder extends MySqlColumnBuilder {
  27. static [entityKind] = "MySqlDateStringBuilder";
  28. constructor(name) {
  29. super(name, "string", "MySqlDateString");
  30. }
  31. /** @internal */
  32. build(table) {
  33. return new MySqlDateString(
  34. table,
  35. this.config
  36. );
  37. }
  38. }
  39. class MySqlDateString extends MySqlColumn {
  40. static [entityKind] = "MySqlDateString";
  41. constructor(table, config) {
  42. super(table, config);
  43. }
  44. getSQLType() {
  45. return `date`;
  46. }
  47. }
  48. function date(a, b) {
  49. const { name, config } = getColumnNameAndConfig(a, b);
  50. if (config?.mode === "string") {
  51. return new MySqlDateStringBuilder(name);
  52. }
  53. return new MySqlDateBuilder(name);
  54. }
  55. export {
  56. MySqlDate,
  57. MySqlDateBuilder,
  58. MySqlDateString,
  59. MySqlDateStringBuilder,
  60. date
  61. };
  62. //# sourceMappingURL=date.js.map