@antelopejs/interface-database-decorators 0.1.9 → 0.1.11

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 (69) hide show
  1. package/README.md +1 -1
  2. package/dist/antelope.test.js +1 -1
  3. package/dist/common.d.ts +2 -1
  4. package/dist/common.js +5 -1
  5. package/dist/common.js.map +1 -1
  6. package/dist/database.js +1 -0
  7. package/dist/database.js.map +1 -1
  8. package/dist/model.js +29 -26
  9. package/dist/model.js.map +1 -1
  10. package/dist/modifiers/common.d.ts +24 -4
  11. package/dist/modifiers/common.js +92 -114
  12. package/dist/modifiers/common.js.map +1 -1
  13. package/dist/modifiers/encryption.js +14 -9
  14. package/dist/modifiers/encryption.js.map +1 -1
  15. package/dist/modifiers/internal/kinds.d.ts +12 -0
  16. package/dist/modifiers/internal/kinds.js +29 -0
  17. package/dist/modifiers/internal/kinds.js.map +1 -0
  18. package/dist/modifiers/internal/records.d.ts +29 -0
  19. package/dist/modifiers/internal/records.js +42 -0
  20. package/dist/modifiers/internal/records.js.map +1 -0
  21. package/dist/modifiers/localization.d.ts +19 -1
  22. package/dist/modifiers/localization.js +41 -6
  23. package/dist/modifiers/localization.js.map +1 -1
  24. package/dist/schema.js +1 -2
  25. package/dist/schema.js.map +1 -1
  26. package/dist/table.d.ts +8 -0
  27. package/dist/table.js +21 -6
  28. package/dist/table.js.map +1 -1
  29. package/dist/tests/codec_helpers.d.ts +6 -2
  30. package/dist/tests/codec_helpers.js +18 -14
  31. package/dist/tests/codec_helpers.js.map +1 -1
  32. package/dist/tests/common.test.js +38 -46
  33. package/dist/tests/common.test.js.map +1 -1
  34. package/dist/tests/cross_instance.test.js +27 -2
  35. package/dist/tests/cross_instance.test.js.map +1 -1
  36. package/dist/tests/database.test.js +247 -226
  37. package/dist/tests/database.test.js.map +1 -1
  38. package/dist/tests/helpers/other-instance.d.ts +1 -1
  39. package/dist/tests/helpers/other-instance.js +41 -9
  40. package/dist/tests/helpers/other-instance.js.map +1 -1
  41. package/dist/tests/integration.test.js +485 -469
  42. package/dist/tests/integration.test.js.map +1 -1
  43. package/dist/tests/model.test.js +293 -308
  44. package/dist/tests/model.test.js.map +1 -1
  45. package/dist/tests/modifiers/autodate.test.js +80 -86
  46. package/dist/tests/modifiers/autodate.test.js.map +1 -1
  47. package/dist/tests/modifiers/common.test.js +181 -195
  48. package/dist/tests/modifiers/common.test.js.map +1 -1
  49. package/dist/tests/modifiers/encryption.test.js +149 -155
  50. package/dist/tests/modifiers/encryption.test.js.map +1 -1
  51. package/dist/tests/modifiers/hash.test.js +91 -99
  52. package/dist/tests/modifiers/hash.test.js.map +1 -1
  53. package/dist/tests/modifiers/localization.test.js +186 -159
  54. package/dist/tests/modifiers/localization.test.js.map +1 -1
  55. package/dist/tests/relation.test.js +92 -97
  56. package/dist/tests/relation.test.js.map +1 -1
  57. package/dist/tests/schema.test.js +101 -106
  58. package/dist/tests/schema.test.js.map +1 -1
  59. package/dist/tests/table.test.js +124 -132
  60. package/dist/tests/table.test.js.map +1 -1
  61. package/docs/1.introduction.md +56 -2
  62. package/docs/2.table-definitions.md +15 -0
  63. package/docs/3.table-modifiers.md +10 -4
  64. package/docs/4.data-models.md +12 -0
  65. package/docs/5.parameter-decoration.md +4 -0
  66. package/docs/assets/model-conversion.svg +21 -0
  67. package/package.json +16 -5
  68. package/skills/database-decorators-interface/SKILL.md +4 -0
  69. package/skills/database-decorators-interface/cases.json +71 -0
