@apso/cli 0.7.4 → 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.
- package/dist/autogen/index.d.ts +2 -0
- package/dist/autogen/index.js +3 -0
- package/dist/commands/server/new.d.ts +4 -1
- package/dist/commands/server/new.js +115 -22
- package/dist/commands/server/scaffold.d.ts +10 -0
- package/dist/commands/server/scaffold.js +200 -10
- package/dist/lib/api/client.d.ts +65 -0
- package/dist/lib/api/client.js +305 -0
- package/dist/lib/api/index.d.ts +8 -0
- package/dist/lib/api/index.js +22 -0
- package/dist/lib/api/services.d.ts +166 -0
- package/dist/lib/api/services.js +202 -0
- package/dist/lib/api/types.d.ts +212 -0
- package/dist/lib/api/types.js +7 -0
- package/dist/lib/apsorc-parser.d.ts +3 -0
- package/dist/lib/apsorc-parser.js +4 -0
- package/dist/lib/config/index.d.ts +8 -0
- package/dist/lib/config/index.js +17 -0
- package/dist/lib/config/manager.d.ts +127 -0
- package/dist/lib/config/manager.js +304 -0
- package/dist/lib/config/paths.d.ts +65 -0
- package/dist/lib/config/paths.js +127 -0
- package/dist/lib/config/types.d.ts +230 -0
- package/dist/lib/config/types.js +30 -0
- package/dist/lib/generators/base.d.ts +93 -0
- package/dist/lib/generators/base.js +90 -0
- package/dist/lib/generators/go.d.ts +37 -0
- package/dist/lib/generators/go.js +340 -0
- package/dist/lib/generators/index.d.ts +21 -0
- package/dist/lib/generators/index.js +51 -0
- package/dist/lib/generators/python.d.ts +21 -0
- package/dist/lib/generators/python.js +253 -0
- package/dist/lib/generators/typescript.d.ts +25 -0
- package/dist/lib/generators/typescript.js +373 -0
- package/dist/lib/index.d.ts +2 -0
- package/dist/lib/index.js +9 -1
- package/dist/lib/templates/entities/entity-col-timestamp.eta +9 -2
- package/dist/lib/templates/entities/entity-col-timestamptz.eta +9 -2
- package/dist/lib/templates/entities/entity.eta +18 -5
- package/dist/lib/templates/go/dto/dto-col-array.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-boolean.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-date.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-decimal.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-enum.eta +8 -0
- package/dist/lib/templates/go/dto/dto-col-float.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-integer.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-json.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-jsonb.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-numeric.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-string.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-text.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-timestamp.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-timestamptz.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-uuid.eta +7 -0
- package/dist/lib/templates/go/dto/dto-col-varchar.eta +7 -0
- package/dist/lib/templates/go/dto/dto.eta +78 -0
- package/dist/lib/templates/go/enums.eta +44 -0
- package/dist/lib/templates/go/handlers/handler.eta +212 -0
- package/dist/lib/templates/go/header.eta +3 -0
- package/dist/lib/templates/go/index-module.eta +53 -0
- package/dist/lib/templates/go/middleware/auth.eta +101 -0
- package/dist/lib/templates/go/models/model-col-array.eta +1 -0
- package/dist/lib/templates/go/models/model-col-boolean.eta +1 -0
- package/dist/lib/templates/go/models/model-col-date.eta +1 -0
- package/dist/lib/templates/go/models/model-col-decimal.eta +1 -0
- package/dist/lib/templates/go/models/model-col-enum.eta +2 -0
- package/dist/lib/templates/go/models/model-col-float.eta +1 -0
- package/dist/lib/templates/go/models/model-col-integer.eta +1 -0
- package/dist/lib/templates/go/models/model-col-json.eta +1 -0
- package/dist/lib/templates/go/models/model-col-jsonb.eta +1 -0
- package/dist/lib/templates/go/models/model-col-numeric.eta +1 -0
- package/dist/lib/templates/go/models/model-col-string.eta +1 -0
- package/dist/lib/templates/go/models/model-col-text.eta +1 -0
- package/dist/lib/templates/go/models/model-col-timestamp.eta +1 -0
- package/dist/lib/templates/go/models/model-col-timestamptz.eta +1 -0
- package/dist/lib/templates/go/models/model-col-uuid.eta +1 -0
- package/dist/lib/templates/go/models/model-col-varchar.eta +1 -0
- package/dist/lib/templates/go/models/model.eta +53 -0
- package/dist/lib/templates/go/services/service.eta +190 -0
- package/dist/lib/templates/python/enums.eta +10 -0
- package/dist/lib/templates/python/header.eta +6 -0
- package/dist/lib/templates/python/index-module.eta +18 -0
- package/dist/lib/templates/python/models/model-col-array.eta +4 -0
- package/dist/lib/templates/python/models/model-col-boolean.eta +5 -0
- package/dist/lib/templates/python/models/model-col-date.eta +4 -0
- package/dist/lib/templates/python/models/model-col-decimal.eta +4 -0
- package/dist/lib/templates/python/models/model-col-enum.eta +16 -0
- package/dist/lib/templates/python/models/model-col-float.eta +5 -0
- package/dist/lib/templates/python/models/model-col-integer.eta +6 -0
- package/dist/lib/templates/python/models/model-col-json.eta +4 -0
- package/dist/lib/templates/python/models/model-col-jsonb.eta +4 -0
- package/dist/lib/templates/python/models/model-col-numeric.eta +4 -0
- package/dist/lib/templates/python/models/model-col-string.eta +6 -0
- package/dist/lib/templates/python/models/model-col-text.eta +6 -0
- package/dist/lib/templates/python/models/model-col-timestamp.eta +11 -0
- package/dist/lib/templates/python/models/model-col-timestamptz.eta +11 -0
- package/dist/lib/templates/python/models/model-col-uuid.eta +5 -0
- package/dist/lib/templates/python/models/model-col-varchar.eta +6 -0
- package/dist/lib/templates/python/models/model.eta +124 -0
- package/dist/lib/templates/python/routers/router.eta +206 -0
- package/dist/lib/templates/python/schemas/schema-col-array.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-boolean.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-date.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-decimal.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-enum.eta +6 -0
- package/dist/lib/templates/python/schemas/schema-col-float.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-integer.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-json.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-jsonb.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-numeric.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-string.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-text.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-timestamp.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-timestamptz.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-uuid.eta +1 -0
- package/dist/lib/templates/python/schemas/schema-col-varchar.eta +1 -0
- package/dist/lib/templates/python/schemas/schema.eta +87 -0
- package/dist/lib/templates/python/services/service.eta +163 -0
- package/dist/lib/templates/rest/controller-rest.eta +13 -12
- package/dist/lib/templates/rest/dto-rest.eta +173 -59
- package/dist/lib/types/generator.d.ts +241 -0
- package/dist/lib/types/generator.js +2 -0
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/utils/casing.d.ts +1 -0
- package/dist/lib/utils/casing.js +11 -1
- package/oclif.manifest.json +32 -3
- package/package.json +4 -2
- package/dist/lib/utils/relationships/parse.spec.d.ts +0 -1
- package/dist/lib/utils/relationships/parse.spec.js +0 -402
- package/dist/tests/templates/entities/types/array-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/array-template.spec.js +0 -82
- package/dist/tests/templates/entities/types/bigint-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/bigint-template.spec.js +0 -82
- package/dist/tests/templates/entities/types/boolean-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/boolean-template.spec.js +0 -77
- package/dist/tests/templates/entities/types/bytea-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/bytea-template.spec.js +0 -68
- package/dist/tests/templates/entities/types/char-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/char-template.spec.js +0 -68
- package/dist/tests/templates/entities/types/date-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/date-template.spec.js +0 -56
- package/dist/tests/templates/entities/types/decimal-field-validation.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/decimal-field-validation.spec.js +0 -100
- package/dist/tests/templates/entities/types/decimal-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/decimal-template.spec.js +0 -86
- package/dist/tests/templates/entities/types/double-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/double-template.spec.js +0 -70
- package/dist/tests/templates/entities/types/enum-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/enum-template.spec.js +0 -85
- package/dist/tests/templates/entities/types/float-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/float-template.spec.js +0 -70
- package/dist/tests/templates/entities/types/geometry-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/geometry-template.spec.js +0 -58
- package/dist/tests/templates/entities/types/inet-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/inet-template.spec.js +0 -69
- package/dist/tests/templates/entities/types/int4range-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/int4range-template.spec.js +0 -72
- package/dist/tests/templates/entities/types/integer-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/integer-template.spec.js +0 -79
- package/dist/tests/templates/entities/types/interval-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/interval-template.spec.js +0 -68
- package/dist/tests/templates/entities/types/json-plain-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/json-plain-template.spec.js +0 -54
- package/dist/tests/templates/entities/types/json-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/json-template.spec.js +0 -40
- package/dist/tests/templates/entities/types/jsonb-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/jsonb-template.spec.js +0 -40
- package/dist/tests/templates/entities/types/money-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/money-template.spec.js +0 -68
- package/dist/tests/templates/entities/types/numeric-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/numeric-template.spec.js +0 -84
- package/dist/tests/templates/entities/types/point-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/point-template.spec.js +0 -64
- package/dist/tests/templates/entities/types/polygon-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/polygon-template.spec.js +0 -70
- package/dist/tests/templates/entities/types/real-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/real-template.spec.js +0 -67
- package/dist/tests/templates/entities/types/serial-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/serial-template.spec.js +0 -113
- package/dist/tests/templates/entities/types/smallint-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/smallint-template.spec.js +0 -82
- package/dist/tests/templates/entities/types/string-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/string-template.spec.js +0 -111
- package/dist/tests/templates/entities/types/text-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/text-template.spec.js +0 -70
- package/dist/tests/templates/entities/types/time-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/time-template.spec.js +0 -68
- package/dist/tests/templates/entities/types/timestamp-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/timestamp-template.spec.js +0 -74
- package/dist/tests/templates/entities/types/timetz-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/timetz-template.spec.js +0 -68
- package/dist/tests/templates/entities/types/tsvector-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/tsvector-template.spec.js +0 -55
- package/dist/tests/templates/entities/types/uuid-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/uuid-template.spec.js +0 -82
- package/dist/tests/templates/entities/types/varchar-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/varchar-template.spec.js +0 -105
- package/dist/tests/templates/entities/types/xml-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/types/xml-template.spec.js +0 -55
- package/dist/tests/templates/entities/uuid-entity-template.spec.d.ts +0 -1
- package/dist/tests/templates/entities/uuid-entity-template.spec.js +0 -277
- package/dist/tests/utils/relationship-deduplication.spec.d.ts +0 -1
- package/dist/tests/utils/relationship-deduplication.spec.js +0 -98
|
@@ -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)("Bytea 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-bytea";
|
|
11
|
-
const testCases = [
|
|
12
|
-
{
|
|
13
|
-
name: "should render basic bytea field correctly",
|
|
14
|
-
field: {
|
|
15
|
-
name: "binaryData",
|
|
16
|
-
dataType: "Buffer",
|
|
17
|
-
nullable: false,
|
|
18
|
-
},
|
|
19
|
-
assertions: [
|
|
20
|
-
{ type: "contains", text: '@Column({ "type": "bytea"' },
|
|
21
|
-
{ type: "contains", text: "binaryData: Buffer;" },
|
|
22
|
-
{ type: "notContains", text: "@Index()" },
|
|
23
|
-
{ type: "notContains", text: "@PrimaryColumn()" },
|
|
24
|
-
],
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "should render nullable bytea field correctly",
|
|
28
|
-
field: {
|
|
29
|
-
name: "optionalData",
|
|
30
|
-
dataType: "Buffer",
|
|
31
|
-
nullable: true,
|
|
32
|
-
},
|
|
33
|
-
assertions: [
|
|
34
|
-
{ type: "contains", text: '@Column({ "type": "bytea"' },
|
|
35
|
-
{ type: "contains", text: "optionalData: Buffer;" },
|
|
36
|
-
],
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: "should render indexed bytea field correctly",
|
|
40
|
-
field: {
|
|
41
|
-
name: "indexedData",
|
|
42
|
-
dataType: "Buffer",
|
|
43
|
-
nullable: false,
|
|
44
|
-
index: true,
|
|
45
|
-
},
|
|
46
|
-
assertions: [
|
|
47
|
-
{ type: "contains", text: '@Column({ "type": "bytea"' },
|
|
48
|
-
{ type: "contains", text: "@Index()" },
|
|
49
|
-
{ type: "contains", text: "indexedData: Buffer;" },
|
|
50
|
-
],
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: "should render primary key bytea field correctly",
|
|
54
|
-
field: {
|
|
55
|
-
name: "id",
|
|
56
|
-
dataType: "Buffer",
|
|
57
|
-
nullable: false,
|
|
58
|
-
primary: true,
|
|
59
|
-
},
|
|
60
|
-
assertions: [
|
|
61
|
-
{ type: "contains", text: '@Column({ "type": "bytea"' },
|
|
62
|
-
{ type: "contains", text: "@PrimaryColumn()" },
|
|
63
|
-
{ type: "contains", text: "id: Buffer;" },
|
|
64
|
-
],
|
|
65
|
-
},
|
|
66
|
-
];
|
|
67
|
-
(0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
|
|
68
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -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)("Char 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-char";
|
|
11
|
-
const testCases = [
|
|
12
|
-
{
|
|
13
|
-
name: "should render basic char field correctly",
|
|
14
|
-
field: {
|
|
15
|
-
name: "charCode",
|
|
16
|
-
dataType: "string",
|
|
17
|
-
nullable: false,
|
|
18
|
-
},
|
|
19
|
-
assertions: [
|
|
20
|
-
{ type: "contains", text: '@Column({ type: "char", length: 1' },
|
|
21
|
-
{ type: "contains", text: "charCode: string;" },
|
|
22
|
-
{ type: "notContains", text: "@Index()" },
|
|
23
|
-
{ type: "notContains", text: "@PrimaryColumn()" },
|
|
24
|
-
],
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "should render nullable char field correctly",
|
|
28
|
-
field: {
|
|
29
|
-
name: "optionalChar",
|
|
30
|
-
dataType: "string",
|
|
31
|
-
nullable: true,
|
|
32
|
-
},
|
|
33
|
-
assertions: [
|
|
34
|
-
{ type: "contains", text: '@Column({ type: "char"' },
|
|
35
|
-
{ type: "contains", text: "nullable: true" },
|
|
36
|
-
{ type: "contains", text: "optionalChar: string;" },
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: "should render char field with custom length correctly",
|
|
41
|
-
field: {
|
|
42
|
-
name: "fixedCode",
|
|
43
|
-
dataType: "string",
|
|
44
|
-
nullable: false,
|
|
45
|
-
length: 5,
|
|
46
|
-
},
|
|
47
|
-
assertions: [
|
|
48
|
-
{ type: "contains", text: '@Column({ type: "char", length: 5' },
|
|
49
|
-
{ type: "contains", text: "fixedCode: string;" },
|
|
50
|
-
],
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: "should render indexed char field correctly",
|
|
54
|
-
field: {
|
|
55
|
-
name: "indexedChar",
|
|
56
|
-
dataType: "string",
|
|
57
|
-
nullable: false,
|
|
58
|
-
index: true,
|
|
59
|
-
},
|
|
60
|
-
assertions: [
|
|
61
|
-
{ type: "contains", text: '@Column({ type: "char"' },
|
|
62
|
-
{ type: "contains", text: "@Index()" },
|
|
63
|
-
{ type: "contains", text: "indexedChar: string;" },
|
|
64
|
-
],
|
|
65
|
-
},
|
|
66
|
-
];
|
|
67
|
-
(0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
|
|
68
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,56 +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)("Date 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-date";
|
|
11
|
-
const testCases = [
|
|
12
|
-
{
|
|
13
|
-
name: "should render basic date field correctly",
|
|
14
|
-
field: {
|
|
15
|
-
name: "birthDate",
|
|
16
|
-
dataType: "Date",
|
|
17
|
-
nullable: false,
|
|
18
|
-
},
|
|
19
|
-
assertions: [
|
|
20
|
-
{ type: "contains", text: "@Column({ type: 'date'" },
|
|
21
|
-
{ type: "contains", text: "nullable: false" },
|
|
22
|
-
{ type: "contains", text: "birthDate: string;" },
|
|
23
|
-
{ type: "notContains", text: "@Index()" },
|
|
24
|
-
],
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "should render nullable date field correctly",
|
|
28
|
-
field: {
|
|
29
|
-
name: "optionalDate",
|
|
30
|
-
dataType: "Date",
|
|
31
|
-
nullable: true,
|
|
32
|
-
},
|
|
33
|
-
assertions: [
|
|
34
|
-
{ type: "contains", text: "@Column({ type: 'date'" },
|
|
35
|
-
{ type: "contains", text: "nullable: true" },
|
|
36
|
-
{ type: "contains", text: "optionalDate: string;" },
|
|
37
|
-
],
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: "should render indexed date field correctly",
|
|
41
|
-
field: {
|
|
42
|
-
name: "indexedDate",
|
|
43
|
-
dataType: "Date",
|
|
44
|
-
nullable: false,
|
|
45
|
-
index: true,
|
|
46
|
-
},
|
|
47
|
-
assertions: [
|
|
48
|
-
{ type: "contains", text: "@Column({ type: 'date'" },
|
|
49
|
-
{ type: "contains", text: "nullable: false" },
|
|
50
|
-
{ type: "contains", text: "@Index()" },
|
|
51
|
-
{ type: "contains", text: "indexedDate: string;" },
|
|
52
|
-
],
|
|
53
|
-
},
|
|
54
|
-
];
|
|
55
|
-
(0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
|
|
56
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const field_1 = require("../../../../lib/utils/field");
|
|
4
|
-
const globals_1 = require("@jest/globals");
|
|
5
|
-
(0, globals_1.describe)("Decimal Field Validation Tests", () => {
|
|
6
|
-
(0, globals_1.it)("should accept valid decimal field with precision and scale", () => {
|
|
7
|
-
const field = {
|
|
8
|
-
name: "price",
|
|
9
|
-
type: "decimal",
|
|
10
|
-
precision: 10,
|
|
11
|
-
scale: 2,
|
|
12
|
-
nullable: false,
|
|
13
|
-
};
|
|
14
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).not.toThrow();
|
|
15
|
-
});
|
|
16
|
-
(0, globals_1.it)("should accept valid numeric field with precision and scale", () => {
|
|
17
|
-
const field = {
|
|
18
|
-
name: "amount",
|
|
19
|
-
type: "numeric",
|
|
20
|
-
precision: 16,
|
|
21
|
-
scale: 6,
|
|
22
|
-
nullable: false,
|
|
23
|
-
};
|
|
24
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).not.toThrow();
|
|
25
|
-
});
|
|
26
|
-
(0, globals_1.it)("should accept decimal field without precision and scale (uses defaults)", () => {
|
|
27
|
-
const field = {
|
|
28
|
-
name: "value",
|
|
29
|
-
type: "decimal",
|
|
30
|
-
nullable: false,
|
|
31
|
-
};
|
|
32
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).not.toThrow();
|
|
33
|
-
});
|
|
34
|
-
(0, globals_1.it)("should throw error for invalid precision (too low)", () => {
|
|
35
|
-
const field = {
|
|
36
|
-
name: "price",
|
|
37
|
-
type: "decimal",
|
|
38
|
-
precision: 0,
|
|
39
|
-
scale: 2,
|
|
40
|
-
nullable: false,
|
|
41
|
-
};
|
|
42
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).toThrow("price: Invalid precision value 0. Must be between 1 and 131072.");
|
|
43
|
-
});
|
|
44
|
-
(0, globals_1.it)("should throw error for invalid precision (too high)", () => {
|
|
45
|
-
const field = {
|
|
46
|
-
name: "price",
|
|
47
|
-
type: "decimal",
|
|
48
|
-
precision: 200000,
|
|
49
|
-
scale: 2,
|
|
50
|
-
nullable: false,
|
|
51
|
-
};
|
|
52
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).toThrow("price: Invalid precision value 200000. Must be between 1 and 131072.");
|
|
53
|
-
});
|
|
54
|
-
(0, globals_1.it)("should throw error for invalid scale (too low)", () => {
|
|
55
|
-
const field = {
|
|
56
|
-
name: "price",
|
|
57
|
-
type: "decimal",
|
|
58
|
-
precision: 10,
|
|
59
|
-
scale: -1,
|
|
60
|
-
nullable: false,
|
|
61
|
-
};
|
|
62
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).toThrow("price: Invalid scale value -1. Must be between 0 and 16383.");
|
|
63
|
-
});
|
|
64
|
-
(0, globals_1.it)("should throw error for invalid scale (too high)", () => {
|
|
65
|
-
const field = {
|
|
66
|
-
name: "price",
|
|
67
|
-
type: "decimal",
|
|
68
|
-
precision: 10,
|
|
69
|
-
scale: 20000,
|
|
70
|
-
nullable: false,
|
|
71
|
-
};
|
|
72
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).toThrow("price: Invalid scale value 20000. Must be between 0 and 16383.");
|
|
73
|
-
});
|
|
74
|
-
(0, globals_1.it)("should throw error when scale exceeds precision", () => {
|
|
75
|
-
const field = {
|
|
76
|
-
name: "price",
|
|
77
|
-
type: "decimal",
|
|
78
|
-
precision: 5,
|
|
79
|
-
scale: 10,
|
|
80
|
-
nullable: false,
|
|
81
|
-
};
|
|
82
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).toThrow("price: Scale (10) cannot be greater than precision (5).");
|
|
83
|
-
});
|
|
84
|
-
(0, globals_1.it)("should not validate non-decimal fields", () => {
|
|
85
|
-
const field = {
|
|
86
|
-
name: "name",
|
|
87
|
-
type: "text",
|
|
88
|
-
nullable: false,
|
|
89
|
-
};
|
|
90
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).not.toThrow();
|
|
91
|
-
});
|
|
92
|
-
(0, globals_1.it)("should not validate non-numeric fields", () => {
|
|
93
|
-
const field = {
|
|
94
|
-
name: "active",
|
|
95
|
-
type: "boolean",
|
|
96
|
-
nullable: false,
|
|
97
|
-
};
|
|
98
|
-
(0, globals_1.expect)(() => (0, field_1.validateDecimalField)(field)).not.toThrow();
|
|
99
|
-
});
|
|
100
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,86 +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)("Decimal 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-decimal";
|
|
11
|
-
const testCases = [
|
|
12
|
-
{
|
|
13
|
-
name: "should render basic decimal field correctly",
|
|
14
|
-
field: {
|
|
15
|
-
name: "price",
|
|
16
|
-
dataType: "number",
|
|
17
|
-
nullable: false,
|
|
18
|
-
},
|
|
19
|
-
assertions: [
|
|
20
|
-
{ type: "contains", text: '@Column({ "type": "decimal"' },
|
|
21
|
-
{ type: "contains", text: "precision: 10" },
|
|
22
|
-
{ type: "contains", text: "scale: 2" },
|
|
23
|
-
{ type: "contains", text: "price: number;" },
|
|
24
|
-
{ type: "notContains", text: "@Index()" },
|
|
25
|
-
{ type: "notContains", text: "@PrimaryColumn()" },
|
|
26
|
-
],
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
name: "should render nullable decimal field correctly",
|
|
30
|
-
field: {
|
|
31
|
-
name: "optionalPrice",
|
|
32
|
-
dataType: "number",
|
|
33
|
-
nullable: true,
|
|
34
|
-
},
|
|
35
|
-
assertions: [
|
|
36
|
-
{ type: "contains", text: '@Column({ "type": "decimal"' },
|
|
37
|
-
{ type: "contains", text: "optionalPrice: number;" },
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "should render decimal field with custom precision and scale",
|
|
42
|
-
field: {
|
|
43
|
-
name: "amount",
|
|
44
|
-
dataType: "number",
|
|
45
|
-
nullable: false,
|
|
46
|
-
precision: 16,
|
|
47
|
-
scale: 6,
|
|
48
|
-
},
|
|
49
|
-
assertions: [
|
|
50
|
-
{ type: "contains", text: '@Column({ "type": "decimal"' },
|
|
51
|
-
{ type: "contains", text: "precision: 16" },
|
|
52
|
-
{ type: "contains", text: "scale: 6" },
|
|
53
|
-
{ type: "contains", text: "amount: number;" },
|
|
54
|
-
],
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
name: "should render decimal field with default value correctly",
|
|
58
|
-
field: {
|
|
59
|
-
name: "defaultPrice",
|
|
60
|
-
dataType: "number",
|
|
61
|
-
nullable: false,
|
|
62
|
-
default: "0.00",
|
|
63
|
-
},
|
|
64
|
-
assertions: [
|
|
65
|
-
{ type: "contains", text: '@Column({ "type": "decimal"' },
|
|
66
|
-
{ type: "contains", text: "default: 0.00" },
|
|
67
|
-
{ type: "contains", text: "defaultPrice: number;" },
|
|
68
|
-
],
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
name: "should render indexed decimal field correctly",
|
|
72
|
-
field: {
|
|
73
|
-
name: "indexedPrice",
|
|
74
|
-
dataType: "number",
|
|
75
|
-
nullable: false,
|
|
76
|
-
index: true,
|
|
77
|
-
},
|
|
78
|
-
assertions: [
|
|
79
|
-
{ type: "contains", text: '@Column({ "type": "decimal"' },
|
|
80
|
-
{ type: "contains", text: "@Index()" },
|
|
81
|
-
{ type: "contains", text: "indexedPrice: number;" },
|
|
82
|
-
],
|
|
83
|
-
},
|
|
84
|
-
];
|
|
85
|
-
(0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
|
|
86
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -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)("Double 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-double";
|
|
11
|
-
const testCases = [
|
|
12
|
-
{
|
|
13
|
-
name: "should render basic double field correctly",
|
|
14
|
-
field: {
|
|
15
|
-
name: "doubleValue",
|
|
16
|
-
dataType: "number",
|
|
17
|
-
nullable: false,
|
|
18
|
-
},
|
|
19
|
-
assertions: [
|
|
20
|
-
{ type: "contains", text: '@Column({ "type": "float8"' },
|
|
21
|
-
{ type: "contains", text: "doubleValue: number;" },
|
|
22
|
-
{ type: "notContains", text: "@Index()" },
|
|
23
|
-
{ type: "notContains", text: "@PrimaryColumn()" },
|
|
24
|
-
],
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "should render nullable double field correctly",
|
|
28
|
-
field: {
|
|
29
|
-
name: "optionalDouble",
|
|
30
|
-
dataType: "number",
|
|
31
|
-
nullable: true,
|
|
32
|
-
},
|
|
33
|
-
assertions: [
|
|
34
|
-
{ type: "contains", text: '@Column({ "type": "float8"' },
|
|
35
|
-
{ type: "contains", text: "optionalDouble: number;" },
|
|
36
|
-
],
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: "should render double field with default value correctly",
|
|
40
|
-
field: {
|
|
41
|
-
name: "defaultDouble",
|
|
42
|
-
dataType: "number",
|
|
43
|
-
nullable: false,
|
|
44
|
-
default: 0,
|
|
45
|
-
},
|
|
46
|
-
assertions: [
|
|
47
|
-
{
|
|
48
|
-
type: "contains",
|
|
49
|
-
text: '@Column({ "type": "float8", default: 0 })',
|
|
50
|
-
},
|
|
51
|
-
{ type: "contains", text: "defaultDouble: number;" },
|
|
52
|
-
],
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: "should render indexed double field correctly",
|
|
56
|
-
field: {
|
|
57
|
-
name: "indexedDouble",
|
|
58
|
-
dataType: "number",
|
|
59
|
-
nullable: false,
|
|
60
|
-
index: true,
|
|
61
|
-
},
|
|
62
|
-
assertions: [
|
|
63
|
-
{ type: "contains", text: '@Column({ "type": "float8"' },
|
|
64
|
-
{ type: "contains", text: "@Index()" },
|
|
65
|
-
{ type: "contains", text: "indexedDouble: number;" },
|
|
66
|
-
],
|
|
67
|
-
},
|
|
68
|
-
];
|
|
69
|
-
(0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
|
|
70
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,85 +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)("Enum 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-enum";
|
|
11
|
-
const testCases = [
|
|
12
|
-
{
|
|
13
|
-
name: "should render basic enum field correctly",
|
|
14
|
-
field: {
|
|
15
|
-
name: "status",
|
|
16
|
-
dataType: "enum",
|
|
17
|
-
nullable: false,
|
|
18
|
-
// eslint-disable-next-line camelcase
|
|
19
|
-
enum_name: "UserStatus",
|
|
20
|
-
// eslint-disable-next-line camelcase
|
|
21
|
-
enum_values: ["ACTIVE", "INACTIVE", "PENDING"],
|
|
22
|
-
},
|
|
23
|
-
assertions: [
|
|
24
|
-
{ type: "contains", text: "type: 'enum'" },
|
|
25
|
-
{ type: "contains", text: "enum: enums.enum" },
|
|
26
|
-
{ type: "contains", text: "status!: enums.enum;" },
|
|
27
|
-
{ type: "notContains", text: "@Index()" },
|
|
28
|
-
{ type: "notContains", text: "@PrimaryColumn()" },
|
|
29
|
-
],
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
name: "should render nullable enum field correctly",
|
|
33
|
-
field: {
|
|
34
|
-
name: "optionalStatus",
|
|
35
|
-
dataType: "enum",
|
|
36
|
-
nullable: true,
|
|
37
|
-
// eslint-disable-next-line camelcase
|
|
38
|
-
enum_name: "UserStatus",
|
|
39
|
-
// eslint-disable-next-line camelcase
|
|
40
|
-
enum_values: ["ACTIVE", "INACTIVE", "PENDING"],
|
|
41
|
-
},
|
|
42
|
-
assertions: [
|
|
43
|
-
{ type: "contains", text: "type: 'enum'" },
|
|
44
|
-
{ type: "contains", text: "optionalStatus!: enums.enum;" },
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: "should render enum field with default value correctly",
|
|
49
|
-
field: {
|
|
50
|
-
name: "defaultStatus",
|
|
51
|
-
dataType: "enum",
|
|
52
|
-
nullable: false,
|
|
53
|
-
// eslint-disable-next-line camelcase
|
|
54
|
-
enum_name: "UserStatus",
|
|
55
|
-
// eslint-disable-next-line camelcase
|
|
56
|
-
enum_values: ["ACTIVE", "INACTIVE", "PENDING"],
|
|
57
|
-
default: "UserStatus.INACTIVE",
|
|
58
|
-
},
|
|
59
|
-
assertions: [
|
|
60
|
-
{ type: "contains", text: "type: 'enum'" },
|
|
61
|
-
{ type: "contains", text: "default: enums.enum.UserStatus.INACTIVE" },
|
|
62
|
-
{ type: "contains", text: "defaultStatus!: enums.enum;" },
|
|
63
|
-
],
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
name: "should render indexed enum field correctly",
|
|
67
|
-
field: {
|
|
68
|
-
name: "indexedStatus",
|
|
69
|
-
dataType: "enum",
|
|
70
|
-
nullable: false,
|
|
71
|
-
// eslint-disable-next-line camelcase
|
|
72
|
-
enum_name: "UserStatus",
|
|
73
|
-
// eslint-disable-next-line camelcase
|
|
74
|
-
enum_values: ["ACTIVE", "INACTIVE", "PENDING"],
|
|
75
|
-
index: true,
|
|
76
|
-
},
|
|
77
|
-
assertions: [
|
|
78
|
-
{ type: "contains", text: "type: 'enum'" },
|
|
79
|
-
{ type: "contains", text: "@Index()" },
|
|
80
|
-
{ type: "contains", text: "indexedStatus!: enums.enum;" },
|
|
81
|
-
],
|
|
82
|
-
},
|
|
83
|
-
];
|
|
84
|
-
(0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
|
|
85
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -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)("Float 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-float";
|
|
11
|
-
const testCases = [
|
|
12
|
-
{
|
|
13
|
-
name: "should render basic float field correctly",
|
|
14
|
-
field: {
|
|
15
|
-
name: "floatValue",
|
|
16
|
-
dataType: "number",
|
|
17
|
-
nullable: false,
|
|
18
|
-
},
|
|
19
|
-
assertions: [
|
|
20
|
-
{ type: "contains", text: '@Column({ "type": "decimal"' },
|
|
21
|
-
{ type: "contains", text: "floatValue: number;" },
|
|
22
|
-
{ type: "notContains", text: "@Index()" },
|
|
23
|
-
{ type: "notContains", text: "@PrimaryColumn()" },
|
|
24
|
-
],
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "should render nullable float field correctly",
|
|
28
|
-
field: {
|
|
29
|
-
name: "optionalFloat",
|
|
30
|
-
dataType: "number",
|
|
31
|
-
nullable: true,
|
|
32
|
-
},
|
|
33
|
-
assertions: [
|
|
34
|
-
{ type: "contains", text: '@Column({ "type": "decimal"' },
|
|
35
|
-
{ type: "contains", text: "optionalFloat: number;" },
|
|
36
|
-
],
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: "should render float field with default value correctly",
|
|
40
|
-
field: {
|
|
41
|
-
name: "defaultFloat",
|
|
42
|
-
dataType: "number",
|
|
43
|
-
nullable: false,
|
|
44
|
-
default: 0,
|
|
45
|
-
},
|
|
46
|
-
assertions: [
|
|
47
|
-
{
|
|
48
|
-
type: "contains",
|
|
49
|
-
text: '@Column({ "type": "decimal", default: 0 })',
|
|
50
|
-
},
|
|
51
|
-
{ type: "contains", text: "defaultFloat: number;" },
|
|
52
|
-
],
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: "should render indexed float field correctly",
|
|
56
|
-
field: {
|
|
57
|
-
name: "indexedFloat",
|
|
58
|
-
dataType: "number",
|
|
59
|
-
nullable: false,
|
|
60
|
-
index: true,
|
|
61
|
-
},
|
|
62
|
-
assertions: [
|
|
63
|
-
{ type: "contains", text: '@Column({ "type": "decimal"' },
|
|
64
|
-
{ type: "contains", text: "@Index()" },
|
|
65
|
-
{ type: "contains", text: "indexedFloat: number;" },
|
|
66
|
-
],
|
|
67
|
-
},
|
|
68
|
-
];
|
|
69
|
-
(0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
|
|
70
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|