@apso/cli 0.7.3 → 0.8.2

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 (204) 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 +11 -0
  6. package/dist/commands/server/scaffold.js +213 -12
  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 +18 -5
  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/templates/rest/service-rest.eta +50 -10
  122. package/dist/lib/types/generator.d.ts +241 -0
  123. package/dist/lib/types/generator.js +2 -0
  124. package/dist/lib/types/index.d.ts +1 -0
  125. package/dist/lib/utils/casing.d.ts +1 -0
  126. package/dist/lib/utils/casing.js +11 -1
  127. package/oclif.manifest.json +39 -3
  128. package/package.json +4 -2
  129. package/dist/lib/utils/relationships/parse.spec.d.ts +0 -1
  130. package/dist/lib/utils/relationships/parse.spec.js +0 -402
  131. package/dist/tests/templates/entities/types/array-template.spec.d.ts +0 -1
  132. package/dist/tests/templates/entities/types/array-template.spec.js +0 -82
  133. package/dist/tests/templates/entities/types/bigint-template.spec.d.ts +0 -1
  134. package/dist/tests/templates/entities/types/bigint-template.spec.js +0 -82
  135. package/dist/tests/templates/entities/types/boolean-template.spec.d.ts +0 -1
  136. package/dist/tests/templates/entities/types/boolean-template.spec.js +0 -77
  137. package/dist/tests/templates/entities/types/bytea-template.spec.d.ts +0 -1
  138. package/dist/tests/templates/entities/types/bytea-template.spec.js +0 -68
  139. package/dist/tests/templates/entities/types/char-template.spec.d.ts +0 -1
  140. package/dist/tests/templates/entities/types/char-template.spec.js +0 -68
  141. package/dist/tests/templates/entities/types/date-template.spec.d.ts +0 -1
  142. package/dist/tests/templates/entities/types/date-template.spec.js +0 -56
  143. package/dist/tests/templates/entities/types/decimal-field-validation.spec.d.ts +0 -1
  144. package/dist/tests/templates/entities/types/decimal-field-validation.spec.js +0 -100
  145. package/dist/tests/templates/entities/types/decimal-template.spec.d.ts +0 -1
  146. package/dist/tests/templates/entities/types/decimal-template.spec.js +0 -86
  147. package/dist/tests/templates/entities/types/double-template.spec.d.ts +0 -1
  148. package/dist/tests/templates/entities/types/double-template.spec.js +0 -70
  149. package/dist/tests/templates/entities/types/enum-template.spec.d.ts +0 -1
  150. package/dist/tests/templates/entities/types/enum-template.spec.js +0 -85
  151. package/dist/tests/templates/entities/types/float-template.spec.d.ts +0 -1
  152. package/dist/tests/templates/entities/types/float-template.spec.js +0 -70
  153. package/dist/tests/templates/entities/types/geometry-template.spec.d.ts +0 -1
  154. package/dist/tests/templates/entities/types/geometry-template.spec.js +0 -58
  155. package/dist/tests/templates/entities/types/inet-template.spec.d.ts +0 -1
  156. package/dist/tests/templates/entities/types/inet-template.spec.js +0 -69
  157. package/dist/tests/templates/entities/types/int4range-template.spec.d.ts +0 -1
  158. package/dist/tests/templates/entities/types/int4range-template.spec.js +0 -72
  159. package/dist/tests/templates/entities/types/integer-template.spec.d.ts +0 -1
  160. package/dist/tests/templates/entities/types/integer-template.spec.js +0 -79
  161. package/dist/tests/templates/entities/types/interval-template.spec.d.ts +0 -1
  162. package/dist/tests/templates/entities/types/interval-template.spec.js +0 -68
  163. package/dist/tests/templates/entities/types/json-plain-template.spec.d.ts +0 -1
  164. package/dist/tests/templates/entities/types/json-plain-template.spec.js +0 -54
  165. package/dist/tests/templates/entities/types/json-template.spec.d.ts +0 -1
  166. package/dist/tests/templates/entities/types/json-template.spec.js +0 -40
  167. package/dist/tests/templates/entities/types/jsonb-template.spec.d.ts +0 -1
  168. package/dist/tests/templates/entities/types/jsonb-template.spec.js +0 -40
  169. package/dist/tests/templates/entities/types/money-template.spec.d.ts +0 -1
  170. package/dist/tests/templates/entities/types/money-template.spec.js +0 -68
  171. package/dist/tests/templates/entities/types/numeric-template.spec.d.ts +0 -1
  172. package/dist/tests/templates/entities/types/numeric-template.spec.js +0 -84
  173. package/dist/tests/templates/entities/types/point-template.spec.d.ts +0 -1
  174. package/dist/tests/templates/entities/types/point-template.spec.js +0 -64
  175. package/dist/tests/templates/entities/types/polygon-template.spec.d.ts +0 -1
  176. package/dist/tests/templates/entities/types/polygon-template.spec.js +0 -70
  177. package/dist/tests/templates/entities/types/real-template.spec.d.ts +0 -1
  178. package/dist/tests/templates/entities/types/real-template.spec.js +0 -67
  179. package/dist/tests/templates/entities/types/serial-template.spec.d.ts +0 -1
  180. package/dist/tests/templates/entities/types/serial-template.spec.js +0 -113
  181. package/dist/tests/templates/entities/types/smallint-template.spec.d.ts +0 -1
  182. package/dist/tests/templates/entities/types/smallint-template.spec.js +0 -82
  183. package/dist/tests/templates/entities/types/string-template.spec.d.ts +0 -1
  184. package/dist/tests/templates/entities/types/string-template.spec.js +0 -111
  185. package/dist/tests/templates/entities/types/text-template.spec.d.ts +0 -1
  186. package/dist/tests/templates/entities/types/text-template.spec.js +0 -70
  187. package/dist/tests/templates/entities/types/time-template.spec.d.ts +0 -1
  188. package/dist/tests/templates/entities/types/time-template.spec.js +0 -68
  189. package/dist/tests/templates/entities/types/timestamp-template.spec.d.ts +0 -1
  190. package/dist/tests/templates/entities/types/timestamp-template.spec.js +0 -74
  191. package/dist/tests/templates/entities/types/timetz-template.spec.d.ts +0 -1
  192. package/dist/tests/templates/entities/types/timetz-template.spec.js +0 -68
  193. package/dist/tests/templates/entities/types/tsvector-template.spec.d.ts +0 -1
  194. package/dist/tests/templates/entities/types/tsvector-template.spec.js +0 -55
  195. package/dist/tests/templates/entities/types/uuid-template.spec.d.ts +0 -1
  196. package/dist/tests/templates/entities/types/uuid-template.spec.js +0 -82
  197. package/dist/tests/templates/entities/types/varchar-template.spec.d.ts +0 -1
  198. package/dist/tests/templates/entities/types/varchar-template.spec.js +0 -105
  199. package/dist/tests/templates/entities/types/xml-template.spec.d.ts +0 -1
  200. package/dist/tests/templates/entities/types/xml-template.spec.js +0 -55
  201. package/dist/tests/templates/entities/uuid-entity-template.spec.d.ts +0 -1
  202. package/dist/tests/templates/entities/uuid-entity-template.spec.js +0 -277
  203. package/dist/tests/utils/relationship-deduplication.spec.d.ts +0 -1
  204. package/dist/tests/utils/relationship-deduplication.spec.js +0 -98
