@apso/cli 0.7.4 → 0.8.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 (203) hide show
  1. package/dist/autogen/index.d.ts +2 -0
  2. package/dist/autogen/index.js +3 -0
  3. package/dist/commands/server/new.d.ts +4 -1
  4. package/dist/commands/server/new.js +115 -22
  5. package/dist/commands/server/scaffold.d.ts +10 -0
  6. package/dist/commands/server/scaffold.js +200 -10
  7. package/dist/lib/api/client.d.ts +65 -0
  8. package/dist/lib/api/client.js +305 -0
  9. package/dist/lib/api/index.d.ts +8 -0
  10. package/dist/lib/api/index.js +22 -0
  11. package/dist/lib/api/services.d.ts +166 -0
  12. package/dist/lib/api/services.js +202 -0
  13. package/dist/lib/api/types.d.ts +212 -0
  14. package/dist/lib/api/types.js +7 -0
  15. package/dist/lib/apsorc-parser.d.ts +3 -0
  16. package/dist/lib/apsorc-parser.js +4 -0
  17. package/dist/lib/config/index.d.ts +8 -0
  18. package/dist/lib/config/index.js +17 -0
  19. package/dist/lib/config/manager.d.ts +127 -0
  20. package/dist/lib/config/manager.js +304 -0
  21. package/dist/lib/config/paths.d.ts +65 -0
  22. package/dist/lib/config/paths.js +127 -0
  23. package/dist/lib/config/types.d.ts +230 -0
  24. package/dist/lib/config/types.js +30 -0
  25. package/dist/lib/generators/base.d.ts +93 -0
  26. package/dist/lib/generators/base.js +90 -0
  27. package/dist/lib/generators/go.d.ts +37 -0
  28. package/dist/lib/generators/go.js +340 -0
  29. package/dist/lib/generators/index.d.ts +21 -0
  30. package/dist/lib/generators/index.js +51 -0
  31. package/dist/lib/generators/python.d.ts +21 -0
  32. package/dist/lib/generators/python.js +253 -0
  33. package/dist/lib/generators/typescript.d.ts +25 -0
  34. package/dist/lib/generators/typescript.js +373 -0
  35. package/dist/lib/index.d.ts +2 -0
  36. package/dist/lib/index.js +9 -1
  37. package/dist/lib/templates/entities/entity-col-timestamp.eta +9 -2
  38. package/dist/lib/templates/entities/entity-col-timestamptz.eta +9 -2
  39. package/dist/lib/templates/entities/entity.eta +16 -3
  40. package/dist/lib/templates/go/dto/dto-col-array.eta +7 -0
  41. package/dist/lib/templates/go/dto/dto-col-boolean.eta +7 -0
  42. package/dist/lib/templates/go/dto/dto-col-date.eta +7 -0
  43. package/dist/lib/templates/go/dto/dto-col-decimal.eta +7 -0
  44. package/dist/lib/templates/go/dto/dto-col-enum.eta +8 -0
  45. package/dist/lib/templates/go/dto/dto-col-float.eta +7 -0
  46. package/dist/lib/templates/go/dto/dto-col-integer.eta +7 -0
  47. package/dist/lib/templates/go/dto/dto-col-json.eta +7 -0
  48. package/dist/lib/templates/go/dto/dto-col-jsonb.eta +7 -0
  49. package/dist/lib/templates/go/dto/dto-col-numeric.eta +7 -0
  50. package/dist/lib/templates/go/dto/dto-col-string.eta +7 -0
  51. package/dist/lib/templates/go/dto/dto-col-text.eta +7 -0
  52. package/dist/lib/templates/go/dto/dto-col-timestamp.eta +7 -0
  53. package/dist/lib/templates/go/dto/dto-col-timestamptz.eta +7 -0
  54. package/dist/lib/templates/go/dto/dto-col-uuid.eta +7 -0
  55. package/dist/lib/templates/go/dto/dto-col-varchar.eta +7 -0
  56. package/dist/lib/templates/go/dto/dto.eta +78 -0
  57. package/dist/lib/templates/go/enums.eta +44 -0
  58. package/dist/lib/templates/go/handlers/handler.eta +212 -0
  59. package/dist/lib/templates/go/header.eta +3 -0
  60. package/dist/lib/templates/go/index-module.eta +53 -0
  61. package/dist/lib/templates/go/middleware/auth.eta +101 -0
  62. package/dist/lib/templates/go/models/model-col-array.eta +1 -0
  63. package/dist/lib/templates/go/models/model-col-boolean.eta +1 -0
  64. package/dist/lib/templates/go/models/model-col-date.eta +1 -0
  65. package/dist/lib/templates/go/models/model-col-decimal.eta +1 -0
  66. package/dist/lib/templates/go/models/model-col-enum.eta +2 -0
  67. package/dist/lib/templates/go/models/model-col-float.eta +1 -0
  68. package/dist/lib/templates/go/models/model-col-integer.eta +1 -0
  69. package/dist/lib/templates/go/models/model-col-json.eta +1 -0
  70. package/dist/lib/templates/go/models/model-col-jsonb.eta +1 -0
  71. package/dist/lib/templates/go/models/model-col-numeric.eta +1 -0
  72. package/dist/lib/templates/go/models/model-col-string.eta +1 -0
  73. package/dist/lib/templates/go/models/model-col-text.eta +1 -0
  74. package/dist/lib/templates/go/models/model-col-timestamp.eta +1 -0
  75. package/dist/lib/templates/go/models/model-col-timestamptz.eta +1 -0
  76. package/dist/lib/templates/go/models/model-col-uuid.eta +1 -0
  77. package/dist/lib/templates/go/models/model-col-varchar.eta +1 -0
  78. package/dist/lib/templates/go/models/model.eta +53 -0
  79. package/dist/lib/templates/go/services/service.eta +190 -0
  80. package/dist/lib/templates/python/enums.eta +10 -0
  81. package/dist/lib/templates/python/header.eta +6 -0
  82. package/dist/lib/templates/python/index-module.eta +18 -0
  83. package/dist/lib/templates/python/models/model-col-array.eta +4 -0
  84. package/dist/lib/templates/python/models/model-col-boolean.eta +5 -0
  85. package/dist/lib/templates/python/models/model-col-date.eta +4 -0
  86. package/dist/lib/templates/python/models/model-col-decimal.eta +4 -0
  87. package/dist/lib/templates/python/models/model-col-enum.eta +16 -0
  88. package/dist/lib/templates/python/models/model-col-float.eta +5 -0
  89. package/dist/lib/templates/python/models/model-col-integer.eta +6 -0
  90. package/dist/lib/templates/python/models/model-col-json.eta +4 -0
  91. package/dist/lib/templates/python/models/model-col-jsonb.eta +4 -0
  92. package/dist/lib/templates/python/models/model-col-numeric.eta +4 -0
  93. package/dist/lib/templates/python/models/model-col-string.eta +6 -0
  94. package/dist/lib/templates/python/models/model-col-text.eta +6 -0
  95. package/dist/lib/templates/python/models/model-col-timestamp.eta +11 -0
  96. package/dist/lib/templates/python/models/model-col-timestamptz.eta +11 -0
  97. package/dist/lib/templates/python/models/model-col-uuid.eta +5 -0
  98. package/dist/lib/templates/python/models/model-col-varchar.eta +6 -0
  99. package/dist/lib/templates/python/models/model.eta +124 -0
  100. package/dist/lib/templates/python/routers/router.eta +206 -0
  101. package/dist/lib/templates/python/schemas/schema-col-array.eta +1 -0
  102. package/dist/lib/templates/python/schemas/schema-col-boolean.eta +1 -0
  103. package/dist/lib/templates/python/schemas/schema-col-date.eta +1 -0
  104. package/dist/lib/templates/python/schemas/schema-col-decimal.eta +1 -0
  105. package/dist/lib/templates/python/schemas/schema-col-enum.eta +6 -0
  106. package/dist/lib/templates/python/schemas/schema-col-float.eta +1 -0
  107. package/dist/lib/templates/python/schemas/schema-col-integer.eta +1 -0
  108. package/dist/lib/templates/python/schemas/schema-col-json.eta +1 -0
  109. package/dist/lib/templates/python/schemas/schema-col-jsonb.eta +1 -0
  110. package/dist/lib/templates/python/schemas/schema-col-numeric.eta +1 -0
  111. package/dist/lib/templates/python/schemas/schema-col-string.eta +1 -0
  112. package/dist/lib/templates/python/schemas/schema-col-text.eta +1 -0
  113. package/dist/lib/templates/python/schemas/schema-col-timestamp.eta +1 -0
  114. package/dist/lib/templates/python/schemas/schema-col-timestamptz.eta +1 -0
  115. package/dist/lib/templates/python/schemas/schema-col-uuid.eta +1 -0
  116. package/dist/lib/templates/python/schemas/schema-col-varchar.eta +1 -0
  117. package/dist/lib/templates/python/schemas/schema.eta +87 -0
  118. package/dist/lib/templates/python/services/service.eta +163 -0
  119. package/dist/lib/templates/rest/controller-rest.eta +13 -12
  120. package/dist/lib/templates/rest/dto-rest.eta +173 -59
  121. package/dist/lib/types/generator.d.ts +241 -0
  122. package/dist/lib/types/generator.js +2 -0
  123. package/dist/lib/types/index.d.ts +1 -0
  124. package/dist/lib/utils/casing.d.ts +1 -0
  125. package/dist/lib/utils/casing.js +11 -1
  126. package/oclif.manifest.json +32 -3
  127. package/package.json +4 -2
  128. package/dist/lib/utils/relationships/parse.spec.d.ts +0 -1
  129. package/dist/lib/utils/relationships/parse.spec.js +0 -402
  130. package/dist/tests/templates/entities/types/array-template.spec.d.ts +0 -1
  131. package/dist/tests/templates/entities/types/array-template.spec.js +0 -82
  132. package/dist/tests/templates/entities/types/bigint-template.spec.d.ts +0 -1
  133. package/dist/tests/templates/entities/types/bigint-template.spec.js +0 -82
  134. package/dist/tests/templates/entities/types/boolean-template.spec.d.ts +0 -1
  135. package/dist/tests/templates/entities/types/boolean-template.spec.js +0 -77
  136. package/dist/tests/templates/entities/types/bytea-template.spec.d.ts +0 -1
  137. package/dist/tests/templates/entities/types/bytea-template.spec.js +0 -68
  138. package/dist/tests/templates/entities/types/char-template.spec.d.ts +0 -1
  139. package/dist/tests/templates/entities/types/char-template.spec.js +0 -68
  140. package/dist/tests/templates/entities/types/date-template.spec.d.ts +0 -1
  141. package/dist/tests/templates/entities/types/date-template.spec.js +0 -56
  142. package/dist/tests/templates/entities/types/decimal-field-validation.spec.d.ts +0 -1
  143. package/dist/tests/templates/entities/types/decimal-field-validation.spec.js +0 -100
  144. package/dist/tests/templates/entities/types/decimal-template.spec.d.ts +0 -1
  145. package/dist/tests/templates/entities/types/decimal-template.spec.js +0 -86
  146. package/dist/tests/templates/entities/types/double-template.spec.d.ts +0 -1
  147. package/dist/tests/templates/entities/types/double-template.spec.js +0 -70
  148. package/dist/tests/templates/entities/types/enum-template.spec.d.ts +0 -1
  149. package/dist/tests/templates/entities/types/enum-template.spec.js +0 -85
  150. package/dist/tests/templates/entities/types/float-template.spec.d.ts +0 -1
  151. package/dist/tests/templates/entities/types/float-template.spec.js +0 -70
  152. package/dist/tests/templates/entities/types/geometry-template.spec.d.ts +0 -1
  153. package/dist/tests/templates/entities/types/geometry-template.spec.js +0 -58
  154. package/dist/tests/templates/entities/types/inet-template.spec.d.ts +0 -1
  155. package/dist/tests/templates/entities/types/inet-template.spec.js +0 -69
  156. package/dist/tests/templates/entities/types/int4range-template.spec.d.ts +0 -1
  157. package/dist/tests/templates/entities/types/int4range-template.spec.js +0 -72
  158. package/dist/tests/templates/entities/types/integer-template.spec.d.ts +0 -1
  159. package/dist/tests/templates/entities/types/integer-template.spec.js +0 -79
  160. package/dist/tests/templates/entities/types/interval-template.spec.d.ts +0 -1
  161. package/dist/tests/templates/entities/types/interval-template.spec.js +0 -68
  162. package/dist/tests/templates/entities/types/json-plain-template.spec.d.ts +0 -1
  163. package/dist/tests/templates/entities/types/json-plain-template.spec.js +0 -54
  164. package/dist/tests/templates/entities/types/json-template.spec.d.ts +0 -1
  165. package/dist/tests/templates/entities/types/json-template.spec.js +0 -40
  166. package/dist/tests/templates/entities/types/jsonb-template.spec.d.ts +0 -1
  167. package/dist/tests/templates/entities/types/jsonb-template.spec.js +0 -40
  168. package/dist/tests/templates/entities/types/money-template.spec.d.ts +0 -1
  169. package/dist/tests/templates/entities/types/money-template.spec.js +0 -68
  170. package/dist/tests/templates/entities/types/numeric-template.spec.d.ts +0 -1
  171. package/dist/tests/templates/entities/types/numeric-template.spec.js +0 -84
  172. package/dist/tests/templates/entities/types/point-template.spec.d.ts +0 -1
  173. package/dist/tests/templates/entities/types/point-template.spec.js +0 -64
  174. package/dist/tests/templates/entities/types/polygon-template.spec.d.ts +0 -1
  175. package/dist/tests/templates/entities/types/polygon-template.spec.js +0 -70
  176. package/dist/tests/templates/entities/types/real-template.spec.d.ts +0 -1
  177. package/dist/tests/templates/entities/types/real-template.spec.js +0 -67
  178. package/dist/tests/templates/entities/types/serial-template.spec.d.ts +0 -1
  179. package/dist/tests/templates/entities/types/serial-template.spec.js +0 -113
  180. package/dist/tests/templates/entities/types/smallint-template.spec.d.ts +0 -1
  181. package/dist/tests/templates/entities/types/smallint-template.spec.js +0 -82
  182. package/dist/tests/templates/entities/types/string-template.spec.d.ts +0 -1
  183. package/dist/tests/templates/entities/types/string-template.spec.js +0 -111
  184. package/dist/tests/templates/entities/types/text-template.spec.d.ts +0 -1
  185. package/dist/tests/templates/entities/types/text-template.spec.js +0 -70
  186. package/dist/tests/templates/entities/types/time-template.spec.d.ts +0 -1
  187. package/dist/tests/templates/entities/types/time-template.spec.js +0 -68
  188. package/dist/tests/templates/entities/types/timestamp-template.spec.d.ts +0 -1
  189. package/dist/tests/templates/entities/types/timestamp-template.spec.js +0 -74
  190. package/dist/tests/templates/entities/types/timetz-template.spec.d.ts +0 -1
  191. package/dist/tests/templates/entities/types/timetz-template.spec.js +0 -68
  192. package/dist/tests/templates/entities/types/tsvector-template.spec.d.ts +0 -1
  193. package/dist/tests/templates/entities/types/tsvector-template.spec.js +0 -55
  194. package/dist/tests/templates/entities/types/uuid-template.spec.d.ts +0 -1
  195. package/dist/tests/templates/entities/types/uuid-template.spec.js +0 -82
  196. package/dist/tests/templates/entities/types/varchar-template.spec.d.ts +0 -1
  197. package/dist/tests/templates/entities/types/varchar-template.spec.js +0 -105
  198. package/dist/tests/templates/entities/types/xml-template.spec.d.ts +0 -1
  199. package/dist/tests/templates/entities/types/xml-template.spec.js +0 -55
  200. package/dist/tests/templates/entities/uuid-entity-template.spec.d.ts +0 -1
  201. package/dist/tests/templates/entities/uuid-entity-template.spec.js +0 -277
  202. package/dist/tests/utils/relationship-deduplication.spec.d.ts +0 -1
  203. package/dist/tests/utils/relationship-deduplication.spec.js +0 -98
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const template_test_utils_1 = require("../utils/template-test-utils");
4
- const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)("Point Entity Template Tests", () => {
6
- // Setup Eta configuration once before all tests
7
- (0, globals_1.beforeAll)(() => {
8
- (0, template_test_utils_1.configureEta)();
9
- });
10
- const templatePath = "./entities/entity-col-point";
11
- const testCases = [
12
- {
13
- name: "should render basic point field correctly",
14
- field: {
15
- name: "location",
16
- dataType: "{ x: number, y: number }",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: "@Column({" },
21
- { type: "contains", text: '"type": "point"' },
22
- { type: "contains", text: "transformer: {" },
23
- {
24
- type: "contains",
25
- text: "to: (point: {x: number, y: number} | null) => {",
26
- },
27
- { type: "contains", text: "from: (pgPoint: string | null) => {" },
28
- { type: "contains", text: "location: { x: number, y: number };" },
29
- { type: "notContains", text: "nullable: true" },
30
- ],
31
- },
32
- {
33
- name: "should render nullable point field correctly",
34
- field: {
35
- name: "optionalLocation",
36
- dataType: "{ x: number, y: number }",
37
- nullable: true,
38
- },
39
- assertions: [
40
- { type: "contains", text: "@Column({" },
41
- { type: "contains", text: '"type": "point"' },
42
- { type: "contains", text: "nullable: true" },
43
- {
44
- type: "contains",
45
- text: "optionalLocation: { x: number, y: number };",
46
- },
47
- ],
48
- },
49
- {
50
- name: "should render indexed point field correctly",
51
- field: {
52
- name: "coordinates",
53
- dataType: "{ x: number, y: number }",
54
- nullable: false,
55
- index: true,
56
- },
57
- assertions: [
58
- { type: "contains", text: "@Index()" },
59
- { type: "contains", text: "coordinates: { x: number, y: number };" },
60
- ],
61
- },
62
- ];
63
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
64
- });
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const template_test_utils_1 = require("../utils/template-test-utils");
4
- const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)("Polygon Entity Template Tests", () => {
6
- // Setup Eta configuration once before all tests
7
- (0, globals_1.beforeAll)(() => {
8
- (0, template_test_utils_1.configureEta)();
9
- });
10
- const templatePath = "./entities/entity-col-polygon";
11
- const testCases = [
12
- {
13
- name: "should render basic polygon field correctly",
14
- field: {
15
- name: "boundary",
16
- dataType: "{ coordinates: Array<Array<{ x: number, y: number }>> }",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: "@Column({" },
21
- { type: "contains", text: '"type": "polygon"' },
22
- { type: "contains", text: "transformer: {" },
23
- {
24
- type: "contains",
25
- text: "to: (polygon: { coordinates: Array<Array<{x: number, y: number}>> } | null) => {",
26
- },
27
- { type: "contains", text: "from: (pgPolygon: string | null) => {" },
28
- {
29
- type: "contains",
30
- text: "boundary: { coordinates: Array<Array<{ x: number, y: number }>> };",
31
- },
32
- { type: "notContains", text: "nullable: true" },
33
- ],
34
- },
35
- {
36
- name: "should render nullable polygon field correctly",
37
- field: {
38
- name: "optionalBoundary",
39
- dataType: "{ coordinates: Array<Array<{ x: number, y: number }>> }",
40
- nullable: true,
41
- },
42
- assertions: [
43
- { type: "contains", text: "@Column({" },
44
- { type: "contains", text: '"type": "polygon"' },
45
- { type: "contains", text: "nullable: true" },
46
- {
47
- type: "contains",
48
- text: "optionalBoundary: { coordinates: Array<Array<{ x: number, y: number }>> };",
49
- },
50
- ],
51
- },
52
- {
53
- name: "should render indexed polygon field correctly",
54
- field: {
55
- name: "area",
56
- dataType: "{ coordinates: Array<Array<{ x: number, y: number }>> }",
57
- nullable: false,
58
- index: true,
59
- },
60
- assertions: [
61
- { type: "contains", text: "@Index()" },
62
- {
63
- type: "contains",
64
- text: "area: { coordinates: Array<Array<{ x: number, y: number }>> };",
65
- },
66
- ],
67
- },
68
- ];
69
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
70
- });
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const template_test_utils_1 = require("../utils/template-test-utils");
4
- const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)("Real Entity Template Tests", () => {
6
- // Setup Eta configuration once before all tests
7
- (0, globals_1.beforeAll)(() => {
8
- (0, template_test_utils_1.configureEta)();
9
- });
10
- const templatePath = "./entities/entity-col-real";
11
- const testCases = [
12
- {
13
- name: "should render basic real field correctly",
14
- field: {
15
- name: "measurement",
16
- dataType: "number",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: '@Column({ "type": "real"' },
21
- { type: "contains", text: "measurement: number;" },
22
- { type: "notContains", text: "@Index()" },
23
- { type: "notContains", text: "@PrimaryColumn()" },
24
- ],
25
- },
26
- {
27
- name: "should render nullable real field correctly",
28
- field: {
29
- name: "optionalMeasure",
30
- dataType: "number",
31
- nullable: true,
32
- },
33
- assertions: [
34
- { type: "contains", text: '@Column({ "type": "real"' },
35
- { type: "contains", text: "optionalMeasure: number;" },
36
- ],
37
- },
38
- {
39
- name: "should render real field with default value correctly",
40
- field: {
41
- name: "defaultMeasure",
42
- dataType: "number",
43
- nullable: false,
44
- default: 0,
45
- },
46
- assertions: [
47
- { type: "contains", text: '@Column({ "type": "real", default: 0 })' },
48
- { type: "contains", text: "defaultMeasure: number;" },
49
- ],
50
- },
51
- {
52
- name: "should render indexed real field correctly",
53
- field: {
54
- name: "indexedMeasure",
55
- dataType: "number",
56
- nullable: false,
57
- index: true,
58
- },
59
- assertions: [
60
- { type: "contains", text: '@Column({ "type": "real"' },
61
- { type: "contains", text: "@Index()" },
62
- { type: "contains", text: "indexedMeasure: number;" },
63
- ],
64
- },
65
- ];
66
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
67
- });
@@ -1,113 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const template_test_utils_1 = require("../utils/template-test-utils");
4
- const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)("Serial Entity Template Tests", () => {
6
- // Setup Eta configuration once before all tests
7
- (0, globals_1.beforeAll)(() => {
8
- (0, template_test_utils_1.configureEta)();
9
- });
10
- (0, globals_1.describe)("serial", () => {
11
- const templatePath = "./entities/entity-col-serial";
12
- const testCases = [
13
- {
14
- name: "should render basic serial field correctly",
15
- field: {
16
- name: "id",
17
- dataType: "number",
18
- nullable: false,
19
- },
20
- assertions: [
21
- { type: "contains", text: '@Column({ "type": "int" })' },
22
- { type: "contains", text: '@Generated("increment")' },
23
- { type: "contains", text: "id: number;" },
24
- { type: "notContains", text: "default:" },
25
- ],
26
- },
27
- {
28
- name: "should render indexed serial field correctly",
29
- field: {
30
- name: "recordId",
31
- dataType: "number",
32
- nullable: false,
33
- index: true,
34
- },
35
- assertions: [
36
- { type: "contains", text: '@Column({ "type": "int" })' },
37
- { type: "contains", text: '@Generated("increment")' },
38
- { type: "contains", text: "@Index()" },
39
- { type: "contains", text: "recordId: number;" },
40
- ],
41
- },
42
- {
43
- name: "should render primary key serial field correctly",
44
- field: {
45
- name: "id",
46
- dataType: "number",
47
- nullable: false,
48
- primary: true,
49
- },
50
- assertions: [
51
- { type: "contains", text: '@Column({ "type": "int" })' },
52
- { type: "contains", text: '@Generated("increment")' },
53
- { type: "contains", text: "@PrimaryColumn()" },
54
- { type: "contains", text: "id: number;" },
55
- ],
56
- },
57
- ];
58
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
59
- });
60
- (0, globals_1.describe)("bigserial", () => {
61
- const templatePath = "./entities/entity-col-bigserial";
62
- const testCases = [
63
- {
64
- name: "should render basic bigserial field correctly",
65
- field: {
66
- name: "id",
67
- dataType: "string",
68
- nullable: false,
69
- },
70
- assertions: [
71
- { type: "contains", text: '@Column({ "type": "bigint" })' },
72
- { type: "contains", text: '@Generated("increment")' },
73
- { type: "contains", text: "id: string;" },
74
- ],
75
- },
76
- {
77
- name: "should render primary key bigserial field correctly",
78
- field: {
79
- name: "id",
80
- dataType: "string",
81
- nullable: false,
82
- primary: true,
83
- },
84
- assertions: [
85
- { type: "contains", text: '@Column({ "type": "bigint" })' },
86
- { type: "contains", text: '@Generated("increment")' },
87
- { type: "contains", text: "@PrimaryColumn()" },
88
- { type: "contains", text: "id: string;" },
89
- ],
90
- },
91
- ];
92
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
93
- });
94
- (0, globals_1.describe)("smallserial", () => {
95
- const templatePath = "./entities/entity-col-smallserial";
96
- const testCases = [
97
- {
98
- name: "should render basic smallserial field correctly",
99
- field: {
100
- name: "id",
101
- dataType: "number",
102
- nullable: false,
103
- },
104
- assertions: [
105
- { type: "contains", text: '@Column({ "type": "smallint" })' },
106
- { type: "contains", text: '@Generated("increment")' },
107
- { type: "contains", text: "id: number;" },
108
- ],
109
- },
110
- ];
111
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
112
- });
113
- });
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const template_test_utils_1 = require("../utils/template-test-utils");
4
- const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)("SmallInt Entity Template Tests", () => {
6
- // Setup Eta configuration once before all tests
7
- (0, globals_1.beforeAll)(() => {
8
- (0, template_test_utils_1.configureEta)();
9
- });
10
- const templatePath = "./entities/entity-col-smallint";
11
- const testCases = [
12
- {
13
- name: "should render basic smallint field correctly",
14
- field: {
15
- name: "smallCounter",
16
- dataType: "number",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: '@Column({ "type": "smallint"' },
21
- { type: "contains", text: "smallCounter: number;" },
22
- { type: "notContains", text: "@Index()" },
23
- { type: "notContains", text: "@PrimaryColumn()" },
24
- ],
25
- },
26
- {
27
- name: "should render nullable smallint field correctly",
28
- field: {
29
- name: "optionalCounter",
30
- dataType: "number",
31
- nullable: true,
32
- },
33
- assertions: [
34
- { type: "contains", text: '@Column({ "type": "smallint"' },
35
- { type: "contains", text: "optionalCounter: number;" },
36
- ],
37
- },
38
- {
39
- name: "should render smallint field with default value correctly",
40
- field: {
41
- name: "defaultCounter",
42
- dataType: "number",
43
- nullable: false,
44
- default: 0,
45
- },
46
- assertions: [
47
- { type: "contains", text: '@Column({ "type": "smallint"' },
48
- { type: "contains", text: "default: 0" },
49
- { type: "contains", text: "defaultCounter: number;" },
50
- ],
51
- },
52
- {
53
- name: "should render indexed smallint field correctly",
54
- field: {
55
- name: "indexedCounter",
56
- dataType: "number",
57
- nullable: false,
58
- index: true,
59
- },
60
- assertions: [
61
- { type: "contains", text: '@Column({ "type": "smallint"' },
62
- { type: "contains", text: "@Index()" },
63
- { type: "contains", text: "indexedCounter: number;" },
64
- ],
65
- },
66
- {
67
- name: "should render primary key smallint field correctly",
68
- field: {
69
- name: "id",
70
- dataType: "number",
71
- nullable: false,
72
- primary: true,
73
- },
74
- assertions: [
75
- { type: "contains", text: '@Column({ "type": "smallint"' },
76
- { type: "contains", text: "@PrimaryColumn()" },
77
- { type: "contains", text: "id: number;" },
78
- ],
79
- },
80
- ];
81
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
82
- });
@@ -1,111 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const template_test_utils_1 = require("../utils/template-test-utils");
4
- const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)("String Entity Template Tests", () => {
6
- // Setup Eta configuration once before all tests
7
- (0, globals_1.beforeAll)(() => {
8
- (0, template_test_utils_1.configureEta)();
9
- });
10
- const templatePath = "./entities/entity-col-string";
11
- const testCases = [
12
- {
13
- name: "should render basic string field correctly",
14
- field: {
15
- name: "fullName",
16
- dataType: "string",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: "@IsOptional({ groups: [UPDATE] })" },
21
- { type: "contains", text: "@IsNotEmpty({ groups: [CREATE] })" },
22
- { type: "contains", text: '@Column({ type: "text", nullable: false' },
23
- { type: "contains", text: "fullName: string;" },
24
- { type: "notContains", text: "@Index()" },
25
- { type: "notContains", text: "@PrimaryColumn()" },
26
- { type: "notContains", text: "@IsEmail" },
27
- ],
28
- },
29
- {
30
- name: "should render nullable string field correctly",
31
- field: {
32
- name: "description",
33
- dataType: "string",
34
- nullable: true,
35
- },
36
- assertions: [
37
- { type: "contains", text: "@IsOptional({ groups: [UPDATE] })" },
38
- { type: "notContains", text: "@IsNotEmpty({ groups: [CREATE] })" },
39
- { type: "contains", text: '@Column({ type: "text", nullable: true' },
40
- { type: "contains", text: "description: string;" },
41
- ],
42
- },
43
- {
44
- name: "should render string field with default value correctly",
45
- field: {
46
- name: "status",
47
- dataType: "string",
48
- nullable: false,
49
- default: "active",
50
- },
51
- assertions: [
52
- { type: "contains", text: "default: 'active'" },
53
- { type: "contains", text: "status: string;" },
54
- ],
55
- },
56
- {
57
- name: "should render indexed string field correctly",
58
- field: {
59
- name: "email",
60
- dataType: "string",
61
- nullable: false,
62
- index: true,
63
- },
64
- assertions: [
65
- { type: "contains", text: "@Index()" },
66
- { type: "contains", text: "email: string;" },
67
- ],
68
- },
69
- {
70
- name: "should render primary key string field correctly",
71
- field: {
72
- name: "id",
73
- dataType: "string",
74
- nullable: false,
75
- primary: true,
76
- },
77
- assertions: [
78
- { type: "contains", text: "@PrimaryColumn()" },
79
- { type: "contains", text: "id: string;" },
80
- ],
81
- },
82
- {
83
- name: "should render unique string field correctly",
84
- field: {
85
- name: "username",
86
- dataType: "string",
87
- nullable: false,
88
- unique: true,
89
- },
90
- assertions: [
91
- { type: "contains", text: "unique: true" },
92
- { type: "contains", text: "username: string;" },
93
- ],
94
- },
95
- {
96
- name: "should render email field correctly",
97
- field: {
98
- name: "email",
99
- dataType: "string",
100
- nullable: false,
101
- // eslint-disable-next-line camelcase
102
- is_email: true,
103
- },
104
- assertions: [
105
- { type: "contains", text: "@IsEmail(" },
106
- { type: "contains", text: "email: string;" },
107
- ],
108
- },
109
- ];
110
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
111
- });
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const template_test_utils_1 = require("../utils/template-test-utils");
4
- const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)("Text Entity Template Tests", () => {
6
- // Setup Eta configuration once before all tests
7
- (0, globals_1.beforeAll)(() => {
8
- (0, template_test_utils_1.configureEta)();
9
- });
10
- const templatePath = "./entities/entity-col-text";
11
- const testCases = [
12
- {
13
- name: "should render basic text field correctly",
14
- field: {
15
- name: "content",
16
- dataType: "string",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: '@Column({ type: "text"' },
21
- { type: "contains", text: "@IsOptional({ groups: [UPDATE] })" },
22
- { type: "contains", text: "@IsNotEmpty({ groups: [CREATE] })" },
23
- { type: "contains", text: "content: string;" },
24
- { type: "notContains", text: "@Index()" },
25
- ],
26
- },
27
- {
28
- name: "should render nullable text field correctly",
29
- field: {
30
- name: "optionalContent",
31
- dataType: "string",
32
- nullable: true,
33
- },
34
- assertions: [
35
- { type: "contains", text: '@Column({ type: "text"' },
36
- { type: "contains", text: "nullable: true" },
37
- { type: "contains", text: "@IsOptional({ groups: [UPDATE] })" },
38
- { type: "contains", text: "optionalContent: string;" },
39
- ],
40
- },
41
- {
42
- name: "should render text field with default value correctly",
43
- field: {
44
- name: "defaultContent",
45
- dataType: "string",
46
- nullable: false,
47
- default: "'empty'",
48
- },
49
- assertions: [
50
- { type: "contains", text: '@Column({ type: "text"' },
51
- { type: "contains", text: "defaultContent: string;" },
52
- ],
53
- },
54
- {
55
- name: "should render indexed text field correctly",
56
- field: {
57
- name: "indexedContent",
58
- dataType: "string",
59
- nullable: false,
60
- index: true,
61
- },
62
- assertions: [
63
- { type: "contains", text: '@Column({ type: "text"' },
64
- { type: "contains", text: "@Index()" },
65
- { type: "contains", text: "indexedContent: string;" },
66
- ],
67
- },
68
- ];
69
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
70
- });
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const template_test_utils_1 = require("../utils/template-test-utils");
4
- const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)("Time Entity Template Tests", () => {
6
- // Setup Eta configuration once before all tests
7
- (0, globals_1.beforeAll)(() => {
8
- (0, template_test_utils_1.configureEta)();
9
- });
10
- const templatePath = "./entities/entity-col-time";
11
- const testCases = [
12
- {
13
- name: "should render basic time field correctly",
14
- field: {
15
- name: "startTime",
16
- dataType: "string",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: '@Column({ "type": "time"' },
21
- { type: "contains", text: "startTime: string;" },
22
- { type: "notContains", text: "@Index()" },
23
- { type: "notContains", text: "@PrimaryColumn()" },
24
- ],
25
- },
26
- {
27
- name: "should render nullable time field correctly",
28
- field: {
29
- name: "optionalTime",
30
- dataType: "string",
31
- nullable: true,
32
- },
33
- assertions: [
34
- { type: "contains", text: '@Column({ "type": "time"' },
35
- { type: "contains", text: "optionalTime: string;" },
36
- ],
37
- },
38
- {
39
- name: "should render time field with default value correctly",
40
- field: {
41
- name: "defaultTime",
42
- dataType: "string",
43
- nullable: false,
44
- default: "12:00:00",
45
- },
46
- assertions: [
47
- { type: "contains", text: '@Column({ "type": "time"' },
48
- { type: "contains", text: "default: 12:00:00" },
49
- { type: "contains", text: "defaultTime: string;" },
50
- ],
51
- },
52
- {
53
- name: "should render indexed time field correctly",
54
- field: {
55
- name: "indexedTime",
56
- dataType: "string",
57
- nullable: false,
58
- index: true,
59
- },
60
- assertions: [
61
- { type: "contains", text: '@Column({ "type": "time"' },
62
- { type: "contains", text: "@Index()" },
63
- { type: "contains", text: "indexedTime: string;" },
64
- ],
65
- },
66
- ];
67
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
68
- });