@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.
- package/README.md +1 -1
- package/dist/antelope.test.js +1 -1
- package/dist/common.d.ts +2 -1
- package/dist/common.js +5 -1
- package/dist/common.js.map +1 -1
- package/dist/database.js +1 -0
- package/dist/database.js.map +1 -1
- package/dist/model.js +29 -26
- package/dist/model.js.map +1 -1
- package/dist/modifiers/common.d.ts +24 -4
- package/dist/modifiers/common.js +92 -114
- package/dist/modifiers/common.js.map +1 -1
- package/dist/modifiers/encryption.js +14 -9
- package/dist/modifiers/encryption.js.map +1 -1
- package/dist/modifiers/internal/kinds.d.ts +12 -0
- package/dist/modifiers/internal/kinds.js +29 -0
- package/dist/modifiers/internal/kinds.js.map +1 -0
- package/dist/modifiers/internal/records.d.ts +29 -0
- package/dist/modifiers/internal/records.js +42 -0
- package/dist/modifiers/internal/records.js.map +1 -0
- package/dist/modifiers/localization.d.ts +19 -1
- package/dist/modifiers/localization.js +41 -6
- package/dist/modifiers/localization.js.map +1 -1
- package/dist/schema.js +1 -2
- package/dist/schema.js.map +1 -1
- package/dist/table.d.ts +8 -0
- package/dist/table.js +21 -6
- package/dist/table.js.map +1 -1
- package/dist/tests/codec_helpers.d.ts +6 -2
- package/dist/tests/codec_helpers.js +18 -14
- package/dist/tests/codec_helpers.js.map +1 -1
- package/dist/tests/common.test.js +38 -46
- package/dist/tests/common.test.js.map +1 -1
- package/dist/tests/cross_instance.test.js +27 -2
- package/dist/tests/cross_instance.test.js.map +1 -1
- package/dist/tests/database.test.js +247 -226
- package/dist/tests/database.test.js.map +1 -1
- package/dist/tests/helpers/other-instance.d.ts +1 -1
- package/dist/tests/helpers/other-instance.js +41 -9
- package/dist/tests/helpers/other-instance.js.map +1 -1
- package/dist/tests/integration.test.js +485 -469
- package/dist/tests/integration.test.js.map +1 -1
- package/dist/tests/model.test.js +293 -308
- package/dist/tests/model.test.js.map +1 -1
- package/dist/tests/modifiers/autodate.test.js +80 -86
- package/dist/tests/modifiers/autodate.test.js.map +1 -1
- package/dist/tests/modifiers/common.test.js +181 -195
- package/dist/tests/modifiers/common.test.js.map +1 -1
- package/dist/tests/modifiers/encryption.test.js +149 -155
- package/dist/tests/modifiers/encryption.test.js.map +1 -1
- package/dist/tests/modifiers/hash.test.js +91 -99
- package/dist/tests/modifiers/hash.test.js.map +1 -1
- package/dist/tests/modifiers/localization.test.js +186 -159
- package/dist/tests/modifiers/localization.test.js.map +1 -1
- package/dist/tests/relation.test.js +92 -97
- package/dist/tests/relation.test.js.map +1 -1
- package/dist/tests/schema.test.js +101 -106
- package/dist/tests/schema.test.js.map +1 -1
- package/dist/tests/table.test.js +124 -132
- package/dist/tests/table.test.js.map +1 -1
- package/docs/1.introduction.md +56 -2
- package/docs/2.table-definitions.md +15 -0
- package/docs/3.table-modifiers.md +10 -4
- package/docs/4.data-models.md +12 -0
- package/docs/5.parameter-decoration.md +4 -0
- package/docs/assets/model-conversion.svg +21 -0
- package/package.json +16 -5
- package/skills/database-decorators-interface/SKILL.md +4 -0
- package/skills/database-decorators-interface/cases.json +71 -0
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type * as DatabaseDev from "@antelopejs/interface-database";
|
|
2
|
+
import { type Constructible } from "../common";
|
|
2
3
|
import { ContainerModifier, MixinSymbol } from "./common";
|
|
3
4
|
type Options = {
|
|
4
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Fallback locale to use when the selected locale has no value, or an
|
|
7
|
+
* empty one.
|
|
8
|
+
*/
|
|
5
9
|
fallbackLocale?: string;
|
|
6
10
|
};
|
|
7
11
|
/**
|
|
@@ -14,6 +18,20 @@ type Options = {
|
|
|
14
18
|
* See {@link ContainerModifier} for the generic modifier.
|
|
15
19
|
*/
|
|
16
20
|
export declare class LocalizationModifier extends ContainerModifier<Record<string, never>, Options> {
|
|
21
|
+
/**
|
|
22
|
+
* The fallback locale of a localized field of a table class.
|
|
23
|
+
*
|
|
24
|
+
* @param TableClass Table class declaring the field
|
|
25
|
+
* @param field Field name
|
|
26
|
+
* @returns The field's `fallbackLocale`, or `undefined` when the field is
|
|
27
|
+
* not localized or declares none
|
|
28
|
+
*/
|
|
29
|
+
static fallbackLocaleOf(TableClass: Constructible, field: string): string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Stores an empty text as no text, so that the fallback locale answers for
|
|
32
|
+
* it in queries too (`unlockrequest`).
|
|
33
|
+
*/
|
|
34
|
+
lock(locked_value: Record<string, unknown> | undefined, value: unknown, key: string): Record<string, unknown>;
|
|
17
35
|
unlock(locked_value: Record<string, unknown>, key: string): unknown;
|
|
18
36
|
unlockrequest(data: DatabaseDev.ValueProxy<Record<string, unknown>>, _meta: DatabaseDev.ValueProxy<Record<string, never>>, key: DatabaseDev.ValueProxyOrValue<string>): DatabaseDev.ValueProxy<unknown>;
|
|
19
37
|
[MixinSymbol]: {
|
|
@@ -2,7 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Localized = exports.LocalizationModifier = void 0;
|
|
4
4
|
const decorators_1 = require("@antelopejs/interface-core/decorators");
|
|
5
|
-
const common_1 = require("
|
|
5
|
+
const common_1 = require("../common");
|
|
6
|
+
const common_2 = require("./common");
|
|
7
|
+
/** A text left empty in one language counts as no text in that language. */
|
|
8
|
+
const EMPTY_TEXT = "";
|
|
9
|
+
function isObject(value) {
|
|
10
|
+
return typeof value === "object" && value !== null;
|
|
11
|
+
}
|
|
12
|
+
function withoutEmptyTexts(values) {
|
|
13
|
+
return Object.fromEntries(Object.entries(values).filter(([, value]) => value !== EMPTY_TEXT));
|
|
14
|
+
}
|
|
6
15
|
/**
|
|
7
16
|
* Localization modifier. enables the use of {@link Localized} on table fields.
|
|
8
17
|
*
|
|
@@ -12,10 +21,36 @@ const common_1 = require("./common");
|
|
|
12
21
|
*
|
|
13
22
|
* See {@link ContainerModifier} for the generic modifier.
|
|
14
23
|
*/
|
|
15
|
-
class LocalizationModifier extends
|
|
24
|
+
class LocalizationModifier extends common_2.ContainerModifier {
|
|
25
|
+
/**
|
|
26
|
+
* The fallback locale of a localized field of a table class.
|
|
27
|
+
*
|
|
28
|
+
* @param TableClass Table class declaring the field
|
|
29
|
+
* @param field Field name
|
|
30
|
+
* @returns The field's `fallbackLocale`, or `undefined` when the field is
|
|
31
|
+
* not localized or declares none
|
|
32
|
+
*/
|
|
33
|
+
static fallbackLocaleOf(TableClass, field) {
|
|
34
|
+
const modified = (0, common_1.getMetadata)(TableClass, common_2.ModifiersStaticMetadata).fields[field]?.find(({ id }) => id === LocalizationModifier.name);
|
|
35
|
+
// SAFETY: attachModifier stores id = Modifier.name together with `new Modifier()`, so the entry found by id === LocalizationModifier.name holds an instance of the class of that name, as in every id lookup of the modifier machinery (unlock, lock, getModifiedFields).
|
|
36
|
+
return modified?.modifier?.options
|
|
37
|
+
.fallbackLocale;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Stores an empty text as no text, so that the fallback locale answers for
|
|
41
|
+
* it in queries too (`unlockrequest`).
|
|
42
|
+
*/
|
|
43
|
+
lock(locked_value, value, key) {
|
|
44
|
+
if (key === "*") {
|
|
45
|
+
return isObject(value)
|
|
46
|
+
? withoutEmptyTexts(value)
|
|
47
|
+
: value;
|
|
48
|
+
}
|
|
49
|
+
return withoutEmptyTexts(super.lock(locked_value, value, key));
|
|
50
|
+
}
|
|
16
51
|
unlock(locked_value, key) {
|
|
17
52
|
const unlocked = super.unlock(locked_value, key);
|
|
18
|
-
if (unlocked !== undefined) {
|
|
53
|
+
if (unlocked !== undefined && unlocked !== EMPTY_TEXT) {
|
|
19
54
|
return unlocked;
|
|
20
55
|
}
|
|
21
56
|
if (this.options.fallbackLocale) {
|
|
@@ -28,7 +63,7 @@ class LocalizationModifier extends common_1.ContainerModifier {
|
|
|
28
63
|
}
|
|
29
64
|
return data.key(key);
|
|
30
65
|
}
|
|
31
|
-
[
|
|
66
|
+
[common_2.MixinSymbol] = class {
|
|
32
67
|
/**
|
|
33
68
|
* Specify which locale to use for accessing some or all localized fields.
|
|
34
69
|
*
|
|
@@ -38,7 +73,7 @@ class LocalizationModifier extends common_1.ContainerModifier {
|
|
|
38
73
|
* @returns `this`
|
|
39
74
|
*/
|
|
40
75
|
localize(locale, fields) {
|
|
41
|
-
(0,
|
|
76
|
+
(0, common_2.unlock)(this, LocalizationModifier, fields, locale);
|
|
42
77
|
return this;
|
|
43
78
|
}
|
|
44
79
|
};
|
|
@@ -52,6 +87,6 @@ exports.LocalizationModifier = LocalizationModifier;
|
|
|
52
87
|
* @param options Localization options.
|
|
53
88
|
*/
|
|
54
89
|
exports.Localized = (0, decorators_1.MakePropertyDecorator)((target, propertyKey, options) => {
|
|
55
|
-
(0,
|
|
90
|
+
(0, common_2.attachModifier)(target.constructor, LocalizationModifier, propertyKey, options || {});
|
|
56
91
|
});
|
|
57
92
|
//# sourceMappingURL=localization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localization.js","sourceRoot":"","sources":["../../src/modifiers/localization.ts"],"names":[],"mappings":";;;AACA,sEAA8E;AAE9E,
|
|
1
|
+
{"version":3,"file":"localization.js","sourceRoot":"","sources":["../../src/modifiers/localization.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.js
CHANGED
|
@@ -14,8 +14,7 @@ exports.RegisterTable = (0, decorators_1.MakeClassDecorator)((target, tableName,
|
|
|
14
14
|
if (!(schemaName in schemaTableRegistry)) {
|
|
15
15
|
schemaTableRegistry[schemaName] = {};
|
|
16
16
|
}
|
|
17
|
-
schemaTableRegistry[schemaName][tableName] =
|
|
18
|
-
target;
|
|
17
|
+
schemaTableRegistry[schemaName][tableName] = target;
|
|
19
18
|
});
|
|
20
19
|
function getTablesForSchema(schemaName) {
|
|
21
20
|
return schemaTableRegistry[schemaName];
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":";;;AA6BA,gDAIC;AAjCD,sEAI+C;AAC/C,uEAAwD;AAGxD,qCAA4D;AAE5D,MAAM,mBAAmB,GAAiD,EAAE,CAAC;AAEhE,QAAA,aAAa,GAGU,IAAA,+BAAkB,EACpD,CAAC,MAAM,EAAE,SAAiB,EAAE,UAAkB,EAAE,EAAE;IAChD,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,MAAM,EAAE,4BAAmB,CAAC,CAAC;IAC1D,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;IACjC,QAAQ,CAAC,MAAM,GAAG,2BAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,CAAC,CAAC,UAAU,IAAI,mBAAmB,CAAC,EAAE,CAAC;QACzC,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IACvC,CAAC;IACD,mBAAmB,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;AACtD,CAAC,CACF,CAAC;AAEF,SAAgB,kBAAkB,CAChC,UAAkB;IAElB,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/table.d.ts
CHANGED
|
@@ -67,6 +67,13 @@ export interface IndexOptions {
|
|
|
67
67
|
* For a group, setting it on any field applies it to the whole group.
|
|
68
68
|
*/
|
|
69
69
|
crossInstance?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Refuse a second row of the instance with the same key: the write throws
|
|
72
|
+
* `DuplicateKeyError` from `@antelopejs/interface-database`.
|
|
73
|
+
*
|
|
74
|
+
* For a group, setting it on any field makes the whole group's key unique.
|
|
75
|
+
*/
|
|
76
|
+
unique?: boolean;
|
|
70
77
|
}
|
|
71
78
|
/**
|
|
72
79
|
* Database Table Index decorator.
|
|
@@ -74,6 +81,7 @@ export interface IndexOptions {
|
|
|
74
81
|
* Available options:
|
|
75
82
|
* - `group`: Index name for multi-field indexes.
|
|
76
83
|
* - `crossInstance`: Also keep the index fast for cross-instance queries.
|
|
84
|
+
* - `unique`: Refuse two rows of the instance with the same key.
|
|
77
85
|
*
|
|
78
86
|
* @param options Options
|
|
79
87
|
*/
|
package/dist/table.js
CHANGED
|
@@ -7,12 +7,17 @@ exports.Fixture = exports.Field = exports.Index = exports.Table = exports.TableR
|
|
|
7
7
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
8
8
|
const decorators_1 = require("@antelopejs/interface-core/decorators");
|
|
9
9
|
const common_1 = require("./modifiers/common");
|
|
10
|
+
const records_1 = require("./modifiers/internal/records");
|
|
10
11
|
const common_2 = require("./common");
|
|
11
12
|
exports.TableMetaSymbol = Symbol();
|
|
12
13
|
exports.TableRefSymbol = Symbol();
|
|
13
14
|
function isSchemaInstance(target) {
|
|
14
15
|
return typeof target === "object" && target !== null;
|
|
15
16
|
}
|
|
17
|
+
function extendTable(Base) {
|
|
18
|
+
return class _internal_table extends Base {
|
|
19
|
+
};
|
|
20
|
+
}
|
|
16
21
|
/**
|
|
17
22
|
* Database Table superclass
|
|
18
23
|
*/
|
|
@@ -44,20 +49,29 @@ class Table {
|
|
|
44
49
|
* @returns New superclass
|
|
45
50
|
*/
|
|
46
51
|
static with(...others) {
|
|
47
|
-
const c =
|
|
48
|
-
};
|
|
52
|
+
const c = extendTable(this);
|
|
49
53
|
for (const mixin of others
|
|
50
54
|
.map((otherClass) => otherClass.prototype && new otherClass())
|
|
51
55
|
.map((other) => other?.[common_1.MixinSymbol])
|
|
52
56
|
.filter((mixin) => mixin?.prototype)) {
|
|
53
57
|
for (const key of Object.getOwnPropertyNames(mixin.prototype)) {
|
|
54
58
|
if (key !== "constructor" && !(key in c.prototype)) {
|
|
55
|
-
c.prototype
|
|
59
|
+
Object.defineProperty(c.prototype, key, {
|
|
60
|
+
value: mixin.prototype[key],
|
|
61
|
+
writable: true,
|
|
62
|
+
enumerable: true,
|
|
63
|
+
configurable: true,
|
|
64
|
+
});
|
|
56
65
|
}
|
|
57
66
|
}
|
|
58
67
|
for (const key of Object.getOwnPropertySymbols(mixin.prototype)) {
|
|
59
68
|
if (!(key in c.prototype)) {
|
|
60
|
-
c.prototype
|
|
69
|
+
Object.defineProperty(c.prototype, key, {
|
|
70
|
+
value: mixin.prototype[key],
|
|
71
|
+
writable: true,
|
|
72
|
+
enumerable: true,
|
|
73
|
+
configurable: true,
|
|
74
|
+
});
|
|
61
75
|
}
|
|
62
76
|
}
|
|
63
77
|
}
|
|
@@ -71,19 +85,20 @@ exports.Table = Table;
|
|
|
71
85
|
* Available options:
|
|
72
86
|
* - `group`: Index name for multi-field indexes.
|
|
73
87
|
* - `crossInstance`: Also keep the index fast for cross-instance queries.
|
|
88
|
+
* - `unique`: Refuse two rows of the instance with the same key.
|
|
74
89
|
*
|
|
75
90
|
* @param options Options
|
|
76
91
|
*/
|
|
77
92
|
exports.Index = (0, decorators_1.MakePropertyDecorator)((target, propertyKey, options) => {
|
|
78
93
|
const metadata = (0, common_2.getMetadata)(target.constructor, common_2.DatumStaticMetadata);
|
|
79
|
-
metadata.addIndex(propertyKey, options?.group || propertyKey, options?.crossInstance);
|
|
94
|
+
metadata.addIndex(propertyKey, options?.group || propertyKey, options?.crossInstance, options?.unique);
|
|
80
95
|
});
|
|
81
96
|
/**
|
|
82
97
|
* Database Table Field type decorator.
|
|
83
98
|
*/
|
|
84
99
|
exports.Field = (0, decorators_1.MakePropertyDecorator)((target, propertyKey, type) => {
|
|
85
100
|
const metadata = (0, common_2.getMetadata)(target.constructor, common_2.DatumStaticMetadata);
|
|
86
|
-
metadata
|
|
101
|
+
(0, records_1.fieldTypesByKey)(metadata)[propertyKey] = type;
|
|
87
102
|
});
|
|
88
103
|
/**
|
|
89
104
|
* Database Table class decorator to create default data on table creation.
|
package/dist/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAiC;AAOjC,
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,16 +12,20 @@ export type DecodeRight<T> = {
|
|
|
12
12
|
right: T;
|
|
13
13
|
};
|
|
14
14
|
export type DecodeResult<T> = DecodeLeft | DecodeRight<T>;
|
|
15
|
+
type FieldCodec = Extract<FieldType, {
|
|
16
|
+
decode: unknown;
|
|
17
|
+
}>;
|
|
15
18
|
export type TestCodec<T> = {
|
|
16
19
|
readonly _A: T;
|
|
17
20
|
readonly _O: T;
|
|
18
21
|
readonly _I: unknown;
|
|
19
22
|
readonly name: string;
|
|
20
23
|
is(u: unknown): u is T;
|
|
21
|
-
encode(a: T):
|
|
22
|
-
decode(u:
|
|
24
|
+
encode(a: T): ReturnType<FieldCodec["encode"]>;
|
|
25
|
+
decode(u: Parameters<FieldCodec["decode"]>[0]): DecodeResult<T>;
|
|
23
26
|
};
|
|
24
27
|
export declare function makeCodec<T>(name: string, guard: (u: unknown) => u is T): TestCodec<T>;
|
|
25
28
|
export declare const stringCodec: TestCodec<string>;
|
|
26
29
|
export declare const numberCodec: TestCodec<number>;
|
|
27
30
|
export declare function asFieldType(codec: TestCodec<unknown>): FieldType;
|
|
31
|
+
export {};
|
|
@@ -3,21 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.numberCodec = exports.stringCodec = void 0;
|
|
4
4
|
exports.makeCodec = makeCodec;
|
|
5
5
|
exports.asFieldType = asFieldType;
|
|
6
|
+
class GuardCodec {
|
|
7
|
+
name;
|
|
8
|
+
guard;
|
|
9
|
+
_I = undefined;
|
|
10
|
+
constructor(name, guard) {
|
|
11
|
+
this.name = name;
|
|
12
|
+
this.guard = guard;
|
|
13
|
+
}
|
|
14
|
+
is = (u) => this.guard(u);
|
|
15
|
+
encode = (a) => a;
|
|
16
|
+
decode = (u) => this.guard(u)
|
|
17
|
+
? { _tag: "Right", right: u }
|
|
18
|
+
: {
|
|
19
|
+
_tag: "Left",
|
|
20
|
+
left: [{ value: u, context: [], message: `not ${this.name}` }],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
6
23
|
function makeCodec(name, guard) {
|
|
7
|
-
return
|
|
8
|
-
_A: undefined,
|
|
9
|
-
_O: undefined,
|
|
10
|
-
_I: undefined,
|
|
11
|
-
name,
|
|
12
|
-
is: guard,
|
|
13
|
-
encode: (a) => a,
|
|
14
|
-
decode: (u) => guard(u)
|
|
15
|
-
? { _tag: "Right", right: u }
|
|
16
|
-
: {
|
|
17
|
-
_tag: "Left",
|
|
18
|
-
left: [{ value: u, context: [], message: `not ${name}` }],
|
|
19
|
-
},
|
|
20
|
-
};
|
|
24
|
+
return new GuardCodec(name, guard);
|
|
21
25
|
}
|
|
22
26
|
exports.stringCodec = makeCodec("string", (u) => typeof u === "string");
|
|
23
27
|
exports.numberCodec = makeCodec("number", (u) => typeof u === "number");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec_helpers.js","sourceRoot":"","sources":["../../src/tests/codec_helpers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"codec_helpers.js","sourceRoot":"","sources":["../../src/tests/codec_helpers.ts"],"names":[],"mappings":";;;AA8CA,8BAKC;AAWD,kCAEC;AA3CD,MAAM,UAAU;IAMH;IACQ;IAJV,EAAE,GAAY,SAAS,CAAC;IAEjC,YACW,IAAY,EACJ,KAA6B;QADrC,SAAI,GAAJ,IAAI,CAAQ;QACJ,UAAK,GAAL,KAAK,CAAwB;IAC7C,CAAC;IAEK,EAAE,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3C,MAAM,GAAG,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAErB,MAAM,GAAG,CAChB,CAAsC,EACrB,EAAE,CACnB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;QAC7B,CAAC,CAAC;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;SAC/D,CAAC;CACT;AAED,SAAgB,SAAS,CACvB,IAAY,EACZ,KAA6B;IAE7B,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAEY,QAAA,WAAW,GAAsB,SAAS,CACrD,QAAQ,EACR,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAC1C,CAAC;AACW,QAAA,WAAW,GAAsB,SAAS,CACrD,QAAQ,EACR,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAC1C,CAAC;AAEF,SAAgB,WAAW,CAAC,KAAyB;IACnD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,52 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const chai_1 = require("chai");
|
|
4
|
-
const common_1 = require("
|
|
4
|
+
const common_1 = require("../common");
|
|
5
|
+
const _partial = {
|
|
6
|
+
name: "John",
|
|
7
|
+
address: {
|
|
8
|
+
street: "Main St",
|
|
9
|
+
},
|
|
10
|
+
hobbies: ["reading"],
|
|
11
|
+
};
|
|
5
12
|
describe("Common - metadata", () => {
|
|
6
|
-
it("creates metadata with default values", async () =>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
it("creates metadata with default values", async () => {
|
|
14
|
+
const metadata = new common_1.DatumStaticMetadata();
|
|
15
|
+
(0, chai_1.expect)(metadata.primary).to.equal("_id");
|
|
16
|
+
(0, chai_1.expect)(metadata.indexes).to.deep.equal({});
|
|
17
|
+
(0, chai_1.expect)(metadata.generator).to.equal(undefined);
|
|
18
|
+
});
|
|
19
|
+
it("adds index to metadata", async () => {
|
|
20
|
+
const metadata = new common_1.DatumStaticMetadata();
|
|
21
|
+
metadata.addIndex("email", "user_search");
|
|
22
|
+
metadata.addIndex("name", "user_search");
|
|
23
|
+
(0, chai_1.expect)(metadata.indexes.user_search).to.deep.equal(["email", "name"]);
|
|
24
|
+
});
|
|
25
|
+
it("creates new metadata when not exists", async () => {
|
|
26
|
+
class TestClass {
|
|
27
|
+
}
|
|
28
|
+
const metadata = (0, common_1.getMetadata)(TestClass, common_1.DatumStaticMetadata);
|
|
29
|
+
(0, chai_1.expect)(metadata).to.be.instanceOf(common_1.DatumStaticMetadata);
|
|
30
|
+
(0, chai_1.expect)(metadata.primary).to.equal("_id");
|
|
31
|
+
});
|
|
32
|
+
it("retrieves existing metadata", async () => {
|
|
33
|
+
class TestClass {
|
|
34
|
+
}
|
|
35
|
+
const metadata1 = (0, common_1.getMetadata)(TestClass, common_1.DatumStaticMetadata);
|
|
36
|
+
const metadata2 = (0, common_1.getMetadata)(TestClass, common_1.DatumStaticMetadata);
|
|
37
|
+
(0, chai_1.expect)(metadata1).to.equal(metadata2);
|
|
38
|
+
});
|
|
39
|
+
it("has schemaName undefined by default", async () => {
|
|
40
|
+
const metadata = new common_1.DatumStaticMetadata();
|
|
41
|
+
(0, chai_1.expect)(metadata.schemaName).to.equal(undefined);
|
|
42
|
+
});
|
|
12
43
|
});
|
|
13
|
-
async function CreateMetadataWithDefaultValuesTest() {
|
|
14
|
-
const metadata = new common_1.DatumStaticMetadata();
|
|
15
|
-
(0, chai_1.expect)(metadata.primary).to.equal("_id");
|
|
16
|
-
(0, chai_1.expect)(metadata.indexes).to.deep.equal({});
|
|
17
|
-
(0, chai_1.expect)(metadata.generator).to.equal(undefined);
|
|
18
|
-
}
|
|
19
|
-
async function AddIndexToMetadataTest() {
|
|
20
|
-
const metadata = new common_1.DatumStaticMetadata();
|
|
21
|
-
metadata.addIndex("email", "user_search");
|
|
22
|
-
metadata.addIndex("name", "user_search");
|
|
23
|
-
(0, chai_1.expect)(metadata.indexes.user_search).to.deep.equal(["email", "name"]);
|
|
24
|
-
}
|
|
25
|
-
async function CreateNewMetadataWhenNotExistsTest() {
|
|
26
|
-
class TestClass {
|
|
27
|
-
}
|
|
28
|
-
const metadata = (0, common_1.getMetadata)(TestClass, common_1.DatumStaticMetadata);
|
|
29
|
-
(0, chai_1.expect)(metadata).to.be.instanceOf(common_1.DatumStaticMetadata);
|
|
30
|
-
(0, chai_1.expect)(metadata.primary).to.equal("_id");
|
|
31
|
-
}
|
|
32
|
-
async function RetrieveExistingMetadataTest() {
|
|
33
|
-
class TestClass {
|
|
34
|
-
}
|
|
35
|
-
const metadata1 = (0, common_1.getMetadata)(TestClass, common_1.DatumStaticMetadata);
|
|
36
|
-
const metadata2 = (0, common_1.getMetadata)(TestClass, common_1.DatumStaticMetadata);
|
|
37
|
-
(0, chai_1.expect)(metadata1).to.equal(metadata2);
|
|
38
|
-
}
|
|
39
|
-
async function HandleDeepPartialTypesCorrectlyTest() {
|
|
40
|
-
const _partial = {
|
|
41
|
-
name: "John",
|
|
42
|
-
address: {
|
|
43
|
-
street: "Main St",
|
|
44
|
-
},
|
|
45
|
-
hobbies: ["reading"],
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
async function SchemaNameUndefinedByDefaultTest() {
|
|
49
|
-
const metadata = new common_1.DatumStaticMetadata();
|
|
50
|
-
(0, chai_1.expect)(metadata.schemaName).to.equal(undefined);
|
|
51
|
-
}
|
|
52
44
|
//# sourceMappingURL=common.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.test.js","sourceRoot":"","sources":["../../src/tests/common.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"common.test.js","sourceRoot":"","sources":["../../src/tests/common.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,sCAA+E;AAY/E,MAAM,QAAQ,GAA0B;IACtC,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE;QACP,MAAM,EAAE,SAAS;KAClB;IACD,OAAO,EAAE,CAAC,SAAS,CAAC;CACrB,CAAC;AAEF,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,QAAQ,GAAG,IAAI,4BAAmB,EAAE,CAAC;QAE3C,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAA,aAAM,EAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,QAAQ,GAAG,IAAI,4BAAmB,EAAE,CAAC;QAE3C,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAEzC,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,SAAS;SAAG;QAClB,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,SAAS,EAAE,4BAAmB,CAAC,CAAC;QAE7D,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,4BAAmB,CAAC,CAAC;QACvD,IAAA,aAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,SAAS;SAAG;QAClB,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,SAAS,EAAE,4BAAmB,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,SAAS,EAAE,4BAAmB,CAAC,CAAC;QAE9D,IAAA,aAAM,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,QAAQ,GAAG,IAAI,4BAAmB,EAAE,CAAC;QAC3C,IAAA,aAAM,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -44,8 +44,33 @@ const other_instance_1 = require("./helpers/other-instance");
|
|
|
44
44
|
const buildFolder = node_path_1.default.resolve(__dirname, "..");
|
|
45
45
|
const databaseFolder = node_path_1.default.join(node_path_1.default.dirname(require.resolve("@antelopejs/interface-database/package.json")), "dist");
|
|
46
46
|
const otherInstance = (0, other_instance_1.CreateOtherInstance)([buildFolder, databaseFolder]);
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
function isFunction(value) {
|
|
48
|
+
return typeof value === "function";
|
|
49
|
+
}
|
|
50
|
+
function isDecoratorsModule(candidate) {
|
|
51
|
+
const present = new Map(Object.entries(candidate));
|
|
52
|
+
return Object.entries(Decorators).every(([name, member]) => present.has(name) &&
|
|
53
|
+
(!isFunction(member) || isFunction(present.get(name))));
|
|
54
|
+
}
|
|
55
|
+
function isStagedSchemaModule(candidate) {
|
|
56
|
+
return "Schema" in candidate && typeof candidate.Schema === "function";
|
|
57
|
+
}
|
|
58
|
+
function loadDecorators() {
|
|
59
|
+
const loaded = otherInstance(node_path_1.default.join(buildFolder, "index.js"));
|
|
60
|
+
if (!isDecoratorsModule(loaded)) {
|
|
61
|
+
throw new Error("The other instance does not expose the decorators");
|
|
62
|
+
}
|
|
63
|
+
return loaded;
|
|
64
|
+
}
|
|
65
|
+
function loadStagedSchema() {
|
|
66
|
+
const loaded = otherInstance(node_path_1.default.join(databaseFolder, "staged-query", "schema.js"));
|
|
67
|
+
if (!isStagedSchemaModule(loaded)) {
|
|
68
|
+
throw new Error("The other instance does not expose the schema exports");
|
|
69
|
+
}
|
|
70
|
+
return loaded;
|
|
71
|
+
}
|
|
72
|
+
const Other = loadDecorators();
|
|
73
|
+
const OtherStagedSchema = loadStagedSchema();
|
|
49
74
|
const boundSchemaId = "cross-instance-bound";
|
|
50
75
|
class Item extends Decorators.Table {
|
|
51
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross_instance.test.js","sourceRoot":"","sources":["../../src/tests/cross_instance.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA6B;AAC7B,+BAA8B;AAC9B,yEAA2D;
|
|
1
|
+
{"version":3,"file":"cross_instance.test.js","sourceRoot":"","sources":["../../src/tests/cross_instance.test.ts"],"names":[],"mappings":"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"}
|