@@ -10,18 +10,193 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const chai_1 = require("chai");
13
- const table_1 = require("@antelopejs/interface-database-decorators/table");
14
- const localization_1 = require("@antelopejs/interface-database-decorators/modifiers/localization");
13
+ const table_1 = require("../../table");
14
+ const localization_1 = require("../../modifiers/localization");
15
15
  describe("Modifiers - localization", () => {
16
- it("creates localization modifier", async () => CreateLocalizationModifierTest());
17
- it("stores multiple locale values", async () => StoreMultipleLocaleValuesTest());
18
- it("retrieves specific locale value", async () => RetrieveSpecificLocaleValueTest());
19
- it("falls back to default locale", async () => FallbackToDefaultLocaleTest());
20
- it("handles missing locale gracefully", async () => HandleMissingLocaleGracefullyTest());
21
- it("provides localize method through mixin", async () => ProvideLocalizeMethodTest());
22
- it("handles localization decorator", async () => HandleLocalizationDecoratorTest());
23
- it("localizes specific fields", async () => LocalizeSpecificFieldsTest());
24
- it("maintains data structure integrity", async () => MaintainDataStructureIntegrityTest());
16
+ it("creates localization modifier", async () => {
17
+ const modifier = new TestableLocalizationModifier();
18
+ modifier.setOptions({ fallbackLocale: "en" });
19
+ (0, chai_1.expect)(modifier).to.be.instanceOf(localization_1.LocalizationModifier);
20
+ (0, chai_1.expect)(modifier.getOptions().fallbackLocale).to.equal("en");
21
+ });
22
+ it("stores multiple locale values", async () => {
23
+ const modifier = new TestableLocalizationModifier();
24
+ modifier.setOptions({ fallbackLocale: "en" });
25
+ const enValue = "Hello World";
26
+ const frValue = "Bonjour le Monde";
27
+ const esValue = "Hola Mundo";
28
+ const locked1 = modifier.lock(undefined, enValue, "en");
29
+ const locked2 = modifier.lock(locked1, frValue, "fr");
30
+ const locked3 = modifier.lock(locked2, esValue, "es");
31
+ (0, chai_1.expect)(locked3).to.deep.equal({
32
+ en: enValue,
33
+ fr: frValue,
34
+ es: esValue,
35
+ });
36
+ });
37
+ it("retrieves specific locale value", async () => {
38
+ const modifier = new TestableLocalizationModifier();
39
+ modifier.setOptions({ fallbackLocale: "en" });
40
+ const data = {
41
+ en: "Hello World",
42
+ fr: "Bonjour le Monde",
43
+ es: "Hola Mundo",
44
+ };
45
+ const enValue = modifier.unlock(data, "en");
46
+ const frValue = modifier.unlock(data, "fr");
47
+ const esValue = modifier.unlock(data, "es");
48
+ (0, chai_1.expect)(enValue).to.equal("Hello World");
49
+ (0, chai_1.expect)(frValue).to.equal("Bonjour le Monde");
50
+ (0, chai_1.expect)(esValue).to.equal("Hola Mundo");
51
+ });
52
+ it("falls back to default locale", async () => {
53
+ const modifier = new TestableLocalizationModifier();
54
+ modifier.setOptions({ fallbackLocale: "en" });
55
+ const data = {
56
+ en: "Hello World",
57
+ fr: "Bonjour le Monde",
58
+ };
59
+ const missingValue = modifier.unlock(data, "es");
60
+ (0, chai_1.expect)(missingValue).to.equal("Hello World");
61
+ });
62
+ it("reads the fallback locale of a field", async () => {
63
+ class TestTable extends table_1.Table.with(localization_1.LocalizationModifier) {
64
+ }
65
+ __decorate([
66
+ (0, localization_1.Localized)({ fallbackLocale: "fr" }),
67
+ (0, table_1.Field)("string"),
68
+ __metadata("design:type", String)
69
+ ], TestTable.prototype, "title", void 0);
70
+ __decorate([
71
+ (0, localization_1.Localized)(),
72
+ (0, table_1.Field)("string"),
73
+ __metadata("design:type", String)
74
+ ], TestTable.prototype, "summary", void 0);
75
+ __decorate([
76
+ (0, table_1.Field)("string"),
77
+ __metadata("design:type", String)
78
+ ], TestTable.prototype, "code", void 0);
79
+ (0, chai_1.expect)(localization_1.LocalizationModifier.fallbackLocaleOf(TestTable, "title")).to.equal("fr");
80
+ (0, chai_1.expect)(localization_1.LocalizationModifier.fallbackLocaleOf(TestTable, "summary")).to.equal(undefined);
81
+ (0, chai_1.expect)(localization_1.LocalizationModifier.fallbackLocaleOf(TestTable, "code")).to.equal(undefined);
82
+ });
83
+ it("falls back for an empty value", async () => {
84
+ const modifier = new TestableLocalizationModifier();
85
+ modifier.setOptions({ fallbackLocale: "en" });
86
+ (0, chai_1.expect)(modifier.unlock({ en: "Hello", fr: "" }, "fr")).to.equal("Hello");
87
+ });
88
+ it("stores an empty value as no value", async () => {
89
+ const modifier = new TestableLocalizationModifier();
90
+ modifier.setOptions({ fallbackLocale: "en" });
91
+ const cleared = modifier.lock({ en: "Hello", fr: "Bonjour" }, "", "fr");
92
+ const everyLanguage = modifier.lock(undefined, { en: "Hello", fr: "" }, "*");
93
+ (0, chai_1.expect)(cleared).to.deep.equal({ en: "Hello" });
94
+ (0, chai_1.expect)(everyLanguage).to.deep.equal({ en: "Hello" });
95
+ });
96
+ it("handles missing locale gracefully", async () => {
97
+ const modifier = new TestableLocalizationModifier();
98
+ modifier.setOptions({});
99
+ const data = {
100
+ en: "Hello World",
101
+ };
102
+ const missingValue = modifier.unlock(data, "fr");
103
+ (0, chai_1.expect)(missingValue).to.equal(undefined);
104
+ });
105
+ });
106
+ describe("Modifiers - localization", () => {
107
+ it("provides localize method through mixin", async () => {
108
+ const TestTableWithMixin = table_1.Table.with(localization_1.LocalizationModifier);
109
+ class TestTable extends TestTableWithMixin {
110
+ }
111
+ __decorate([
112
+ (0, localization_1.Localized)({ fallbackLocale: "en" }),
113
+ (0, table_1.Field)("string"),
114
+ __metadata("design:type", String)
115
+ ], TestTable.prototype, "title", void 0);
116
+ __decorate([
117
+ (0, localization_1.Localized)({ fallbackLocale: "en" }),
118
+ (0, table_1.Field)("string"),
119
+ __metadata("design:type", String)
120
+ ], TestTable.prototype, "description", void 0);
121
+ const instance = new TestTable();
122
+ (0, chai_1.expect)(instance).to.have.property("localize").that.is.a("function");
123
+ (0, chai_1.expect)(instance.localize("fr")).to.equal(instance);
124
+ });
125
+ it("handles localization decorator", async () => {
126
+ class TestTable extends table_1.Table.with(localization_1.LocalizationModifier) {
127
+ }
128
+ __decorate([
129
+ (0, localization_1.Localized)({ fallbackLocale: "en" }),
130
+ (0, table_1.Field)("string"),
131
+ __metadata("design:type", String)
132
+ ], TestTable.prototype, "title", void 0);
133
+ __decorate([
134
+ (0, localization_1.Localized)({ fallbackLocale: "fr" }),
135
+ (0, table_1.Field)("string"),
136
+ __metadata("design:type", String)
137
+ ], TestTable.prototype, "description", void 0);
138
+ const instance = new TestTable();
139
+ instance.localize("fr");
140
+ instance.title = "French Title";
141
+ instance.description = "French Description";
142
+ instance.localize("en").title = "English Title";
143
+ instance.localize("en").description = "English Description";
144
+ instance.localize("be");
145
+ (0, chai_1.expect)(instance.title).to.equal("English Title");
146
+ (0, chai_1.expect)(instance.description).to.equal("French Description");
147
+ });
148
+ it("localizes specific fields", async () => {
149
+ const TestTableWithMixin = table_1.Table.with(localization_1.LocalizationModifier);
150
+ class TestTable extends TestTableWithMixin {
151
+ }
152
+ __decorate([
153
+ (0, localization_1.Localized)({ fallbackLocale: "en" }),
154
+ (0, table_1.Field)("string"),
155
+ __metadata("design:type", String)
156
+ ], TestTable.prototype, "title", void 0);
157
+ __decorate([
158
+ (0, localization_1.Localized)({ fallbackLocale: "en" }),
159
+ (0, table_1.Field)("string"),
160
+ __metadata("design:type", String)
161
+ ], TestTable.prototype, "description", void 0);
162
+ __decorate([
163
+ (0, localization_1.Localized)({ fallbackLocale: "en" }),
164
+ (0, table_1.Field)("string"),
165
+ __metadata("design:type", String)
166
+ ], TestTable.prototype, "content", void 0);
167
+ const instance = new TestTable();
168
+ instance.localize("en");
169
+ instance.title = "English Title";
170
+ instance.description = "English Description";
171
+ instance.content = "English Content";
172
+ instance.localize("fr");
173
+ instance.title = "French Title";
174
+ instance.description = "French Description";
175
+ instance.content = "French Content";
176
+ instance.localize("en");
177
+ instance.localize("fr", ["title", "content"]);
178
+ (0, chai_1.expect)(instance.title).to.equal("French Title");
179
+ (0, chai_1.expect)(instance.content).to.equal("French Content");
180
+ (0, chai_1.expect)(instance.description).to.equal("English Description");
181
+ });
182
+ it("maintains data structure integrity", async () => {
183
+ const modifier = new TestableLocalizationModifier();
184
+ modifier.setOptions({ fallbackLocale: "en" });
185
+ const complexData = {
186
+ en: { title: "English Title", content: "English Content" },
187
+ fr: { title: "French Title", content: "French Content" },
188
+ };
189
+ const enValue = modifier.unlock(complexData, "en");
190
+ const frValue = modifier.unlock(complexData, "fr");
191
+ (0, chai_1.expect)(enValue).to.deep.equal({
192
+ title: "English Title",
193
+ content: "English Content",
194
+ });
195
+ (0, chai_1.expect)(frValue).to.deep.equal({
196
+ title: "French Title",
197
+ content: "French Content",
198
+ });
199
+ });
25
200
  });
