nodecommons-esm-database 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/classes/commons-database-key.d.mts +15 -15
  2. package/dist/classes/commons-database-key.mjs +27 -27
  3. package/dist/classes/commons-database-key.mjs.map +1 -1
  4. package/dist/classes/commons-database-param.d.mts +6 -6
  5. package/dist/classes/commons-database-param.mjs +12 -13
  6. package/dist/classes/commons-database-param.mjs.map +1 -1
  7. package/dist/classes/commons-database-type-base62-big-id.d.mts +2 -3
  8. package/dist/classes/commons-database-type-base62-big-id.mjs +4 -13
  9. package/dist/classes/commons-database-type-base62-big-id.mjs.map +1 -1
  10. package/dist/classes/commons-database-type-base62-long-id.d.mts +2 -3
  11. package/dist/classes/commons-database-type-base62-long-id.mjs +4 -13
  12. package/dist/classes/commons-database-type-base62-long-id.mjs.map +1 -1
  13. package/dist/classes/commons-database-type-big-int.d.mts +5 -4
  14. package/dist/classes/commons-database-type-big-int.mjs +13 -15
  15. package/dist/classes/commons-database-type-big-int.mjs.map +1 -1
  16. package/dist/classes/commons-database-type-binary.d.mts +5 -1
  17. package/dist/classes/commons-database-type-binary.mjs +20 -0
  18. package/dist/classes/commons-database-type-binary.mjs.map +1 -1
  19. package/dist/classes/commons-database-type-boolean.d.mts +5 -2
  20. package/dist/classes/commons-database-type-boolean.mjs +14 -2
  21. package/dist/classes/commons-database-type-boolean.mjs.map +1 -1
  22. package/dist/classes/commons-database-type-date-time.d.mts +5 -3
  23. package/dist/classes/commons-database-type-date-time.mjs +20 -6
  24. package/dist/classes/commons-database-type-date-time.mjs.map +1 -1
  25. package/dist/classes/commons-database-type-date.d.mts +5 -2
  26. package/dist/classes/commons-database-type-date.mjs +14 -2
  27. package/dist/classes/commons-database-type-date.mjs.map +1 -1
  28. package/dist/classes/commons-database-type-double.d.mts +2 -4
  29. package/dist/classes/commons-database-type-double.mjs +2 -18
  30. package/dist/classes/commons-database-type-double.mjs.map +1 -1
  31. package/dist/classes/commons-database-type-email.d.mts +2 -3
  32. package/dist/classes/commons-database-type-email.mjs +4 -13
  33. package/dist/classes/commons-database-type-email.mjs.map +1 -1
  34. package/dist/classes/commons-database-type-encrypted.mjs +2 -2
  35. package/dist/classes/commons-database-type-encrypted.mjs.map +1 -1
  36. package/dist/classes/commons-database-type-enum-array.d.mts +8 -0
  37. package/dist/classes/commons-database-type-enum-array.mjs +17 -0
  38. package/dist/classes/commons-database-type-enum-array.mjs.map +1 -0
  39. package/dist/classes/commons-database-type-enum.d.mts +9 -7
  40. package/dist/classes/commons-database-type-enum.mjs +30 -28
  41. package/dist/classes/commons-database-type-enum.mjs.map +1 -1
  42. package/dist/classes/commons-database-type-fixed-date-time.d.mts +8 -2
  43. package/dist/classes/commons-database-type-fixed-date-time.mjs +37 -2
  44. package/dist/classes/commons-database-type-fixed-date-time.mjs.map +1 -1
  45. package/dist/classes/commons-database-type-fixed-date.d.mts +7 -5
  46. package/dist/classes/commons-database-type-fixed-date.mjs +37 -18
  47. package/dist/classes/commons-database-type-fixed-date.mjs.map +1 -1
  48. package/dist/classes/commons-database-type-fixed-time.d.mts +8 -5
  49. package/dist/classes/commons-database-type-fixed-time.mjs +51 -20
  50. package/dist/classes/commons-database-type-fixed-time.mjs.map +1 -1
  51. package/dist/classes/commons-database-type-float.d.mts +2 -4
  52. package/dist/classes/commons-database-type-float.mjs +3 -18
  53. package/dist/classes/commons-database-type-float.mjs.map +1 -1
  54. package/dist/classes/commons-database-type-hex-rgb.d.mts +2 -3
  55. package/dist/classes/commons-database-type-hex-rgb.mjs +4 -19
  56. package/dist/classes/commons-database-type-hex-rgb.mjs.map +1 -1
  57. package/dist/classes/commons-database-type-id-name.d.mts +2 -3
  58. package/dist/classes/commons-database-type-id-name.mjs +4 -13
  59. package/dist/classes/commons-database-type-id-name.mjs.map +1 -1
  60. package/dist/classes/commons-database-type-id.d.mts +2 -4
  61. package/dist/classes/commons-database-type-id.mjs +3 -20
  62. package/dist/classes/commons-database-type-id.mjs.map +1 -1
  63. package/dist/classes/commons-database-type-int.d.mts +2 -4
  64. package/dist/classes/commons-database-type-int.mjs +3 -20
  65. package/dist/classes/commons-database-type-int.mjs.map +1 -1
  66. package/dist/classes/commons-database-type-md5.d.mts +2 -3
  67. package/dist/classes/commons-database-type-md5.mjs +4 -13
  68. package/dist/classes/commons-database-type-md5.mjs.map +1 -1
  69. package/dist/classes/commons-database-type-serial-id.d.mts +0 -2
  70. package/dist/classes/commons-database-type-serial-id.mjs +0 -18
  71. package/dist/classes/commons-database-type-serial-id.mjs.map +1 -1
  72. package/dist/classes/commons-database-type-small-int.d.mts +2 -4
  73. package/dist/classes/commons-database-type-small-int.mjs +2 -20
  74. package/dist/classes/commons-database-type-small-int.mjs.map +1 -1
  75. package/dist/classes/commons-database-type-string-array.d.mts +6 -5
  76. package/dist/classes/commons-database-type-string-array.mjs +30 -22
  77. package/dist/classes/commons-database-type-string-array.mjs.map +1 -1
  78. package/dist/classes/commons-database-type-string.d.mts +6 -4
  79. package/dist/classes/commons-database-type-string.mjs +16 -8
  80. package/dist/classes/commons-database-type-string.mjs.map +1 -1
  81. package/dist/classes/commons-database-type-text.d.mts +2 -3
  82. package/dist/classes/commons-database-type-text.mjs +2 -9
  83. package/dist/classes/commons-database-type-text.mjs.map +1 -1
  84. package/dist/classes/commons-database-type-time.d.mts +6 -3
  85. package/dist/classes/commons-database-type-time.mjs +23 -30
  86. package/dist/classes/commons-database-type-time.mjs.map +1 -1
  87. package/dist/classes/commons-database-type-tiny-int-enum.d.mts +6 -3
  88. package/dist/classes/commons-database-type-tiny-int-enum.mjs +21 -12
  89. package/dist/classes/commons-database-type-tiny-int-enum.mjs.map +1 -1
  90. package/dist/classes/commons-database-type-tiny-int.d.mts +2 -4
  91. package/dist/classes/commons-database-type-tiny-int.mjs +2 -20
  92. package/dist/classes/commons-database-type-tiny-int.mjs.map +1 -1
  93. package/dist/classes/commons-database-type-url.d.mts +2 -3
  94. package/dist/classes/commons-database-type-url.mjs +4 -13
  95. package/dist/classes/commons-database-type-url.mjs.map +1 -1
  96. package/dist/classes/commons-database-type.d.mts +14 -11
  97. package/dist/classes/commons-database-type.mjs +37 -28
  98. package/dist/classes/commons-database-type.mjs.map +1 -1
  99. package/dist/classes/integer.d.mts +7 -0
  100. package/dist/classes/integer.mjs +20 -0
  101. package/dist/classes/integer.mjs.map +1 -0
  102. package/dist/classes/{commons-database-type-number.d.mts → number.d.mts} +6 -2
  103. package/dist/classes/{commons-database-type-number.mjs → number.mjs} +24 -5
  104. package/dist/classes/number.mjs.map +1 -0
  105. package/dist/classes/regex-string.d.mts +11 -0
  106. package/dist/classes/regex-string.mjs +27 -0
  107. package/dist/classes/regex-string.mjs.map +1 -0
  108. package/dist/classes/string.d.mts +8 -0
  109. package/dist/classes/string.mjs +23 -0
  110. package/dist/classes/string.mjs.map +1 -0
  111. package/dist/helpers/commons-tallies.d.mts +3 -2
  112. package/dist/helpers/commons-tallies.mjs +4 -4
  113. package/dist/helpers/commons-tallies.mjs.map +1 -1
  114. package/dist/index.d.mts +9 -5
  115. package/dist/index.mjs +7 -3
  116. package/dist/index.mjs.map +1 -1
  117. package/dist/services/commons-sql-database.service.d.mts +24 -29
  118. package/dist/services/commons-sql-database.service.mjs +56 -52
  119. package/dist/services/commons-sql-database.service.mjs.map +1 -1
  120. package/dist/types/tcommons-database-params.d.mts +4 -1
  121. package/dist/types/tcommons-database-postgres-interval.d.mts +10 -0
  122. package/dist/types/tcommons-database-postgres-interval.mjs +19 -0
  123. package/dist/types/tcommons-database-postgres-interval.mjs.map +1 -0
  124. package/dist/types/tcommons-database-types.d.mts +4 -1
  125. package/package.json +2 -2
  126. package/dist/classes/commons-database-type-number.mjs.map +0 -1
  127. package/dist/classes/fixed-date.d.mts +0 -8
  128. package/dist/classes/fixed-date.mjs +0 -33
  129. package/dist/classes/fixed-date.mjs.map +0 -1