@@ -1,58 +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)("Geometry 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-geometry";
11
- const testCases = [
12
- {
13
- name: "should render basic geometry field correctly",
14
- field: {
15
- name: "shape",
16
- dataType: "any",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: "@Column({" },
21
- { type: "contains", text: '"type": "geometry"' },
22
- { type: "contains", text: "transformer: {" },
23
- { type: "contains", text: "to: (geometry: any) => {" },
24
- { type: "contains", text: "from: (pgGeometry: any) => {" },
25
- { type: "contains", text: "shape: any;" },
26
- { type: "notContains", text: "nullable: true" },
27
- ],
28
- },
29
- {
30
- name: "should render nullable geometry field correctly",
31
- field: {
32
- name: "optionalShape",
33
- dataType: "any",
34
- nullable: true,
35
- },
36
- assertions: [
37
- { type: "contains", text: "@Column({" },
38
- { type: "contains", text: '"type": "geometry"' },
39
- { type: "contains", text: "nullable: true" },
40
- { type: "contains", text: "optionalShape: any;" },
41
- ],
42
- },
43
- {
44
- name: "should render indexed geometry field correctly",
45
- field: {
46
- name: "spatialData",
47
- dataType: "any",
48
- nullable: false,
49
- index: true,
50
- },
51
- assertions: [
52
- { type: "contains", text: "@Index()" },
53
- { type: "contains", text: "spatialData: any;" },
54
- ],
55
- },
56
- ];
57
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
58
- });
@@ -1,69 +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)("Inet 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-inet";
11
- const testCases = [
12
- {
13
- name: "should render basic inet field correctly",
14
- field: {
15
- name: "ipAddress",
16
- dataType: "string",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: '@Column({ "type": "inet"' },
21
- { type: "contains", text: "ipAddress: string;" },
22
- { type: "notContains", text: "@Index()" },
23
- { type: "notContains", text: "@PrimaryColumn()" },
24
- ],
25
- },
26
- {
27
- name: "should render nullable inet field correctly",
28
- field: {
29
- name: "optionalIp",
30
- dataType: "string",
31
- nullable: true,
32
- },
33
- assertions: [
34
- { type: "contains", text: '@Column({ "type": "inet"' },
35
- { type: "contains", text: "nullable: true" },
36
- { type: "contains", text: "optionalIp: string;" },
37
- ],
38
- },
39
- {
40
- name: "should render inet field with default value correctly",
41
- field: {
42
- name: "defaultIp",
43
- dataType: "string",
44
- nullable: false,
45
- default: "127.0.0.1",
46
- },
47
- assertions: [
48
- { type: "contains", text: '@Column({ "type": "inet"' },
49
- { type: "contains", text: "default: 127.0.0.1" },
50
- { type: "contains", text: "defaultIp: string;" },
51
- ],
52
- },
53
- {
54
- name: "should render indexed inet field correctly",
55
- field: {
56
- name: "indexedIp",
57
- dataType: "string",
58
- nullable: false,
59
- index: true,
60
- },
61
- assertions: [
62
- { type: "contains", text: '@Column({ "type": "inet"' },
63
- { type: "contains", text: "@Index()" },
64
- { type: "contains", text: "indexedIp: string;" },
65
- ],
66
- },
67
- ];
68
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
69
- });
@@ -1,72 +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)("Int4Range 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-int4range";
11
- const testCases = [
12
- {
13
- name: "should render basic int4range field correctly",
14
- field: {
15
- name: "ageRange",
16
- dataType: "{lower: number, upper: number, lowerInclusive: boolean, upperInclusive: boolean}",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: "@Column({" },
21
- { type: "contains", text: '"type": "int4range"' },
22
- { type: "contains", text: "transformer: {" },
23
- {
24
- type: "contains",
25
- text: "to: (range: {lower: number, upper: number, lowerInclusive: boolean, upperInclusive: boolean}",
26
- },
27
- { type: "contains", text: "from: (pgRange: string | null)" },
28
- { type: "contains", text: "const lowerInclusive = pgRange.startsWith" },
29
- { type: "contains", text: "const upperInclusive = pgRange.endsWith" },
30
- {
31
- type: "contains",
32
- text: "ageRange: {lower: number, upper: number, lowerInclusive: boolean, upperInclusive: boolean};",
33
- },
34
- { type: "notContains", text: "nullable: true" },
35
- ],
36
- },
37
- {
38
- name: "should render nullable int4range field correctly",
39
- field: {
40
- name: "optionalRange",
41
- dataType: "{lower: number, upper: number, lowerInclusive: boolean, upperInclusive: boolean}",
42
- nullable: true,
43
- },
44
- assertions: [
45
- { type: "contains", text: "@Column({" },
46
- { type: "contains", text: '"type": "int4range"' },
47
- { type: "contains", text: "nullable: true" },
48
- {
49
- type: "contains",
50
- text: "optionalRange: {lower: number, upper: number, lowerInclusive: boolean, upperInclusive: boolean};",
51
- },
52
- ],
53
- },
54
- {
55
- name: "should render indexed int4range field correctly",
56
- field: {
57
- name: "valueRange",
58
- dataType: "{lower: number, upper: number, lowerInclusive: boolean, upperInclusive: boolean}",
59
- nullable: false,
60
- index: true,
61
- },
62
- assertions: [
63
- { type: "contains", text: "@Index()" },
64
- {
65
- type: "contains",
66
- text: "valueRange: {lower: number, upper: number, lowerInclusive: boolean, upperInclusive: boolean};",
67
- },
68
- ],
69
- },
70
- ];
71
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
72
- });
@@ -1,79 +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)("Integer 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-integer";
11
- const testCases = [
12
- {
13
- name: "should render basic integer field correctly",
14
- field: {
15
- name: "count",
16
- dataType: "number",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: '@Column({ "type": "int"' },
21
- { type: "contains", text: "count: number;" },
22
- { type: "notContains", text: "@Index()" },
23
- { type: "notContains", text: "@PrimaryColumn()" },
24
- ],
25
- },
26
- {
27
- name: "should render nullable integer field correctly",
28
- field: {
29
- name: "optionalCount",
30
- dataType: "number",
31
- nullable: true,
32
- },
33
- assertions: [
34
- { type: "contains", text: '@Column({ "type": "int"' },
35
- { type: "contains", text: "optionalCount: number;" },
36
- ],
37
- },
38
- {
39
- name: "should render integer field with default value correctly",
40
- field: {
41
- name: "quantity",
42
- dataType: "number",
43
- nullable: false,
44
- default: 0,
45
- },
46
- assertions: [
47
- { type: "contains", text: "default: 0" },
48
- { type: "contains", text: "quantity: number;" },
49
- ],
50
- },
51
- {
52
- name: "should render indexed integer field correctly",
53
- field: {
54
- name: "userId",
55
- dataType: "number",
56
- nullable: false,
57
- index: true,
58
- },
59
- assertions: [
60
- { type: "contains", text: "@Index()" },
61
- { type: "contains", text: "userId: number;" },
62
- ],
63
- },
64
- {
65
- name: "should render primary key integer field correctly",
66
- field: {
67
- name: "id",
68
- dataType: "number",
69
- nullable: false,
70
- primary: true,
71
- },
72
- assertions: [
73
- { type: "contains", text: "@PrimaryColumn()" },
74
- { type: "contains", text: "id: number;" },
75
- ],
76
- },
77
- ];
78
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
79
- });
@@ -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)("Interval 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-interval";
11
- const testCases = [
12
- {
13
- name: "should render basic interval field correctly",
14
- field: {
15
- name: "duration",
16
- dataType: "string",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: '@Column({ "type": "interval"' },
21
- { type: "contains", text: "duration: string;" },
22
- { type: "notContains", text: "@Index()" },
23
- { type: "notContains", text: "@PrimaryColumn()" },
24
- ],
25
- },
26
- {
27
- name: "should render nullable interval field correctly",
28
- field: {
29
- name: "optionalDuration",
30
- dataType: "string",
31
- nullable: true,
32
- },
33
- assertions: [
34
- { type: "contains", text: '@Column({ "type": "interval"' },
35
- { type: "contains", text: "optionalDuration: string;" },
36
- ],
37
- },
38
- {
39
- name: "should render interval field with default value correctly",
40
- field: {
41
- name: "defaultDuration",
42
- dataType: "string",
43
- nullable: false,
44
- default: "1 day",
45
- },
46
- assertions: [
47
- { type: "contains", text: '@Column({ "type": "interval"' },
48
- { type: "contains", text: "default: 1 day" },
49
- { type: "contains", text: "defaultDuration: string;" },
50
- ],
51
- },
52
- {
53
- name: "should render indexed interval field correctly",
54
- field: {
55
- name: "indexedDuration",
56
- dataType: "string",
57
- nullable: false,
58
- index: true,
59
- },
60
- assertions: [
61
- { type: "contains", text: '@Column({ "type": "interval"' },
62
- { type: "contains", text: "@Index()" },
63
- { type: "contains", text: "indexedDuration: string;" },
64
- ],
65
- },
66
- ];
67
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
68
- });
@@ -1,54 +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)("Plain JSON 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-json-plain";
11
- const testCases = [
12
- {
13
- name: "should render basic plain JSON field correctly",
14
- field: {
15
- name: "metadata",
16
- dataType: "Record<string, any>",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: "@Column('json'" },
21
- { type: "contains", text: "metadata: JSON;" },
22
- { type: "notContains", text: "@Index()" },
23
- { type: "notContains", text: "@PrimaryColumn()" },
24
- ],
25
- },
26
- {
27
- name: "should render nullable plain JSON field correctly",
28
- field: {
29
- name: "optionalMeta",
30
- dataType: "Record<string, any>",
31
- nullable: true,
32
- },
33
- assertions: [
34
- { type: "contains", text: "@Column('json'" },
35
- { type: "contains", text: "nullable: true" },
36
- { type: "contains", text: "optionalMeta: JSON;" },
37
- ],
38
- },
39
- {
40
- name: "should render plain JSON field with default value correctly",
41
- field: {
42
- name: "defaultMeta",
43
- dataType: "Record<string, any>",
44
- nullable: false,
45
- default: "{}",
46
- },
47
- assertions: [
48
- { type: "contains", text: "@Column('json'" },
49
- { type: "contains", text: "defaultMeta: JSON;" },
50
- ],
51
- },
52
- ];
53
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
54
- });
@@ -1,40 +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)("JSON 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-json";
11
- const testCases = [
12
- {
13
- name: "should render basic json field correctly",
14
- field: {
15
- name: "jsonData",
16
- dataType: "json",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: "@Column('jsonb'" },
21
- { type: "contains", text: "nullable: false" },
22
- { type: "contains", text: "jsonData: JSON;" },
23
- ],
24
- },
25
- {
26
- name: "should render nullable json field correctly",
27
- field: {
28
- name: "optionalJsonData",
29
- dataType: "json",
30
- nullable: true,
31
- },
32
- assertions: [
33
- { type: "contains", text: "@Column('jsonb'" },
34
- { type: "contains", text: "nullable: true" },
35
- { type: "contains", text: "optionalJsonData: JSON;" },
36
- ],
37
- },
38
- ];
39
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
40
- });
@@ -1,40 +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)("JSONB 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-jsonb";
11
- const testCases = [
12
- {
13
- name: "should render basic jsonb field correctly",
14
- field: {
15
- name: "jsonData",
16
- dataType: "jsonb",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: "@Column('jsonb'" },
21
- { type: "contains", text: "nullable: false" },
22
- { type: "contains", text: "jsonData: any;" },
23
- ],
24
- },
25
- {
26
- name: "should render nullable jsonb field correctly",
27
- field: {
28
- name: "optionalJsonData",
29
- dataType: "jsonb",
30
- nullable: true,
31
- },
32
- assertions: [
33
- { type: "contains", text: "@Column('jsonb'" },
34
- { type: "contains", text: "nullable: true" },
35
- { type: "contains", text: "optionalJsonData: any;" },
36
- ],
37
- },
38
- ];
39
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
40
- });
@@ -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)("Money 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-money";
11
- const testCases = [
12
- {
13
- name: "should render basic money field correctly",
14
- field: {
15
- name: "price",
16
- dataType: "string",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: '@Column({ "type": "money"' },
21
- { type: "contains", text: "price: string;" },
22
- { type: "notContains", text: "@Index()" },
23
- { type: "notContains", text: "@PrimaryColumn()" },
24
- ],
25
- },
26
- {
27
- name: "should render nullable money field correctly",
28
- field: {
29
- name: "optionalPrice",
30
- dataType: "string",
31
- nullable: true,
32
- },
33
- assertions: [
34
- { type: "contains", text: '@Column({ "type": "money"' },
35
- { type: "contains", text: "optionalPrice: string;" },
36
- ],
37
- },
38
- {
39
- name: "should render money field with default value correctly",
40
- field: {
41
- name: "defaultPrice",
42
- dataType: "string",
43
- nullable: false,
44
- default: "0.00",
45
- },
46
- assertions: [
47
- { type: "contains", text: '@Column({ "type": "money"' },
48
- { type: "contains", text: "default: 0.00" },
49
- { type: "contains", text: "defaultPrice: string;" },
50
- ],
51
- },
52
- {
53
- name: "should render indexed money field correctly",
54
- field: {
55
- name: "indexedPrice",
56
- dataType: "string",
57
- nullable: false,
58
- index: true,
59
- },
60
- assertions: [
61
- { type: "contains", text: '@Column({ "type": "money"' },
62
- { type: "contains", text: "@Index()" },
63
- { type: "contains", text: "indexedPrice: string;" },
64
- ],
65
- },
66
- ];
67
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
68
- });
@@ -1,84 +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)("Numeric 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-numeric";
11
- const testCases = [
12
- {
13
- name: "should render basic numeric field correctly",
14
- field: {
15
- name: "numericValue",
16
- dataType: "number",
17
- nullable: false,
18
- },
19
- assertions: [
20
- { type: "contains", text: '@Column({ "type": "numeric"' },
21
- { type: "contains", text: "numericValue: number;" },
22
- { type: "notContains", text: "@Index()" },
23
- { type: "notContains", text: "@PrimaryColumn()" },
24
- ],
25
- },
26
- {
27
- name: "should render nullable numeric field correctly",
28
- field: {
29
- name: "optionalValue",
30
- dataType: "number",
31
- nullable: true,
32
- },
33
- assertions: [
34
- { type: "contains", text: '@Column({ "type": "numeric"' },
35
- { type: "contains", text: "optionalValue: number;" },
36
- ],
37
- },
38
- {
39
- name: "should render numeric field with precision and scale correctly",
40
- field: {
41
- name: "preciseValue",
42
- dataType: "number",
43
- nullable: false,
44
- precision: 12,
45
- scale: 4,
46
- },
47
- assertions: [
48
- { type: "contains", text: '@Column({ "type": "numeric"' },
49
- { type: "contains", text: "precision: 12" },
50
- { type: "contains", text: "scale: 4" },
51
- { type: "contains", text: "preciseValue: number;" },
52
- ],
53
- },
54
- {
55
- name: "should render numeric field with default value correctly",
56
- field: {
57
- name: "defaultValue",
58
- dataType: "number",
59
- nullable: false,
60
- default: 0,
61
- },
62
- assertions: [
63
- { type: "contains", text: '@Column({ "type": "numeric"' },
64
- { type: "contains", text: "default: 0" },
65
- { type: "contains", text: "defaultValue: number;" },
66
- ],
67
- },
68
- {
69
- name: "should render indexed numeric field correctly",
70
- field: {
71
- name: "indexedValue",
72
- dataType: "number",
73
- nullable: false,
74
- index: true,
75
- },
76
- assertions: [
77
- { type: "contains", text: '@Column({ "type": "numeric"' },
78
- { type: "contains", text: "@Index()" },
79
- { type: "contains", text: "indexedValue: number;" },
80
- ],
81
- },
82
- ];
83
- (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
84
- });