26
201
  class TestableLocalizationModifier extends localization_1.LocalizationModifier {
27
202
  setOptions(options) {
@@ -31,152 +206,4 @@ class TestableLocalizationModifier extends localization_1.LocalizationModifier {
31
206
  return this.options;
32
207
  }
33
208
  }
34
- async function CreateLocalizationModifierTest() {
35
- const modifier = new TestableLocalizationModifier();
36
- modifier.setOptions({ fallbackLocale: "en" });
37
- (0, chai_1.expect)(modifier).to.be.instanceOf(localization_1.LocalizationModifier);
38
- (0, chai_1.expect)(modifier.getOptions().fallbackLocale).to.equal("en");
39
- }
40
- async function StoreMultipleLocaleValuesTest() {
41
- const modifier = new TestableLocalizationModifier();
42
- modifier.setOptions({ fallbackLocale: "en" });
43
- const enValue = "Hello World";
44
- const frValue = "Bonjour le Monde";
45
- const esValue = "Hola Mundo";
46
- const locked1 = modifier.lock(undefined, enValue, "en");
47
- const locked2 = modifier.lock(locked1, frValue, "fr");
48
- const locked3 = modifier.lock(locked2, esValue, "es");
49
- (0, chai_1.expect)(locked3).to.deep.equal({
50
- en: enValue,
51
- fr: frValue,
52
- es: esValue,
53
- });
54
- }
55
- async function RetrieveSpecificLocaleValueTest() {
56
- const modifier = new TestableLocalizationModifier();
57
- modifier.setOptions({ fallbackLocale: "en" });
58
- const data = {
59
- en: "Hello World",
60
- fr: "Bonjour le Monde",
61
- es: "Hola Mundo",
62
- };
63
- const enValue = modifier.unlock(data, "en");
64
- const frValue = modifier.unlock(data, "fr");
65
- const esValue = modifier.unlock(data, "es");
66
- (0, chai_1.expect)(enValue).to.equal("Hello World");
67
- (0, chai_1.expect)(frValue).to.equal("Bonjour le Monde");
68
- (0, chai_1.expect)(esValue).to.equal("Hola Mundo");
69
- }
70
- async function FallbackToDefaultLocaleTest() {
71
- const modifier = new TestableLocalizationModifier();
72
- modifier.setOptions({ fallbackLocale: "en" });
73
- const data = {
74
- en: "Hello World",
75
- fr: "Bonjour le Monde",
76
- };
77
- const missingValue = modifier.unlock(data, "es");
78
- (0, chai_1.expect)(missingValue).to.equal("Hello World");
79
- }
80
- async function HandleMissingLocaleGracefullyTest() {
81
- const modifier = new TestableLocalizationModifier();
82
- modifier.setOptions({});
83
- const data = {
84
- en: "Hello World",
85
- };
86
- const missingValue = modifier.unlock(data, "fr");
87
- (0, chai_1.expect)(missingValue).to.equal(undefined);
88
- }
89
- async function ProvideLocalizeMethodTest() {
90
- const TestTableWithMixin = table_1.Table.with(localization_1.LocalizationModifier);
91
- class TestTable extends TestTableWithMixin {
92
- }
93
- __decorate([
94
- (0, localization_1.Localized)({ fallbackLocale: "en" }),
95
- (0, table_1.Field)("string"),
96
- __metadata("design:type", String)
97
- ], TestTable.prototype, "title", void 0);
98
- __decorate([
99
- (0, localization_1.Localized)({ fallbackLocale: "en" }),
100
- (0, table_1.Field)("string"),
101
- __metadata("design:type", String)
102
- ], TestTable.prototype, "description", void 0);
103
- const instance = new TestTable();
104
- (0, chai_1.expect)(typeof instance.localize).to.equal("function");
105
- (0, chai_1.expect)(instance.localize("fr")).to.equal(instance);
106
- }
107
- async function HandleLocalizationDecoratorTest() {
108
- class TestTable extends table_1.Table.with(localization_1.LocalizationModifier) {
109
- }
110
- __decorate([
111
- (0, localization_1.Localized)({ fallbackLocale: "en" }),
112
- (0, table_1.Field)("string"),
113
- __metadata("design:type", String)
114
- ], TestTable.prototype, "title", void 0);
115
- __decorate([
116
- (0, localization_1.Localized)({ fallbackLocale: "fr" }),
117
- (0, table_1.Field)("string"),
118
- __metadata("design:type", String)
119
- ], TestTable.prototype, "description", void 0);
120
- const instance = new TestTable();
121
- instance.localize("fr");
122
- instance.title = "French Title";
123
- instance.description = "French Description";
124
- instance.localize("en").title = "English Title";
125
- instance.localize("en").description = "English Description";
126
- instance.localize("be");
127
- (0, chai_1.expect)(instance.title).to.equal("English Title");
128
- (0, chai_1.expect)(instance.description).to.equal("French Description");
129
- }
130
- async function LocalizeSpecificFieldsTest() {
131
- const TestTableWithMixin = table_1.Table.with(localization_1.LocalizationModifier);
132
- class TestTable extends TestTableWithMixin {
133
- }
134
- __decorate([
135
- (0, localization_1.Localized)({ fallbackLocale: "en" }),
136
- (0, table_1.Field)("string"),
137
- __metadata("design:type", String)
138
- ], TestTable.prototype, "title", void 0);
139
- __decorate([
140
- (0, localization_1.Localized)({ fallbackLocale: "en" }),
141
- (0, table_1.Field)("string"),
142
- __metadata("design:type", String)
143
- ], TestTable.prototype, "description", void 0);
144
- __decorate([
145
- (0, localization_1.Localized)({ fallbackLocale: "en" }),
146
- (0, table_1.Field)("string"),
147
- __metadata("design:type", String)
148
- ], TestTable.prototype, "content", void 0);
149
- const instance = new TestTable();
150
- instance.localize("en");
151
- instance.title = "English Title";
152
- instance.description = "English Description";
153
- instance.content = "English Content";
154
- instance.localize("fr");
155
- instance.title = "French Title";
156
- instance.description = "French Description";
157
- instance.content = "French Content";
158
- instance.localize("en");
159
- instance.localize("fr", ["title", "content"]);
160
- (0, chai_1.expect)(instance.title).to.equal("French Title");
161
- (0, chai_1.expect)(instance.content).to.equal("French Content");
162
- (0, chai_1.expect)(instance.description).to.equal("English Description");
163
- }
164
- async function MaintainDataStructureIntegrityTest() {
165
- const modifier = new TestableLocalizationModifier();
166
- modifier.setOptions({ fallbackLocale: "en" });
167
- const complexData = {
168
- en: { title: "English Title", content: "English Content" },
169
- fr: { title: "French Title", content: "French Content" },
170
- };
171
- const enValue = modifier.unlock(complexData, "en");
172
- const frValue = modifier.unlock(complexData, "fr");
173
- (0, chai_1.expect)(enValue).to.deep.equal({
174
- title: "English Title",
175
- content: "English Content",
176
- });
177
- (0, chai_1.expect)(frValue).to.deep.equal({
178
- title: "French Title",
179
- content: "French Content",
180
- });
181
- }
182
209
  //# sourceMappingURL=localization.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"localization.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/localization.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localization.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/localization.test.ts"],"names":[],"mappings":"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"}
@@ -10,103 +10,98 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const chai_1 = require("chai");
13
- const table_1 = require("@antelopejs/interface-database-decorators/table");
14
- const common_1 = require("@antelopejs/interface-database-decorators/common");
15
- const relation_1 = require("@antelopejs/interface-database-decorators/relation");
13
+ const table_1 = require("../table");
14
+ const common_1 = require("../common");
15
+ const relation_1 = require("../relation");
16
16
  describe("Relation - Relation decorator", () => {
17
- it("stores relation options in metadata", async () => StoreRelationOptionsInMetadataTest());
18
- it("stores toField and many options", async () => StoreToFieldAndManyOptionsTest());
19
- it("supports multiple relations on one class", async () => SupportMultipleRelationsOnOneClassTest());
20
- it("resolves forward references through the thunk", async () => ResolveForwardReferencesThroughThunkTest());
21
- it("keeps metadata separate between classes", async () => KeepMetadataSeparateBetweenClassesTest());
17
+ it("stores relation options in metadata", async () => {
18
+ class TargetTable extends table_1.Table {
19
+ name;
20
+ }
21
+ class SourceTable extends table_1.Table {
22
+ target;
23
+ }
24
+ __decorate([
25
+ (0, relation_1.Relation)({ to: () => TargetTable }),
26
+ __metadata("design:type", String)
27
+ ], SourceTable.prototype, "target", void 0);
28
+ const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
29
+ (0, chai_1.expect)(metadata.relations).to.have.property("target");
30
+ (0, chai_1.expect)(metadata.relations.target.to()).to.equal(TargetTable);
31
+ (0, chai_1.expect)(metadata.relations.target.toField).to.equal(undefined);
32
+ (0, chai_1.expect)(metadata.relations.target.many).to.equal(undefined);
33
+ });
34
+ it("stores toField and many options", async () => {
35
+ class TargetTable extends table_1.Table {
36
+ code;
37
+ }
38
+ class SourceTable extends table_1.Table {
39
+ targets;
40
+ }
41
+ __decorate([
42
+ (0, relation_1.Relation)({ to: () => TargetTable, toField: "code", many: true }),
43
+ __metadata("design:type", Array)
44
+ ], SourceTable.prototype, "targets", void 0);
45
+ const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
46
+ (0, chai_1.expect)(metadata.relations.targets.toField).to.equal("code");
47
+ (0, chai_1.expect)(metadata.relations.targets.many).to.equal(true);
48
+ });
49
+ it("supports multiple relations on one class", async () => {
50
+ class UserTable extends table_1.Table {
51
+ name;
52
+ }
53
+ class RoleTable extends table_1.Table {
54
+ label;
55
+ }
56
+ class SourceTable extends table_1.Table {
57
+ owner;
58
+ roles;
59
+ }
60
+ __decorate([
61
+ (0, relation_1.Relation)({ to: () => UserTable }),
62
+ __metadata("design:type", String)
63
+ ], SourceTable.prototype, "owner", void 0);
64
+ __decorate([
65
+ (0, relation_1.Relation)({ to: () => RoleTable, many: true }),
66
+ __metadata("design:type", Array)
67
+ ], SourceTable.prototype, "roles", void 0);
68
+ const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
69
+ (0, chai_1.expect)(Object.keys(metadata.relations)).to.have.members(["owner", "roles"]);
70
+ (0, chai_1.expect)(metadata.relations.owner.to()).to.equal(UserTable);
71
+ (0, chai_1.expect)(metadata.relations.roles.to()).to.equal(RoleTable);
72
+ });
73
+ it("resolves forward references through the thunk", async () => {
74
+ class SourceTable extends table_1.Table {
75
+ later;
76
+ }
77
+ __decorate([
78
+ (0, relation_1.Relation)({ to: () => LaterTable }),
79
+ __metadata("design:type", String)
80
+ ], SourceTable.prototype, "later", void 0);
81
+ class LaterTable extends table_1.Table {
82
+ name;
83
+ }
84
+ const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
85
+ (0, chai_1.expect)(metadata.relations.later.to()).to.equal(LaterTable);
86
+ });
87
+ it("keeps metadata separate between classes", async () => {
88
+ class TargetTable extends table_1.Table {
89
+ name;
90
+ }
91
+ class FirstTable extends table_1.Table {
92
+ target;
93
+ }
94
+ __decorate([
95
+ (0, relation_1.Relation)({ to: () => TargetTable }),
96
+ __metadata("design:type", String)
97
+ ], FirstTable.prototype, "target", void 0);
98
+ class SecondTable extends table_1.Table {
99
+ other;
100
+ }
101
+ const firstMetadata = (0, common_1.getMetadata)(FirstTable, relation_1.RelationStaticMetadata);
102
+ const secondMetadata = (0, common_1.getMetadata)(SecondTable, relation_1.RelationStaticMetadata);
103
+ (0, chai_1.expect)(firstMetadata.relations).to.have.property("target");
104
+ (0, chai_1.expect)(secondMetadata.relations).to.not.have.property("target");
105
+ });
22
106
  });
23
- async function StoreRelationOptionsInMetadataTest() {
24
- class TargetTable extends table_1.Table {
25
- name;
26
- }
27
- class SourceTable extends table_1.Table {
28
- target;
29
- }
30
- __decorate([
31
- (0, relation_1.Relation)({ to: () => TargetTable }),
32
- __metadata("design:type", String)
33
- ], SourceTable.prototype, "target", void 0);
34
- const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
35
- (0, chai_1.expect)(metadata.relations).to.have.property("target");
36
- (0, chai_1.expect)(metadata.relations.target.to()).to.equal(TargetTable);
37
- (0, chai_1.expect)(metadata.relations.target.toField).to.equal(undefined);
38
- (0, chai_1.expect)(metadata.relations.target.many).to.equal(undefined);
39
- }
40
- async function StoreToFieldAndManyOptionsTest() {
41
- class TargetTable extends table_1.Table {
42
- code;
43
- }
44
- class SourceTable extends table_1.Table {
45
- targets;
46
- }
47
- __decorate([
48
- (0, relation_1.Relation)({ to: () => TargetTable, toField: "code", many: true }),
49
- __metadata("design:type", Array)
50
- ], SourceTable.prototype, "targets", void 0);
51
- const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
52
- (0, chai_1.expect)(metadata.relations.targets.toField).to.equal("code");
53
- (0, chai_1.expect)(metadata.relations.targets.many).to.equal(true);
54
- }
55
- async function SupportMultipleRelationsOnOneClassTest() {
56
- class UserTable extends table_1.Table {
57
- name;
58
- }
59
- class RoleTable extends table_1.Table {
60
- label;
61
- }
62
- class SourceTable extends table_1.Table {
63
- owner;
64
- roles;
65
- }
66
- __decorate([
67
- (0, relation_1.Relation)({ to: () => UserTable }),
68
- __metadata("design:type", String)
69
- ], SourceTable.prototype, "owner", void 0);
70
- __decorate([
71
- (0, relation_1.Relation)({ to: () => RoleTable, many: true }),
72
- __metadata("design:type", Array)
73
- ], SourceTable.prototype, "roles", void 0);
74
- const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
75
- (0, chai_1.expect)(Object.keys(metadata.relations)).to.have.members(["owner", "roles"]);
76
- (0, chai_1.expect)(metadata.relations.owner.to()).to.equal(UserTable);
77
- (0, chai_1.expect)(metadata.relations.roles.to()).to.equal(RoleTable);
78
- }
79
- async function ResolveForwardReferencesThroughThunkTest() {
80
- class SourceTable extends table_1.Table {
81
- later;
82
- }
83
- __decorate([
84
- (0, relation_1.Relation)({ to: () => LaterTable }),
85
- __metadata("design:type", String)
86
- ], SourceTable.prototype, "later", void 0);
87
- class LaterTable extends table_1.Table {
88
- name;
89
- }
90
- const metadata = (0, common_1.getMetadata)(SourceTable, relation_1.RelationStaticMetadata);
91
- (0, chai_1.expect)(metadata.relations.later.to()).to.equal(LaterTable);
92
- }
93
- async function KeepMetadataSeparateBetweenClassesTest() {
94
- class TargetTable extends table_1.Table {
95
- name;
96
- }
97
- class FirstTable extends table_1.Table {
98
- target;
99
- }
100
- __decorate([
101
- (0, relation_1.Relation)({ to: () => TargetTable }),
102
- __metadata("design:type", String)
103
- ], FirstTable.prototype, "target", void 0);
104
- class SecondTable extends table_1.Table {
105
- other;
106
- }
107
- const firstMetadata = (0, common_1.getMetadata)(FirstTable, relation_1.RelationStaticMetadata);
108
- const secondMetadata = (0, common_1.getMetadata)(SecondTable, relation_1.RelationStaticMetadata);
109
- (0, chai_1.expect)(firstMetadata.relations).to.have.property("target");
110
- (0, chai_1.expect)(secondMetadata.relations).to.not.have.property("target");
111
- }
112
107
  //# sourceMappingURL=relation.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation.test.js","sourceRoot":"","sources":["../../src/tests/relation.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation.test.js","sourceRoot":"","sources":["../../src/tests/relation.test.ts"],"names":[],"mappings":"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"}