@@ -1,23 +1,7 @@
1
- import { commonsTypeHasPropertyNumber, commonsTypeHasPropertyNumberOrUndefined, commonsTypeAssertDate } from 'tscommons-esm-core';
1
+ import { commonsTypeHasPropertyNumber, commonsTypeAssertDate } from 'tscommons-esm-core';
2
2
  import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
3
+ import { isTCommonsDatabaseInternalPostgresInterval } from '../types/tcommons-database-postgres-interval.mjs';
3
4
  import { CommonsDatabaseType } from './commons-database-type.mjs';
4
- function isTPostgresInterval(test) {
5
- if (!commonsTypeHasPropertyNumberOrUndefined(test, 'years'))
6
- return false;
7
- if (!commonsTypeHasPropertyNumberOrUndefined(test, 'months'))
8
- return false;
9
- if (!commonsTypeHasPropertyNumberOrUndefined(test, 'days'))
10
- return false;
11
- if (!commonsTypeHasPropertyNumberOrUndefined(test, 'hours'))
12
- return false;
13
- if (!commonsTypeHasPropertyNumberOrUndefined(test, 'minutes'))
14
- return false;
15
- if (!commonsTypeHasPropertyNumberOrUndefined(test, 'seconds'))
16
- return false;
17
- if (!commonsTypeHasPropertyNumberOrUndefined(test, 'milliseconds'))
18
- return false;
19
- return true;
20
- }
21
5
  export class CommonsDatabaseTypeTime extends CommonsDatabaseType {
22
6
  renderEngineType(engine) {
23
7
  switch (engine) {
@@ -29,29 +13,38 @@ export class CommonsDatabaseTypeTime extends CommonsDatabaseType {
29
13
  throw new Error('This type has not been defined for this database engine');
30
14
  }
31
15
  }
32
- assert(value) {
33
- super.assert(value);
16
+ assertIn(value) {
17
+ super.assertIn(value);
34
18
  if (value === undefined)
35
19
  return;
36
20
  commonsTypeAssertDate(value);
37
21
  }
38
- processOut(value, engine) {
22
+ assertOut(value, engine) {
23
+ super.assertOut(value, engine);
39
24
  if (value === undefined || value === null)
40
- return undefined;
41
- if (engine === ECommonsDatabaseEngine.POSTGRES && isTPostgresInterval(value)) {
25
+ return;
26
+ if (engine === ECommonsDatabaseEngine.POSTGRES && isTCommonsDatabaseInternalPostgresInterval(value))
27
+ return;
28
+ commonsTypeAssertDate(value);
29
+ }
30
+ encode(value, _engine) {
31
+ return value;
32
+ }
33
+ decode(value, engine) {
34
+ if (engine === ECommonsDatabaseEngine.POSTGRES && isTCommonsDatabaseInternalPostgresInterval(value)) {
42
35
  const time = new Date(0);
43
36
  // ignore the date components
44
- if (commonsTypeHasPropertyNumber(value, 'hours'))
45
- time.setHours(value.hours);
46
- if (commonsTypeHasPropertyNumber(value, 'minutes'))
47
- time.setMinutes(value.minutes);
48
- if (commonsTypeHasPropertyNumber(value, 'seconds'))
49
- time.setSeconds(value.seconds);
50
37
  if (commonsTypeHasPropertyNumber(value, 'milliseconds'))
51
38
  time.setMilliseconds(value.milliseconds);
39
+ if (commonsTypeHasPropertyNumber(value, 'seconds'))
40
+ time.setSeconds(value.seconds);
41
+ if (commonsTypeHasPropertyNumber(value, 'minutes'))
42
+ time.setMinutes(value.minutes);
43
+ if (commonsTypeHasPropertyNumber(value, 'hours'))
44
+ time.setHours(value.hours);
52
45
  return time;
53
46
  }
54
- return value; // eslint-disable-line @typescript-eslint/no-unsafe-return
47
+ return value;
55
48
  }
56
49
  }
57
50
  //# sourceMappingURL=commons-database-type-time.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"commons-database-type-time.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-time.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,uCAAuC,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAElI,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAYlE,SAAS,mBAAmB,CAAC,IAAa;IACzC,IAAI,CAAC,uCAAuC,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,IAAI,CAAC,uCAAuC,CAAC,IAAI,EAAE,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3E,IAAI,CAAC,uCAAuC,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,CAAC,uCAAuC,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1E,IAAI,CAAC,uCAAuC,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,uCAAuC,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,CAAC,uCAAuC,CAAC,IAAI,EAAE,cAAc,CAAC;QAAE,OAAO,KAAK,CAAC;IAEjF,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,OAAO,uBAAwB,SAAQ,mBAAmB;IACrD,gBAAgB,CAAC,MAA8B;QACxD,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,sBAAsB,CAAC,KAAK,CAAC;YAClC,KAAK,sBAAsB,CAAC,QAAQ,CAAC;YACrC,KAAK,sBAAsB,CAAC,MAAM;gBACjC,OAAO,MAAM,CAAC;YACf;gBACC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;IACF,CAAC;IAEe,MAAM,CAAC,KAAc;QACpC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEe,UAAU,CAAC,KAAU,EAAE,MAA8B;QACpE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5D,IAAI,MAAM,KAAK,sBAAsB,CAAC,QAAQ,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAE/B,6BAA6B;YAC7B,IAAI,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;YAC9E,IAAI,4BAA4B,CAAC,KAAK,EAAE,SAAS,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;YACpF,IAAI,4BAA4B,CAAC,KAAK,EAAE,SAAS,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;YACpF,IAAI,4BAA4B,CAAC,KAAK,EAAE,cAAc,CAAC;gBAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAa,CAAC,CAAC;YAEnG,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,0DAA0D;IACzE,CAAC;CACD"}
1
+ {"version":3,"file":"commons-database-type-time.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-time.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,0CAA0C,EAA4C,MAAM,kDAAkD,CAAC;AAExJ,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,OAAO,uBAAwB,SAAQ,mBAAwE;IAC1G,gBAAgB,CAAC,MAA8B;QACxD,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,sBAAsB,CAAC,KAAK,CAAC;YAClC,KAAK,sBAAsB,CAAC,QAAQ,CAAC;YACrC,KAAK,sBAAsB,CAAC,MAAM;gBACjC,OAAO,MAAM,CAAC;YACf;gBACC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;IACF,CAAC;IAEe,QAAQ,CAAC,KAAqB;QAC7C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEe,SAAS,CACvB,KAAmE,EACnE,MAA8B;QAE/B,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAElD,IAAI,MAAM,KAAK,sBAAsB,CAAC,QAAQ,IAAI,0CAA0C,CAAC,KAAK,CAAC;YAAE,OAAO;QAE5G,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAES,MAAM,CAAC,KAAW,EAAE,OAA+B;QAC5D,OAAO,KAAK,CAAC;IACd,CAAC;IAES,MAAM,CAAC,KAAoD,EAAE,MAA8B;QACpG,IAAI,MAAM,KAAK,sBAAsB,CAAC,QAAQ,IAAI,0CAA0C,CAAC,KAAK,CAAC,EAAE,CAAC;YACrG,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAE/B,6BAA6B;YAC7B,IAAI,4BAA4B,CAAC,KAAK,EAAE,cAAc,CAAC;gBAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAa,CAAC,CAAC;YACnG,IAAI,4BAA4B,CAAC,KAAK,EAAE,SAAS,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;YACpF,IAAI,4BAA4B,CAAC,KAAK,EAAE,SAAS,CAAC;gBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAQ,CAAC,CAAC;YACpF,IAAI,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAM,CAAC,CAAC;YAE9E,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,KAAa,CAAC;IACtB,CAAC;CACD"}
@@ -2,8 +2,11 @@ import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
2
2
  import { ECommonsDatabaseTypeNull } from '../enums/ecommons-database-type-null.mjs';
3
3
  import { CommonsDatabaseTypeTinyInt } from './commons-database-type-tiny-int.mjs';
4
4
  export declare class CommonsDatabaseTypeTinyIntEnum extends CommonsDatabaseTypeTinyInt {
5
- private options;
6
- constructor(options: number[], notNull: ECommonsDatabaseTypeNull, defaultValue?: number, primaryKey?: boolean);
5
+ private internalOptions;
6
+ constructor(internalOptions: number[], notNull: ECommonsDatabaseTypeNull, defaultValue?: number, primaryKey?: boolean);
7
+ get options(): number[];
7
8
  renderAppendCheck(modifiers: string[], fieldname: string, engine: ECommonsDatabaseEngine): string | undefined;
8
- assert(value: any): void | never;
9
+ private assertOption;
10
+ assertIn(value: number | undefined): void | never;
11
+ assertOut(value: number | null | undefined, engine: ECommonsDatabaseEngine): void | never;
9
12
  }
@@ -1,20 +1,22 @@
1
- import { commonsTypeIsNumber } from 'tscommons-esm-core';
2
1
  import { commonsDatabaseDelimit } from '../helpers/commons-database.mjs';
3
2
  import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
4
3
  import { ECommonsDatabaseTypeSigned } from '../enums/ecommons-database-type-signed.mjs';
5
4
  import { CommonsDatabaseTypeTinyInt } from './commons-database-type-tiny-int.mjs';
6
5
  export class CommonsDatabaseTypeTinyIntEnum extends CommonsDatabaseTypeTinyInt {
7
- options;
8
- constructor(options, notNull, defaultValue, primaryKey = false) {
6
+ internalOptions;
7
+ constructor(internalOptions, notNull, defaultValue, primaryKey = false) {
9
8
  super(ECommonsDatabaseTypeSigned.UNSIGNED, notNull, defaultValue, primaryKey);
10
- this.options = options;
11
- if (options.length === 0)
9
+ this.internalOptions = internalOptions;
10
+ if (internalOptions.length === 0)
12
11
  throw new Error('TinyIntEnum cannot have a zero length array of options');
13
12
  }
13
+ get options() {
14
+ return this.internalOptions.slice();
15
+ }
14
16
  renderAppendCheck(modifiers, fieldname, engine) {
15
17
  switch (engine) {
16
18
  case ECommonsDatabaseEngine.POSTGRES:
17
- modifiers.push(`CHECK (${commonsDatabaseDelimit(fieldname, engine)} IN (${this.options.join(',')}))`);
19
+ modifiers.push(`CHECK (${commonsDatabaseDelimit(fieldname, engine)} IN (${this.internalOptions.join(',')}))`);
18
20
  return;
19
21
  case ECommonsDatabaseEngine.MYSQL:
20
22
  case ECommonsDatabaseEngine.SQLITE:
@@ -23,14 +25,21 @@ export class CommonsDatabaseTypeTinyIntEnum extends CommonsDatabaseTypeTinyInt {
23
25
  throw new Error('Signing support has not been defined for this database engine');
24
26
  }
25
27
  }
26
- assert(value) {
27
- super.assert(value);
28
+ assertOption(value) {
29
+ if (!this.internalOptions.includes(value))
30
+ throw new Error('TINYINTENUM is not a value in the ENUM array');
31
+ }
32
+ assertIn(value) {
33
+ super.assertIn(value);
28
34
  if (value === undefined)
29
35
  return;
30
- if (!commonsTypeIsNumber(value))
31
- throw new Error('TINYINTENUM is not a number');
32
- if (!this.options.includes(value))
33
- throw new Error('TINYINTENUM is not a value in the ENUM array');
36
+ this.assertOption(value);
37
+ }
38
+ assertOut(value, engine) {
39
+ super.assertOut(value, engine);
40
+ if (value === undefined || value === null)
41
+ return;
42
+ this.assertOption(value);
34
43
  }
35
44
  }
36
45
  //# sourceMappingURL=commons-database-type-tiny-int-enum.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"commons-database-type-tiny-int-enum.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-tiny-int-enum.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAExF,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,MAAM,OAAO,8BAA+B,SAAQ,0BAA0B;IAEnE;IADV,YACU,OAAiB,EACzB,OAAiC,EACjC,YAAqB,EACrB,aAAsB,KAAK;QAE5B,KAAK,CACH,0BAA0B,CAAC,QAAQ,EACnC,OAAO,EACP,YAAY,EACZ,UAAU,CACX,CAAC;QAVO,YAAO,GAAP,OAAO,CAAU;QAY1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IACrG,CAAC;IAEe,iBAAiB,CAAC,SAAmB,EAAE,SAAiB,EAAE,MAA8B;QACvG,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,sBAAsB,CAAC,QAAQ;gBACnC,SAAS,CAAC,IAAI,CAAC,UAAU,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtG,OAAO;YACR,KAAK,sBAAsB,CAAC,KAAK,CAAC;YAClC,KAAK,sBAAsB,CAAC,MAAM;gBACjC,OAAO;YACR;gBACC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;IACF,CAAC;IAEe,MAAM,CAAC,KAAU;QAChC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpG,CAAC;CACD"}
1
+ {"version":3,"file":"commons-database-type-tiny-int-enum.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-tiny-int-enum.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AAExF,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,MAAM,OAAO,8BAA+B,SAAQ,0BAA0B;IAEnE;IADV,YACU,eAAyB,EACjC,OAAiC,EACjC,YAAqB,EACrB,aAAsB,KAAK;QAE5B,KAAK,CACH,0BAA0B,CAAC,QAAQ,EACnC,OAAO,EACP,YAAY,EACZ,UAAU,CACX,CAAC;QAVO,oBAAe,GAAf,eAAe,CAAU;QAYlC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC7G,CAAC;IAED,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAEe,iBAAiB,CAAC,SAAmB,EAAE,SAAiB,EAAE,MAA8B;QACvG,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,sBAAsB,CAAC,QAAQ;gBACnC,SAAS,CAAC,IAAI,CAAC,UAAU,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9G,OAAO;YACR,KAAK,sBAAsB,CAAC,KAAK,CAAC;YAClC,KAAK,sBAAsB,CAAC,MAAM;gBACjC,OAAO;YACR;gBACC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;IACF,CAAC;IAEO,YAAY,CAAC,KAAa;QACjC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC5G,CAAC;IAEe,QAAQ,CAAC,KAAuB;QAC/C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAEe,SAAS,CACvB,KAA4B,EAC5B,MAA8B;QAE/B,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAElD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACD"}
@@ -1,10 +1,8 @@
1
1
  import { ECommonsDatabaseTypeNull } from '../enums/ecommons-database-type-null.mjs';
2
2
  import { ECommonsDatabaseTypeSigned } from '../enums/ecommons-database-type-signed.mjs';
3
3
  import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
4
- import { CommonsDatabaseTypeNumber } from './commons-database-type-number.mjs';
5
- export declare class CommonsDatabaseTypeTinyInt extends CommonsDatabaseTypeNumber {
4
+ import { InternalCommonsDatabaseTypeInteger } from './integer.mjs';
5
+ export declare class CommonsDatabaseTypeTinyInt extends InternalCommonsDatabaseTypeInteger {
6
6
  constructor(unsigned: ECommonsDatabaseTypeSigned | undefined, notNull: ECommonsDatabaseTypeNull, defaultValue?: number, primaryKey?: boolean);
7
7
  protected renderEngineType(engine: ECommonsDatabaseEngine): string;
8
- assert(value: any): void | never;
9
- processOut(value: any, _engine: ECommonsDatabaseEngine): number | undefined;
10
8
  }
@@ -1,8 +1,7 @@
1
- import { commonsTypeAssertNumber, commonsTypeAttemptNumber } from 'tscommons-esm-core';
2
1
  import { ECommonsDatabaseTypeSigned } from '../enums/ecommons-database-type-signed.mjs';
3
2
  import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
4
- import { CommonsDatabaseTypeNumber } from './commons-database-type-number.mjs';
5
- export class CommonsDatabaseTypeTinyInt extends CommonsDatabaseTypeNumber {
3
+ import { InternalCommonsDatabaseTypeInteger } from './integer.mjs';
4
+ export class CommonsDatabaseTypeTinyInt extends InternalCommonsDatabaseTypeInteger {
6
5
  constructor(unsigned = ECommonsDatabaseTypeSigned.SIGNED, notNull, defaultValue, primaryKey = false) {
7
6
  super(unsigned === ECommonsDatabaseTypeSigned.UNSIGNED ? 0 : -128, unsigned === ECommonsDatabaseTypeSigned.UNSIGNED ? 255 : 127, notNull, defaultValue, primaryKey);
8
7
  }
@@ -23,22 +22,5 @@ export class CommonsDatabaseTypeTinyInt extends CommonsDatabaseTypeNumber {
23
22
  throw new Error('This type has not been defined for this database engine');
24
23
  }
25
24
  }
26
- assert(value) {
27
- super.assert(value);
28
- if (value === undefined)
29
- return;
30
- const typecast = commonsTypeAssertNumber(value);
31
- if (typecast !== Math.floor(typecast))
32
- throw new Error('INT has a float value');
33
- this.assertRange(typecast);
34
- }
35
- processOut(value, _engine) {
36
- if (value === undefined || value === null)
37
- return undefined;
38
- const typecast = commonsTypeAttemptNumber(value);
39
- if (typecast === undefined)
40
- throw new Error('Invalid INT value for processOut');
41
- return typecast;
42
- }
43
25
  }
44
26
  //# sourceMappingURL=commons-database-type-tiny-int.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"commons-database-type-tiny-int.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-tiny-int.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,MAAM,OAAO,0BAA2B,SAAQ,yBAAyB;IACxE,YACE,WAAuC,0BAA0B,CAAC,MAAM,EACxE,OAAiC,EACjC,YAAqB,EACrB,aAAsB,KAAK;QAE5B,KAAK,CACH,QAAQ,KAAK,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAC3D,QAAQ,KAAK,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAC5D,OAAO,EACP,YAAY,EACZ,UAAU,CACX,CAAC;IACH,CAAC;IAES,gBAAgB,CAAC,MAA8B;QACxD,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,sBAAsB,CAAC,KAAK,CAAC;YAClC,KAAK,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAa,CAAE,SAAS,CAAE,CAAC;gBACvC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEzC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAa,CAAE,UAAU,CAAE,CAAC;gBACxC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEzC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YACD;gBACC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;IACF,CAAC;IAEe,MAAM,CAAC,KAAU;QAChC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,MAAM,QAAQ,GAAW,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAEhF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAEe,UAAU,CAAC,KAAU,EAAE,OAA+B;QACrE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAE5D,MAAM,QAAQ,GAAqB,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEhF,OAAO,QAAQ,CAAC;IACjB,CAAC;CACD"}
1
+ {"version":3,"file":"commons-database-type-tiny-int.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-tiny-int.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,kCAAkC,EAAE,MAAM,eAAe,CAAC;AAEnE,MAAM,OAAO,0BAA2B,SAAQ,kCAAkC;IACjF,YACE,WAAuC,0BAA0B,CAAC,MAAM,EACxE,OAAiC,EACjC,YAAqB,EACrB,aAAsB,KAAK;QAE5B,KAAK,CACH,QAAQ,KAAK,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAC3D,QAAQ,KAAK,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAC5D,OAAO,EACP,YAAY,EACZ,UAAU,CACX,CAAC;IACH,CAAC;IAES,gBAAgB,CAAC,MAA8B;QACxD,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,sBAAsB,CAAC,KAAK,CAAC;YAClC,KAAK,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpC,MAAM,MAAM,GAAa,CAAE,SAAS,CAAE,CAAC;gBACvC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEzC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAa,CAAE,UAAU,CAAE,CAAC;gBACxC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEzC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YACD;gBACC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;IACF,CAAC;CACD"}
@@ -1,6 +1,5 @@
1
1
  import { ECommonsDatabaseTypeNull } from '../enums/ecommons-database-type-null.mjs';
2
- import { CommonsDatabaseTypeString } from './commons-database-type-string.mjs';
3
- export declare class CommonsDatabaseTypeUrl extends CommonsDatabaseTypeString {
2
+ import { InternalCommonsDatabaseTypeRegexString } from './regex-string.mjs';
3
+ export declare class CommonsDatabaseTypeUrl extends InternalCommonsDatabaseTypeRegexString {
4
4
  constructor(notNull: ECommonsDatabaseTypeNull, defaultValue?: string, primaryKey?: boolean);
5
- assert(value: unknown): void | never;
6
5
  }
@@ -1,17 +1,8 @@
1
- import { commonsTypeIsString, COMMONS_REGEX_PATTERN_URL } from 'tscommons-esm-core';
2
- import { CommonsDatabaseTypeString } from './commons-database-type-string.mjs';
3
- export class CommonsDatabaseTypeUrl extends CommonsDatabaseTypeString {
1
+ import { COMMONS_REGEX_PATTERN_URL } from 'tscommons-esm-core';
2
+ import { InternalCommonsDatabaseTypeRegexString } from './regex-string.mjs';
3
+ export class CommonsDatabaseTypeUrl extends InternalCommonsDatabaseTypeRegexString {
4
4
  constructor(notNull, defaultValue, primaryKey = false) {
5
- super(255, notNull, defaultValue, primaryKey);
6
- }
7
- assert(value) {
8
- super.assert(value);
9
- if (value === undefined)
10
- return;
11
- if (!commonsTypeIsString(value))
12
- throw new Error('Url value is not a string');
13
- if (!COMMONS_REGEX_PATTERN_URL.test(value))
14
- throw new Error(`Invalid database type value for Url: ${value}`);
5
+ super('Url', 255, COMMONS_REGEX_PATTERN_URL, notNull, defaultValue, primaryKey);
15
6
  }
16
7
  }
17
8
  //# sourceMappingURL=commons-database-type-url.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"commons-database-type-url.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-url.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAIpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,MAAM,OAAO,sBAAuB,SAAQ,yBAAyB;IACpE,YACE,OAAiC,EACjC,YAAqB,EACrB,aAAsB,KAAK;QAE5B,KAAK,CACH,GAAG,EACH,OAAO,EACP,YAAY,EACZ,UAAU,CACX,CAAC;IACH,CAAC;IAEe,MAAM,CAAC,KAAc;QACpC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9E,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;IAC9G,CAAC;CACD"}
1
+ {"version":3,"file":"commons-database-type-url.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type-url.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAI/D,OAAO,EAAE,sCAAsC,EAAE,MAAM,oBAAoB,CAAC;AAE5E,MAAM,OAAO,sBAAuB,SAAQ,sCAAsC;IACjF,YACE,OAAiC,EACjC,YAAqB,EACrB,aAAsB,KAAK;QAE5B,KAAK,CACH,KAAK,EACL,GAAG,EACH,yBAAyB,EACzB,OAAO,EACP,YAAY,EACZ,UAAU,CACX,CAAC;IACH,CAAC;CACD"}
@@ -1,17 +1,20 @@
1
1
  import { ECommonsDatabaseTypeNull } from '../enums/ecommons-database-type-null.mjs';
2
2
  import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
3
- import { CommonsDatabaseParam } from './commons-database-param.mjs';
4
- export declare abstract class CommonsDatabaseType {
5
- private notNull;
6
- private defaultValue?;
7
- private primaryKey;
8
- constructor(notNull: ECommonsDatabaseTypeNull, defaultValue?: (number | string | boolean) | undefined, primaryKey?: boolean);
9
- getNotNull(): ECommonsDatabaseTypeNull;
10
- getDefaultValue(): number | string | boolean | undefined;
3
+ export declare abstract class CommonsDatabaseType<ParamT, DbT> {
4
+ private internalNotNull;
5
+ private internalDefaultValue?;
6
+ private internalPrimaryKey;
7
+ constructor(internalNotNull: ECommonsDatabaseTypeNull, internalDefaultValue?: ParamT | undefined, internalPrimaryKey?: boolean);
8
+ get notNull(): ECommonsDatabaseTypeNull;
9
+ get defaultValue(): ParamT | undefined;
10
+ get primaryKey(): boolean;
11
11
  render(engine: ECommonsDatabaseEngine): string;
12
12
  protected abstract renderEngineType(engine: ECommonsDatabaseEngine): string;
13
13
  protected renderNotNull(_engine: ECommonsDatabaseEngine): string;
14
- assert(value: any): void | never;
15
- processIn(_param: CommonsDatabaseParam, _engine: ECommonsDatabaseEngine): void;
16
- processOut(value: any, _engine: ECommonsDatabaseEngine): unknown;
14
+ assertIn(value: ParamT | undefined): void | never;
15
+ assertOut(value: DbT | null | undefined, _engine: ECommonsDatabaseEngine): void | never;
16
+ protected abstract encode(value: ParamT, engine: ECommonsDatabaseEngine): DbT;
17
+ protected abstract decode(value: DbT, engine: ECommonsDatabaseEngine): ParamT;
18
+ processIn(value: ParamT | undefined, engine: ECommonsDatabaseEngine): DbT | undefined;
19
+ processOut(value: DbT | null | undefined, engine: ECommonsDatabaseEngine): ParamT | undefined;
17
20
  }
@@ -2,43 +2,46 @@ import { commonsTypeIsNumber, commonsTypeIsBoolean, commonsTypeIsString } from '
2
2
  import { commonsDatabaseQuote } from '../helpers/commons-database.mjs';
3
3
  import { ECommonsDatabaseTypeNull } from '../enums/ecommons-database-type-null.mjs';
4
4
  export class CommonsDatabaseType {
5
- notNull;
6
- defaultValue;
7
- primaryKey;
8
- constructor(notNull, defaultValue, primaryKey = false) {
9
- this.notNull = notNull;
10
- this.defaultValue = defaultValue;
11
- this.primaryKey = primaryKey;
5
+ internalNotNull;
6
+ internalDefaultValue;
7
+ internalPrimaryKey;
8
+ constructor(internalNotNull, internalDefaultValue, internalPrimaryKey = false) {
9
+ this.internalNotNull = internalNotNull;
10
+ this.internalDefaultValue = internalDefaultValue;
11
+ this.internalPrimaryKey = internalPrimaryKey;
12
12
  }
13
- getNotNull() {
14
- return this.notNull;
13
+ get notNull() {
14
+ return this.internalNotNull;
15
15
  }
16
- getDefaultValue() {
17
- return this.defaultValue;
16
+ get defaultValue() {
17
+ return this.internalDefaultValue;
18
+ }
19
+ get primaryKey() {
20
+ return this.internalPrimaryKey;
18
21
  }
19
22
  render(engine) {
20
23
  const modifiers = [];
21
- if (this.notNull === ECommonsDatabaseTypeNull.NOT_NULL)
24
+ if (this.internalNotNull === ECommonsDatabaseTypeNull.NOT_NULL)
22
25
  modifiers.push(this.renderNotNull(engine));
23
- if (this.defaultValue !== undefined) {
24
- if (commonsTypeIsNumber(this.defaultValue) && !isNaN(this.defaultValue)) {
25
- modifiers.push(`DEFAULT ${this.defaultValue.toString(10)}`);
26
+ if (this.internalDefaultValue !== undefined) {
27
+ if (commonsTypeIsNumber(this.internalDefaultValue) && !isNaN(this.internalDefaultValue)) {
28
+ modifiers.push(`DEFAULT ${this.internalDefaultValue.toString(10)}`);
26
29
  }
27
- else if (commonsTypeIsBoolean(this.defaultValue)) {
28
- modifiers.push(`DEFAULT ${this.defaultValue ? 'true' : 'false'}`);
30
+ else if (commonsTypeIsBoolean(this.internalDefaultValue)) {
31
+ modifiers.push(`DEFAULT ${this.internalDefaultValue ? 'true' : 'false'}`);
29
32
  }
30
- else if (commonsTypeIsString(this.defaultValue)) {
31
- modifiers.push(`DEFAULT ${commonsDatabaseQuote(this.defaultValue, engine)}`);
33
+ else if (commonsTypeIsString(this.internalDefaultValue)) {
34
+ modifiers.push(`DEFAULT ${commonsDatabaseQuote(this.internalDefaultValue, engine)}`);
32
35
  }
33
36
  else {
34
37
  throw new Error('Unknown CommonsDatabaseType default value type');
35
38
  }
36
39
  }
37
40
  else {
38
- if (!this.notNull)
41
+ if (!this.internalNotNull)
39
42
  modifiers.push('DEFAULT NULL');
40
43
  }
41
- if (this.primaryKey)
44
+ if (this.internalPrimaryKey)
42
45
  modifiers.push('PRIMARY KEY');
43
46
  modifiers.unshift(this.renderEngineType(engine));
44
47
  return modifiers.join(' ');
@@ -47,17 +50,23 @@ export class CommonsDatabaseType {
47
50
  renderNotNull(_engine) {
48
51
  return 'NOT NULL';
49
52
  }
50
- assert(value) {
51
- if (value === undefined && this.notNull === ECommonsDatabaseTypeNull.NOT_NULL)
53
+ assertIn(value) {
54
+ if (value === undefined && this.internalNotNull === ECommonsDatabaseTypeNull.NOT_NULL)
55
+ throw new Error('NOTNULL modifier is set');
56
+ }
57
+ assertOut(value, _engine) {
58
+ if ((value === undefined || value === null) && this.internalNotNull === ECommonsDatabaseTypeNull.NOT_NULL)
52
59
  throw new Error('NOTNULL modifier is set');
53
60
  }
54
- processIn(_param, _engine) {
55
- // to be overridden if desired
61
+ processIn(value, engine) {
62
+ if (value === undefined)
63
+ return undefined;
64
+ return this.encode(value, engine);
56
65
  }
57
- processOut(value, _engine) {
58
- if (value === null)
66
+ processOut(value, engine) {
67
+ if (value === undefined || value === null)
59
68
  return undefined;
60
- return value;
69
+ return this.decode(value, engine);
61
70
  }
62
71
  }
63
72
  //# sourceMappingURL=commons-database-type.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"commons-database-type.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAKpF,MAAM,OAAgB,mBAAmB;IAE9B;IACA;IACA;IAHV,YACU,OAAiC,EACjC,YAAoC,EACpC,aAAsB,KAAK;QAF3B,YAAO,GAAP,OAAO,CAA0B;QACjC,iBAAY,GAAZ,YAAY,CAAwB;QACpC,eAAU,GAAV,UAAU,CAAiB;IAClC,CAAC;IAEG,UAAU;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEM,eAAe;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,MAA8B;QAC3C,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,OAAO,KAAK,wBAAwB,CAAC,QAAQ;YAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnG,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzE,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpD,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,CAAC;iBAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnD,SAAS,CAAC,IAAI,CAAC,WAAW,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,IAAI,CAAC,UAAU;YAAE,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEnD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjD,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAID,sFAAsF;IAC5E,aAAa,CAAC,OAA+B;QACtD,OAAO,UAAU,CAAC;IACnB,CAAC;IAEM,MAAM,CAAC,KAAU;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,wBAAwB,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC3H,CAAC;IAEM,SAAS,CAAC,MAA4B,EAAE,OAA+B;QAC7E,8BAA8B;IAC/B,CAAC;IAEM,UAAU,CAAC,KAAU,EAAE,OAA+B;QAC5D,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACrC,OAAO,KAAK,CAAC;IACd,CAAC;CACD"}
1
+ {"version":3,"file":"commons-database-type.mjs","sourceRoot":"","sources":["../../src/classes/commons-database-type.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
2
+ import { InternalCommonsDatabaseTypeNumber } from './number.mjs';
3
+ export declare abstract class InternalCommonsDatabaseTypeInteger extends InternalCommonsDatabaseTypeNumber {
4
+ private assertInt;
5
+ assertIn(value: number | undefined): void | never;
6
+ assertOut(value: number | null | undefined, engine: ECommonsDatabaseEngine): void | never;
7
+ }
@@ -0,0 +1,20 @@
1
+ import { InternalCommonsDatabaseTypeNumber } from './number.mjs';
2
+ export class InternalCommonsDatabaseTypeInteger extends InternalCommonsDatabaseTypeNumber {
3
+ assertInt(value) {
4
+ if (value !== Math.floor(value))
5
+ throw new Error('Integer has a float value');
6
+ }
7
+ assertIn(value) {
8
+ super.assertIn(value);
9
+ if (value === undefined)
10
+ return;
11
+ this.assertInt(value);
12
+ }
13
+ assertOut(value, engine) {
14
+ super.assertOut(value, engine);
15
+ if (value === undefined || value === null)
16
+ return;
17
+ this.assertInt(value);
18
+ }
19
+ }
20
+ //# sourceMappingURL=integer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer.mjs","sourceRoot":"","sources":["../../src/classes/integer.mts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,cAAc,CAAC;AAEjE,MAAM,OAAgB,kCAAmC,SAAQ,iCAAiC;IACzF,SAAS,CAAC,KAAa;QAC9B,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/E,CAAC;IAEe,QAAQ,CAAC,KAAuB;QAC/C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEe,SAAS,CACvB,KAA4B,EAC5B,MAA8B;QAE/B,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAElD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACD"}
@@ -2,12 +2,16 @@ import { ECommonsDatabaseTypeNull } from '../enums/ecommons-database-type-null.m
2
2
  import { ECommonsDatabaseTypeSigned } from '../enums/ecommons-database-type-signed.mjs';
3
3
  import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
4
4
  import { CommonsDatabaseType } from './commons-database-type.mjs';
5
- export declare abstract class CommonsDatabaseTypeNumber extends CommonsDatabaseType {
5
+ export declare abstract class InternalCommonsDatabaseTypeNumber extends CommonsDatabaseType<number, number> {
6
6
  protected lower: number;
7
7
  protected upper: number;
8
8
  protected unsigned: ECommonsDatabaseTypeSigned;
9
9
  constructor(lower: number, upper: number, notNull: ECommonsDatabaseTypeNull, defaultValue?: number, primaryKey?: boolean, use53Bit?: boolean);
10
10
  protected renderAppendSigning(modifiers: string[], engine: ECommonsDatabaseEngine): void;
11
11
  renderAppendCheck(modifiers: string[], fieldname: string, engine: ECommonsDatabaseEngine): string | undefined;
12
- protected assertRange(value: number): void | never;
12
+ private assertRange;
13
+ assertIn(value: number | undefined): void | never;
14
+ assertOut(value: number | null | undefined, engine: ECommonsDatabaseEngine): void | never;
15
+ protected encode(value: number, _engine: ECommonsDatabaseEngine): number;
16
+ protected decode(value: number, _engine: ECommonsDatabaseEngine): number;
13
17
  }
@@ -4,7 +4,7 @@ import { ECommonsDatabaseTypeSigned } from '../enums/ecommons-database-type-sign
4
4
  import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
5
5
  import { CommonsDatabaseType } from './commons-database-type.mjs';
6
6
  // NB, JavaScript only supports numbers up to (2^53)-1, so this is not 64 bit. See tscommons-core.consts
7
- export class CommonsDatabaseTypeNumber extends CommonsDatabaseType {
7
+ export class InternalCommonsDatabaseTypeNumber extends CommonsDatabaseType {
8
8
  lower;
9
9
  upper;
10
10
  unsigned;
@@ -12,8 +12,6 @@ export class CommonsDatabaseTypeNumber extends CommonsDatabaseType {
12
12
  super(notNull, defaultValue, primaryKey);
13
13
  this.lower = lower;
14
14
  this.upper = upper;
15
- commonsTypeAssertNumber(this.lower);
16
- commonsTypeAssertNumber(this.upper);
17
15
  const absoluteMax = use53Bit ? MAX_SIGNED_53BIT_INTEGER : MAX_SIGNED_32BIT_INTEGER;
18
16
  const bitSize = use53Bit ? 53 : 32;
19
17
  if (this.upper > absoluteMax)
@@ -50,11 +48,32 @@ export class CommonsDatabaseTypeNumber extends CommonsDatabaseType {
50
48
  }
51
49
  }
52
50
  assertRange(value) {
53
- commonsTypeAssertNumber(value);
51
+ if (isNaN(value))
52
+ throw new Error('Number was NaN');
54
53
  if (value < this.lower)
55
54
  throw new Error(`Underflow from ${this.lower}`);
56
55
  if (value > this.upper)
57
56
  throw new Error(`Overflow from ${this.upper}`);
58
57
  }
58
+ assertIn(value) {
59
+ super.assertIn(value);
60
+ if (value === undefined)
61
+ return;
62
+ commonsTypeAssertNumber(value);
63
+ this.assertRange(value);
64
+ }
65
+ assertOut(value, engine) {
66
+ super.assertOut(value, engine);
67
+ if (value === undefined || value === null)
68
+ return;
69
+ commonsTypeAssertNumber(value);
70
+ this.assertRange(value);
71
+ }
72
+ encode(value, _engine) {
73
+ return value;
74
+ }
75
+ decode(value, _engine) {
76
+ return value;
77
+ }
59
78
  }
60
- //# sourceMappingURL=commons-database-type-number.mjs.map
79
+ //# sourceMappingURL=number.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.mjs","sourceRoot":"","sources":["../../src/classes/number.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEjH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAC;AACxF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,wGAAwG;AAExG,MAAM,OAAgB,iCAAkC,SAAQ,mBAAmC;IAItF;IACA;IAJF,QAAQ,CAA6B;IAE/C,YACY,KAAa,EACb,KAAa,EACvB,OAAiC,EACjC,YAAqB,EACrB,aAAsB,KAAK,EAC3B,WAAoB,IAAI;QAEzB,KAAK,CACH,OAAO,EACP,YAAY,EACZ,UAAU,CACX,CAAC;QAXS,UAAK,GAAL,KAAK,CAAQ;QACb,UAAK,GAAL,KAAK,CAAQ;QAYxB,MAAM,WAAW,GAAW,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAC3F,MAAM,OAAO,GAAW,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3C,IAAI,IAAI,CAAC,KAAK,GAAG,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;QACrI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;QAEnI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC;IAC1G,CAAC;IAES,mBAAmB,CAAC,SAAmB,EAAE,MAA8B;QAChF,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,sBAAsB,CAAC,KAAK,CAAC;YAClC,KAAK,sBAAsB,CAAC,MAAM;gBACjC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;oBAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChD,OAAO;YACR,KAAK,sBAAsB,CAAC,QAAQ;gBACnC,OAAO;YACR;gBACC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;IACF,CAAC;IAEM,iBAAiB,CAAC,SAAmB,EAAE,SAAiB,EAAE,MAA8B;QAC9F,QAAQ,MAAM,EAAE,CAAC;YAChB,KAAK,sBAAsB,CAAC,QAAQ;gBACnC,IAAI,IAAI,CAAC,QAAQ,KAAK,0BAA0B,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBAC1K,SAAS,CAAC,IAAI,CAAC,UAAU,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC/G,OAAO;YACR,KAAK,sBAAsB,CAAC,KAAK,CAAC;YAClC,KAAK,sBAAsB,CAAC,MAAM;gBACjC,OAAO;YACR;gBACC,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;IACF,CAAC;IAEO,WAAW,CAAC,KAAa;QAChC,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACxE,CAAC;IAEe,QAAQ,CAAC,KAAuB;QAC/C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAEe,SAAS,CACvB,KAA4B,EAC5B,MAA8B;QAE/B,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAElD,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAES,MAAM,CAAC,KAAa,EAAE,OAA+B;QAC9D,OAAO,KAAK,CAAC;IACd,CAAC;IAES,MAAM,CAAC,KAAa,EAAE,OAA+B;QAC9D,OAAO,KAAK,CAAC;IACd,CAAC;CACD"}
@@ -0,0 +1,11 @@
1
+ import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
2
+ import { ECommonsDatabaseTypeNull } from '../enums/ecommons-database-type-null.mjs';
3
+ import { CommonsDatabaseTypeString } from './commons-database-type-string.mjs';
4
+ export declare abstract class InternalCommonsDatabaseTypeRegexString<ParamT extends string = string> extends CommonsDatabaseTypeString<ParamT> {
5
+ private typeName;
6
+ private regex;
7
+ constructor(typeName: string, maxLength: number, regex: RegExp, notNull: ECommonsDatabaseTypeNull, defaultValue?: ParamT, primaryKey?: boolean);
8
+ private assertRegex;
9
+ assertIn(value: ParamT | undefined): void | never;
10
+ assertOut(value: ParamT | null | undefined, engine: ECommonsDatabaseEngine): void | never;
11
+ }
@@ -0,0 +1,27 @@
1
+ import { CommonsDatabaseTypeString } from './commons-database-type-string.mjs';
2
+ export class InternalCommonsDatabaseTypeRegexString extends CommonsDatabaseTypeString {
3
+ typeName;
4
+ regex;
5
+ constructor(typeName, maxLength, regex, notNull, defaultValue, primaryKey = false) {
6
+ super(maxLength, notNull, defaultValue, primaryKey);
7
+ this.typeName = typeName;
8
+ this.regex = regex;
9
+ }
10
+ assertRegex(value) {
11
+ if (!this.regex.test(value))
12
+ throw new Error(`Invalid string for type ${this.typeName}`);
13
+ }
14
+ assertIn(value) {
15
+ super.assertIn(value);
16
+ if (value === undefined)
17
+ return;
18
+ this.assertRegex(value);
19
+ }
20
+ assertOut(value, engine) {
21
+ super.assertOut(value, engine);
22
+ if (value === undefined || value === null)
23
+ return;
24
+ this.assertRegex(value);
25
+ }
26
+ }
27
+ //# sourceMappingURL=regex-string.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex-string.mjs","sourceRoot":"","sources":["../../src/classes/regex-string.mts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,MAAM,OAAgB,sCAAuE,SAAQ,yBAAiC;IAE3H;IAEA;IAHV,YACU,QAAgB,EACxB,SAAiB,EACT,KAAa,EACrB,OAAiC,EACjC,YAAqB,EACrB,aAAsB,KAAK;QAE5B,KAAK,CACH,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,CACX,CAAC;QAZO,aAAQ,GAAR,QAAQ,CAAQ;QAEhB,UAAK,GAAL,KAAK,CAAQ;IAWvB,CAAC;IAEO,WAAW,CAAC,KAAa;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1F,CAAC;IAEe,QAAQ,CAAC,KAAuB;QAC/C,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAEe,SAAS,CACvB,KAA4B,EAC5B,MAA8B;QAE/B,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAElD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;CACD"}
@@ -0,0 +1,8 @@
1
+ import { ECommonsDatabaseEngine } from '../enums/ecommons-database-engine.mjs';
2
+ import { CommonsDatabaseType } from './commons-database-type.mjs';
3
+ export declare abstract class InternalCommonsDatabaseTypeString extends CommonsDatabaseType<string, string> {
4
+ assertIn(value: string | undefined): void | never;
5
+ assertOut(value: string | null | undefined, engine: ECommonsDatabaseEngine): void | never;
6
+ protected encode(value: string, _engine: ECommonsDatabaseEngine): string;
7
+ protected decode(value: string, _engine: ECommonsDatabaseEngine): string;
8
+ }
@@ -0,0 +1,23 @@
1
+ import { commonsTypeAssertString } from 'tscommons-esm-core';
2
+ import { CommonsDatabaseType } from './commons-database-type.mjs';
3
+ export class InternalCommonsDatabaseTypeString extends CommonsDatabaseType {
4
+ assertIn(value) {
5
+ super.assertIn(value);
6
+ if (value === undefined)
7
+ return;
8
+ commonsTypeAssertString(value);
9
+ }
10
+ assertOut(value, engine) {
11
+ super.assertOut(value, engine);
12
+ if (value === undefined || value === null)
13
+ return;
14
+ commonsTypeAssertString(value);
15
+ }
16
+ encode(value, _engine) {
17
+ return value;
18
+ }
19
+ decode(value, _engine) {
20
+ return value;
21
+ }
22
+ }
23
+ //# sourceMappingURL=string.mjs.map