@contember/schema-utils 1.2.0 → 1.3.0-alpha.13
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/src/SchemaDatabaseMetadata.d.ts +40 -0
- package/dist/src/SchemaDatabaseMetadata.d.ts.map +1 -0
- package/dist/src/SchemaDatabaseMetadata.js +20 -0
- package/dist/src/SchemaDatabaseMetadata.js.map +1 -0
- package/dist/src/acl/PredicateDefinitionProcessor.d.ts.map +1 -1
- package/dist/src/acl/PredicateDefinitionProcessor.js +49 -44
- package/dist/src/acl/PredicateDefinitionProcessor.js.map +1 -1
- package/dist/src/definition-generator/AclDefinitionCodeGenerator.d.ts +19 -0
- package/dist/src/definition-generator/AclDefinitionCodeGenerator.d.ts.map +1 -0
- package/dist/src/definition-generator/AclDefinitionCodeGenerator.js +116 -0
- package/dist/src/definition-generator/AclDefinitionCodeGenerator.js.map +1 -0
- package/dist/src/definition-generator/DefinitionCodeGenerator.d.ts +27 -0
- package/dist/src/definition-generator/DefinitionCodeGenerator.d.ts.map +1 -0
- package/dist/src/definition-generator/DefinitionCodeGenerator.js +216 -0
- package/dist/src/definition-generator/DefinitionCodeGenerator.js.map +1 -0
- package/dist/src/definition-generator/DefinitionNamingConventions.d.ts +7 -0
- package/dist/src/definition-generator/DefinitionNamingConventions.d.ts.map +1 -0
- package/dist/src/definition-generator/DefinitionNamingConventions.js +18 -0
- package/dist/src/definition-generator/DefinitionNamingConventions.js.map +1 -0
- package/dist/src/definition-generator/TsDefinitionGenerator.d.ts +4 -18
- package/dist/src/definition-generator/TsDefinitionGenerator.d.ts.map +1 -1
- package/dist/src/definition-generator/TsDefinitionGenerator.js +6 -232
- package/dist/src/definition-generator/TsDefinitionGenerator.js.map +1 -1
- package/dist/src/definition-generator/index.d.ts +3 -0
- package/dist/src/definition-generator/index.d.ts.map +1 -1
- package/dist/src/definition-generator/index.js +3 -0
- package/dist/src/definition-generator/index.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lax/LaxSchemaConverter.d.ts.map +1 -1
- package/dist/src/lax/LaxSchemaConverter.js +4 -5
- package/dist/src/lax/LaxSchemaConverter.js.map +1 -1
- package/dist/src/model/index.d.ts +0 -1
- package/dist/src/model/index.d.ts.map +1 -1
- package/dist/src/model/index.js +0 -1
- package/dist/src/model/index.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/type-schema/actions.d.ts +31 -0
- package/dist/src/type-schema/actions.d.ts.map +1 -0
- package/dist/src/type-schema/actions.js +75 -0
- package/dist/src/type-schema/actions.js.map +1 -0
- package/dist/src/type-schema/model.d.ts +8 -6
- package/dist/src/type-schema/model.d.ts.map +1 -1
- package/dist/src/type-schema/model.js +6 -6
- package/dist/src/type-schema/model.js.map +1 -1
- package/dist/src/type-schema/where.d.ts +7 -0
- package/dist/src/type-schema/where.d.ts.map +1 -0
- package/dist/src/type-schema/where.js +50 -0
- package/dist/src/type-schema/where.js.map +1 -0
- package/dist/src/utils/deepCompare.d.ts +8 -2
- package/dist/src/utils/deepCompare.d.ts.map +1 -1
- package/dist/src/utils/deepCompare.js +32 -4
- package/dist/src/utils/deepCompare.js.map +1 -1
- package/dist/src/utils/printJsValue.d.ts +13 -0
- package/dist/src/utils/printJsValue.d.ts.map +1 -0
- package/dist/src/utils/printJsValue.js +57 -0
- package/dist/src/utils/printJsValue.js.map +1 -0
- package/dist/src/validation/ActionsValidator.d.ts +13 -0
- package/dist/src/validation/ActionsValidator.d.ts.map +1 -0
- package/dist/src/validation/ActionsValidator.js +134 -0
- package/dist/src/validation/ActionsValidator.js.map +1 -0
- package/dist/src/validation/ModelValidator.d.ts.map +1 -1
- package/dist/src/validation/ModelValidator.js +5 -31
- package/dist/src/validation/ModelValidator.js.map +1 -1
- package/dist/src/validation/SchemaValidator.d.ts.map +1 -1
- package/dist/src/validation/SchemaValidator.js +4 -1
- package/dist/src/validation/SchemaValidator.js.map +1 -1
- package/dist/src/validation/errors.d.ts +1 -1
- package/dist/src/validation/errors.d.ts.map +1 -1
- package/dist/src/validation/errors.js.map +1 -1
- package/dist/tests/cases/unit/deepCompare.test.d.ts +2 -0
- package/dist/tests/cases/unit/deepCompare.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/deepCompare.test.js +43 -0
- package/dist/tests/cases/unit/deepCompare.test.js.map +1 -0
- package/dist/tests/cases/unit/modelValidator.test.js +6 -72
- package/dist/tests/cases/unit/modelValidator.test.js.map +1 -1
- package/dist/tests/cases/unit/printJsvalue.test.d.ts +2 -0
- package/dist/tests/cases/unit/printJsvalue.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/printJsvalue.test.js +90 -0
- package/dist/tests/cases/unit/printJsvalue.test.js.map +1 -0
- package/dist/tests/cases/unit/schemas/acl.d.ts +13 -0
- package/dist/tests/cases/unit/schemas/acl.d.ts.map +1 -0
- package/dist/tests/cases/unit/schemas/acl.js +47 -0
- package/dist/tests/cases/unit/schemas/acl.js.map +1 -0
- package/dist/tests/cases/unit/schemas/basic.d.ts.map +1 -1
- package/dist/tests/cases/unit/schemas/basic.js.map +1 -1
- package/dist/tests/cases/unit/schemas/enum.d.ts.map +1 -1
- package/dist/tests/cases/unit/schemas/enum.js.map +1 -1
- package/dist/tests/cases/unit/schemas/relations.d.ts.map +1 -1
- package/dist/tests/cases/unit/schemas/relations.js.map +1 -1
- package/dist/tests/cases/unit/schemas/unique.d.ts.map +1 -1
- package/dist/tests/cases/unit/schemas/unique.js.map +1 -1
- package/dist/tests/cases/unit/tsDefinitionGenerator.test.js +5 -3
- package/dist/tests/cases/unit/tsDefinitionGenerator.test.js.map +1 -1
- package/dist/tests/cases/unit/whereSchema.test.d.ts +2 -0
- package/dist/tests/cases/unit/whereSchema.test.d.ts.map +1 -0
- package/dist/tests/cases/unit/whereSchema.test.js +85 -0
- package/dist/tests/cases/unit/whereSchema.test.js.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -4
- package/src/SchemaDatabaseMetadata.ts +66 -0
- package/src/acl/PredicateDefinitionProcessor.ts +59 -60
- package/src/definition-generator/AclDefinitionCodeGenerator.ts +126 -0
- package/src/definition-generator/DefinitionCodeGenerator.ts +250 -0
- package/src/definition-generator/DefinitionNamingConventions.ts +16 -0
- package/src/definition-generator/TsDefinitionGenerator.ts +8 -264
- package/src/definition-generator/index.ts +3 -0
- package/src/index.ts +5 -1
- package/src/lax/LaxSchemaConverter.ts +4 -5
- package/src/model/index.ts +0 -1
- package/src/tsconfig.json +2 -6
- package/src/type-schema/actions.ts +79 -0
- package/src/type-schema/model.ts +21 -8
- package/src/type-schema/where.ts +28 -0
- package/src/utils/deepCompare.ts +37 -4
- package/src/utils/printJsValue.ts +62 -0
- package/src/validation/ActionsValidator.ts +119 -0
- package/src/validation/ModelValidator.ts +12 -36
- package/src/validation/SchemaValidator.ts +6 -1
- package/src/validation/errors.ts +7 -0
- package/tests/cases/unit/__snapshots__/laxSchemaConverter.test.ts.snap +30 -14
- package/tests/cases/unit/deepCompare.test.ts +44 -0
- package/tests/cases/unit/modelValidator.test.ts +6 -73
- package/tests/cases/unit/printJsvalue.test.ts +100 -0
- package/tests/cases/unit/schemas/acl.ts +34 -0
- package/tests/cases/unit/schemas/basic.ts +1 -1
- package/tests/cases/unit/schemas/enum.ts +1 -1
- package/tests/cases/unit/schemas/relations.ts +1 -1
- package/tests/cases/unit/schemas/unique.ts +1 -1
- package/tests/cases/unit/tsDefinitionGenerator.test.ts +6 -4
- package/tests/cases/unit/whereSchema.test.ts +89 -0
- package/tests/tsconfig.json +1 -3
- package/tsconfig.json +2 -6
- package/dist/src/model/NamingHelper.d.ts +0 -9
- package/dist/src/model/NamingHelper.d.ts.map +0 -1
- package/dist/src/model/NamingHelper.js +0 -46
- package/dist/src/model/NamingHelper.js.map +0 -1
- package/src/model/NamingHelper.ts +0 -42
|
@@ -3,72 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const vitest_1 = require("vitest");
|
|
4
4
|
const schema_1 = require("@contember/schema");
|
|
5
5
|
const src_1 = require("../../../src");
|
|
6
|
-
(0, vitest_1.test)('index name collision', () => {
|
|
7
|
-
const model = {
|
|
8
|
-
enums: {},
|
|
9
|
-
entities: {
|
|
10
|
-
Foo: {
|
|
11
|
-
fields: {
|
|
12
|
-
id: {
|
|
13
|
-
columnName: 'id',
|
|
14
|
-
name: 'id',
|
|
15
|
-
nullable: false,
|
|
16
|
-
type: schema_1.Model.ColumnType.Uuid,
|
|
17
|
-
columnType: 'uuid',
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
name: 'Foo',
|
|
21
|
-
primary: 'id',
|
|
22
|
-
primaryColumn: 'id',
|
|
23
|
-
tableName: 'foo',
|
|
24
|
-
unique: {},
|
|
25
|
-
eventLog: {
|
|
26
|
-
enabled: true,
|
|
27
|
-
},
|
|
28
|
-
indexes: {
|
|
29
|
-
test: { fields: ['id'], name: 'test' },
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
Bar: {
|
|
33
|
-
fields: {
|
|
34
|
-
id: {
|
|
35
|
-
columnName: 'id',
|
|
36
|
-
name: 'id',
|
|
37
|
-
nullable: false,
|
|
38
|
-
type: schema_1.Model.ColumnType.Uuid,
|
|
39
|
-
columnType: 'uuid',
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
name: 'Bar',
|
|
43
|
-
primary: 'id',
|
|
44
|
-
primaryColumn: 'id',
|
|
45
|
-
tableName: 'bar',
|
|
46
|
-
unique: {
|
|
47
|
-
test: { fields: ['id'], name: 'test' },
|
|
48
|
-
},
|
|
49
|
-
eventLog: {
|
|
50
|
-
enabled: true,
|
|
51
|
-
},
|
|
52
|
-
indexes: {
|
|
53
|
-
foo: { fields: ['id'], name: 'foo' },
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
const validator = new src_1.ModelValidator(model);
|
|
59
|
-
vitest_1.assert.deepStrictEqual(validator.validate(), [
|
|
60
|
-
{
|
|
61
|
-
code: 'MODEL_NAME_COLLISION',
|
|
62
|
-
message: 'index name foo of entity Bar collides with table name foo of entity Foo',
|
|
63
|
-
path: ['entities', 'Bar'],
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
code: 'MODEL_NAME_COLLISION',
|
|
67
|
-
message: 'unique index name test of entity Bar collides with index name test of entity Foo',
|
|
68
|
-
path: ['entities', 'Bar'],
|
|
69
|
-
},
|
|
70
|
-
]);
|
|
71
|
-
});
|
|
72
6
|
(0, vitest_1.test)('"meta" collision', () => {
|
|
73
7
|
const model = {
|
|
74
8
|
enums: {},
|
|
@@ -87,9 +21,9 @@ const src_1 = require("../../../src");
|
|
|
87
21
|
primary: 'id',
|
|
88
22
|
primaryColumn: 'id',
|
|
89
23
|
tableName: 'foo',
|
|
90
|
-
unique:
|
|
24
|
+
unique: [],
|
|
91
25
|
eventLog: { enabled: true },
|
|
92
|
-
indexes:
|
|
26
|
+
indexes: [],
|
|
93
27
|
},
|
|
94
28
|
FooMeta: {
|
|
95
29
|
fields: {
|
|
@@ -105,9 +39,9 @@ const src_1 = require("../../../src");
|
|
|
105
39
|
primary: 'id',
|
|
106
40
|
primaryColumn: 'id',
|
|
107
41
|
tableName: 'foo_meta',
|
|
108
|
-
unique:
|
|
42
|
+
unique: [],
|
|
109
43
|
eventLog: { enabled: true },
|
|
110
|
-
indexes:
|
|
44
|
+
indexes: [],
|
|
111
45
|
},
|
|
112
46
|
BarMeta: {
|
|
113
47
|
fields: {
|
|
@@ -123,9 +57,9 @@ const src_1 = require("../../../src");
|
|
|
123
57
|
primary: 'id',
|
|
124
58
|
primaryColumn: 'id',
|
|
125
59
|
tableName: 'bar',
|
|
126
|
-
unique:
|
|
60
|
+
unique: [],
|
|
127
61
|
eventLog: { enabled: true },
|
|
128
|
-
indexes:
|
|
62
|
+
indexes: [],
|
|
129
63
|
},
|
|
130
64
|
},
|
|
131
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelValidator.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/modelValidator.test.ts"],"names":[],"mappings":";;AAAA,mCAAqC;AACrC,8CAAyC;AACzC,sCAA6C;
|
|
1
|
+
{"version":3,"file":"modelValidator.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/modelValidator.test.ts"],"names":[],"mappings":";;AAAA,mCAAqC;AACrC,8CAAyC;AACzC,sCAA6C;AAK7C,IAAA,aAAI,EAAC,kBAAkB,EAAE,GAAG,EAAE;IAC7B,MAAM,KAAK,GAAiB;QAC3B,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE;YACT,GAAG,EAAE;gBACJ,MAAM,EAAE;oBACP,EAAE,EAAE;wBACH,UAAU,EAAE,IAAI;wBAChB,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,KAAK;wBACf,IAAI,EAAE,cAAK,CAAC,UAAU,CAAC,IAAI;wBAC3B,UAAU,EAAE,MAAM;qBAClB;iBACD;gBACD,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,IAAI;gBACnB,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC3B,OAAO,EAAE,EAAE;aACX;YACD,OAAO,EAAE;gBACR,MAAM,EAAE;oBACP,EAAE,EAAE;wBACH,UAAU,EAAE,IAAI;wBAChB,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,KAAK;wBACf,IAAI,EAAE,cAAK,CAAC,UAAU,CAAC,IAAI;wBAC3B,UAAU,EAAE,MAAM;qBAClB;iBACD;gBACD,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,IAAI;gBACnB,SAAS,EAAE,UAAU;gBACrB,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC3B,OAAO,EAAE,EAAE;aACX;YACD,OAAO,EAAE;gBACR,MAAM,EAAE;oBACP,EAAE,EAAE;wBACH,UAAU,EAAE,IAAI;wBAChB,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,KAAK;wBACf,IAAI,EAAE,cAAK,CAAC,UAAU,CAAC,IAAI;wBAC3B,UAAU,EAAE,MAAM;qBAClB;iBACD;gBACD,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,IAAI;gBACnB,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC3B,OAAO,EAAE,EAAE;aACX;SACD;KACD,CAAA;IACD,MAAM,SAAS,GAAG,IAAI,oBAAc,CAAC,KAAK,CAAC,CAAA;IAC3C,eAAM,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;QAC5C;YACC,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,gHAAgH;YACzH,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;SAC7B;KACD,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printJsvalue.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/unit/printJsvalue.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const printJsValue_1 = require("../../../src/utils/printJsValue");
|
|
5
|
+
(0, vitest_1.beforeAll)(() => {
|
|
6
|
+
vitest_1.expect.addSnapshotSerializer({
|
|
7
|
+
test: val => typeof val === 'string',
|
|
8
|
+
print: val => String(val),
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
(0, vitest_1.describe)('printJsValue', () => {
|
|
12
|
+
(0, vitest_1.test)('string', () => {
|
|
13
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)('foobar')).toMatchInlineSnapshot(`'foobar'`);
|
|
14
|
+
});
|
|
15
|
+
(0, vitest_1.test)('string escape', () => {
|
|
16
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)('foo\'bar')).toMatchInlineSnapshot(`'foo\\'bar'`);
|
|
17
|
+
});
|
|
18
|
+
(0, vitest_1.test)('number', () => {
|
|
19
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)(11)).toMatchInlineSnapshot(`11`);
|
|
20
|
+
});
|
|
21
|
+
(0, vitest_1.test)('boolean', () => {
|
|
22
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)(true)).toMatchInlineSnapshot(`true`);
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.test)('null', () => {
|
|
25
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)(null)).toMatchInlineSnapshot(`null`);
|
|
26
|
+
});
|
|
27
|
+
(0, vitest_1.test)('inline array', () => {
|
|
28
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)([1, 2, 3])).toMatchInlineSnapshot(`[1, 2, 3]`);
|
|
29
|
+
});
|
|
30
|
+
(0, vitest_1.test)('block array', () => {
|
|
31
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)([1, 2, 3], () => true)).toMatchInlineSnapshot(`
|
|
32
|
+
[
|
|
33
|
+
1,
|
|
34
|
+
2,
|
|
35
|
+
3,
|
|
36
|
+
]
|
|
37
|
+
`);
|
|
38
|
+
});
|
|
39
|
+
(0, vitest_1.test)('inline object', () => {
|
|
40
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)({ a: 1, b: 2 })).toMatchInlineSnapshot('{ a: 1, b: 2 }');
|
|
41
|
+
});
|
|
42
|
+
(0, vitest_1.test)('block object', () => {
|
|
43
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)({ a: 1, b: 2 }, () => true)).toMatchInlineSnapshot(`
|
|
44
|
+
{
|
|
45
|
+
a: 1,
|
|
46
|
+
b: 2,
|
|
47
|
+
}
|
|
48
|
+
`);
|
|
49
|
+
});
|
|
50
|
+
(0, vitest_1.test)('nested block object', () => {
|
|
51
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)({ a: 1, b: { c: { d: { e: 1 } } } }, () => true)).toMatchInlineSnapshot(`
|
|
52
|
+
{
|
|
53
|
+
a: 1,
|
|
54
|
+
b: {
|
|
55
|
+
c: {
|
|
56
|
+
d: {
|
|
57
|
+
e: 1,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
}
|
|
62
|
+
`);
|
|
63
|
+
});
|
|
64
|
+
(0, vitest_1.test)('one level nested block object', () => {
|
|
65
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)({ a: 1, b: { c: { d: { e: 1 } } } }, (_, path) => path.length === 0)).toMatchInlineSnapshot(`
|
|
66
|
+
{
|
|
67
|
+
a: 1,
|
|
68
|
+
b: { c: { d: { e: 1 } } },
|
|
69
|
+
}
|
|
70
|
+
`);
|
|
71
|
+
});
|
|
72
|
+
(0, vitest_1.test)('nested block object and arr', () => {
|
|
73
|
+
(0, vitest_1.expect)((0, printJsValue_1.printJsValue)({ a: 1, b: [2, { c: 4 }, [5, 6]] }, () => true)).toMatchInlineSnapshot(`
|
|
74
|
+
{
|
|
75
|
+
a: 1,
|
|
76
|
+
b: [
|
|
77
|
+
2,
|
|
78
|
+
{
|
|
79
|
+
c: 4,
|
|
80
|
+
},
|
|
81
|
+
[
|
|
82
|
+
5,
|
|
83
|
+
6,
|
|
84
|
+
],
|
|
85
|
+
],
|
|
86
|
+
}
|
|
87
|
+
`);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=printJsvalue.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printJsvalue.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/printJsvalue.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SchemaDefinition as def, AclDefinition as acl } from '@contember/schema-definition';
|
|
2
|
+
export declare const readerRole: acl.Role<"reader">;
|
|
3
|
+
export declare const editorRole: acl.Role<"editor">;
|
|
4
|
+
export declare const categoryEditorVariable: acl.VariableDefinition<"category", acl.Role<"editor">, import("@contember/schema").Acl.EntityVariable>;
|
|
5
|
+
export declare class Article {
|
|
6
|
+
title: def.ColumnDefinition;
|
|
7
|
+
deletedAt: def.ColumnDefinition;
|
|
8
|
+
category: import("@contember/schema-definition/dist/src/model/definition/types").Interface<def.ManyHasOneDefinitionImpl>;
|
|
9
|
+
}
|
|
10
|
+
export declare class Category {
|
|
11
|
+
name: def.ColumnDefinition;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=acl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/acl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,GAAG,EAAE,aAAa,IAAI,GAAG,EAAE,MAAM,8BAA8B,CAAA;AAE5F,eAAO,MAAM,UAAU,oBAA4C,CAAA;AAEnE,eAAO,MAAM,UAAU,oBAA4C,CAAA;AAEnE,eAAO,MAAM,sBAAsB,wGAA+D,CAAA;AAGlG,qBASa,OAAO;IACnB,KAAK,uBAAqB;IAC1B,SAAS,uBAAuB;IAChC,QAAQ,iHAA2B;CACnC;AAGD,qBAMa,QAAQ;IACpB,IAAI,uBAAqB;CACzB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.Category = exports.Article = exports.categoryEditorVariable = exports.editorRole = exports.readerRole = void 0;
|
|
10
|
+
const schema_definition_1 = require("@contember/schema-definition");
|
|
11
|
+
exports.readerRole = schema_definition_1.AclDefinition.createRole('reader', { stages: '*' });
|
|
12
|
+
exports.editorRole = schema_definition_1.AclDefinition.createRole('editor', { stages: '*' });
|
|
13
|
+
exports.categoryEditorVariable = schema_definition_1.AclDefinition.createEntityVariable('category', 'Category', exports.editorRole);
|
|
14
|
+
let Article = class Article {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.title = schema_definition_1.SchemaDefinition.stringColumn();
|
|
17
|
+
this.deletedAt = schema_definition_1.SchemaDefinition.dateTimeColumn();
|
|
18
|
+
this.category = schema_definition_1.SchemaDefinition.manyHasOne(Category);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
Article = __decorate([
|
|
22
|
+
schema_definition_1.AclDefinition.allow(exports.readerRole, {
|
|
23
|
+
read: true,
|
|
24
|
+
}),
|
|
25
|
+
schema_definition_1.AclDefinition.allow(exports.editorRole, {
|
|
26
|
+
when: { category: { id: exports.categoryEditorVariable } },
|
|
27
|
+
read: true,
|
|
28
|
+
create: ['title', 'category'],
|
|
29
|
+
update: ['title', 'category'],
|
|
30
|
+
})
|
|
31
|
+
], Article);
|
|
32
|
+
exports.Article = Article;
|
|
33
|
+
let Category = class Category {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.name = schema_definition_1.SchemaDefinition.stringColumn();
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Category = __decorate([
|
|
39
|
+
schema_definition_1.AclDefinition.allow(exports.readerRole, {
|
|
40
|
+
read: true,
|
|
41
|
+
}),
|
|
42
|
+
schema_definition_1.AclDefinition.allow(exports.editorRole, {
|
|
43
|
+
read: true,
|
|
44
|
+
})
|
|
45
|
+
], Category);
|
|
46
|
+
exports.Category = Category;
|
|
47
|
+
//# sourceMappingURL=acl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/acl.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oEAA4F;AAE/E,QAAA,UAAU,GAAG,iCAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;AAEtD,QAAA,UAAU,GAAG,iCAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;AAEtD,QAAA,sBAAsB,GAAG,iCAAG,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,kBAAU,CAAC,CAAA;AAY3F,IAAM,OAAO,GAAb,MAAM,OAAO;IAAb;QACN,UAAK,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;QAC1B,cAAS,GAAG,oCAAG,CAAC,cAAc,EAAE,CAAA;QAChC,aAAQ,GAAG,oCAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;CAAA,CAAA;AAJY,OAAO;IATnB,iCAAG,CAAC,KAAK,CAAC,kBAAU,EAAE;QACtB,IAAI,EAAE,IAAI;KACV,CAAC;IACD,iCAAG,CAAC,KAAK,CAAC,kBAAU,EAAE;QACtB,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,8BAAsB,EAAE,EAAE;QAClD,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;QAC7B,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;KAC7B,CAAC;GACW,OAAO,CAInB;AAJY,0BAAO;AAab,IAAM,QAAQ,GAAd,MAAM,QAAQ;IAAd;QACN,SAAI,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;IAC1B,CAAC;CAAA,CAAA;AAFY,QAAQ;IANpB,iCAAG,CAAC,KAAK,CAAC,kBAAU,EAAE;QACtB,IAAI,EAAE,IAAI;KACV,CAAC;IACD,iCAAG,CAAC,KAAK,CAAC,kBAAU,EAAE;QACtB,IAAI,EAAE,IAAI;KACV,CAAC;GACW,QAAQ,CAEpB;AAFY,4BAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/basic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/basic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,GAAG,EAAwB,MAAM,8BAA8B,CAAA;AAE5F,qBAAa,OAAO;IACnB,KAAK,uBAAqB;CAC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/basic.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/basic.ts"],"names":[],"mappings":";;;AAAA,oEAA4F;AAE5F,MAAa,OAAO;IAApB;QACC,UAAK,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;IAC3B,CAAC;CAAA;AAFD,0BAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"enum.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,GAAG,EAAwB,MAAM,8BAA8B,CAAA;AAE5F,eAAO,MAAM,YAAY,2CAAuC,CAAA;AAEhE,qBAAa,OAAO;IACnB,KAAK,uBAAqB;IAC1B,KAAK,yGAA0D;CAC/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/enum.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/enum.ts"],"names":[],"mappings":";;;AAAA,oEAA4F;AAE/E,QAAA,YAAY,GAAG,oCAAG,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;AAEhE,MAAa,OAAO;IAApB;QACC,UAAK,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;QAC1B,UAAK,GAAG,oCAAG,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAChE,CAAC;CAAA;AAHD,0BAGC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/relations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/relations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,GAAG,EAAwB,MAAM,8BAA8B,CAAA;AAE5F,qBAAa,OAAO;IACnB,KAAK,uBAAqB;IAC1B,QAAQ,iHAAuC;IAC/C,IAAI,kHAAmC;CACvC;AAED,qBAAa,QAAQ;IACpB,IAAI,uBAAqB;IACzB,QAAQ,iHAAsC;CAC9C;AAED,qBAAa,GAAG;IACf,IAAI,uBAAqB;IACzB,IAAI,yHAA0C;CAC9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/relations.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/relations.ts"],"names":[],"mappings":";;;AAAA,oEAA4F;AAE5F,MAAa,OAAO;IAApB;QACC,UAAK,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;QAC1B,aAAQ,GAAG,oCAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAC/C,SAAI,GAAG,oCAAG,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IACxC,CAAC;CAAA;AAJD,0BAIC;AAED,MAAa,QAAQ;IAArB;QACC,SAAI,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;QACzB,aAAQ,GAAG,oCAAG,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC/C,CAAC;CAAA;AAHD,4BAGC;AAED,MAAa,GAAG;IAAhB;QACC,SAAI,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;QACzB,SAAI,GAAG,oCAAG,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;CAAA;AAHD,kBAGC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unique.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/unique.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"unique.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/unique.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,GAAG,EAAwB,MAAM,8BAA8B,CAAA;AAE5F,qBACa,OAAO;IACnB,KAAK,uBAAqB;CAC1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unique.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/unique.ts"],"names":[],"mappings":";;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"unique.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/schemas/unique.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oEAA4F;AAGrF,IAAM,OAAO,GAAb,MAAM,OAAO;IAAb;QACN,UAAK,GAAG,oCAAG,CAAC,YAAY,EAAE,CAAA;IAC3B,CAAC;CAAA,CAAA;AAFY,OAAO;IADnB,oCAAG,CAAC,MAAM,CAAC,OAAO,CAAC;GACP,OAAO,CAEnB;AAFY,0BAAO"}
|
|
@@ -29,21 +29,23 @@ const basic = __importStar(require("./schemas/basic"));
|
|
|
29
29
|
const relations = __importStar(require("./schemas/relations"));
|
|
30
30
|
const unique = __importStar(require("./schemas/unique"));
|
|
31
31
|
const enum_ = __importStar(require("./schemas/enum"));
|
|
32
|
+
const acl = __importStar(require("./schemas/acl"));
|
|
32
33
|
const promises_1 = require("fs/promises");
|
|
33
34
|
const path_1 = require("path");
|
|
34
|
-
const
|
|
35
|
+
const DefinitionCodeGenerator_1 = require("../../../src/definition-generator/DefinitionCodeGenerator");
|
|
35
36
|
const tests = [
|
|
36
37
|
['basic', basic],
|
|
37
38
|
['relations', relations],
|
|
38
39
|
['unique', unique],
|
|
39
40
|
['enum', enum_],
|
|
41
|
+
['acl', acl],
|
|
40
42
|
];
|
|
41
43
|
for (const [name, def] of tests) {
|
|
42
44
|
(0, vitest_1.test)(`generate schema: ${name}`, async () => {
|
|
43
45
|
const schema = (0, schema_definition_1.createSchema)(def);
|
|
44
|
-
const generator = new
|
|
46
|
+
const generator = new DefinitionCodeGenerator_1.DefinitionCodeGenerator();
|
|
45
47
|
const content = await (0, promises_1.readFile)((0, path_1.join)(__dirname, `schemas/${name}.ts`), 'utf-8');
|
|
46
|
-
const generated = generator.generate();
|
|
48
|
+
const generated = generator.generate(schema);
|
|
47
49
|
try {
|
|
48
50
|
(0, vitest_1.expect)(generated).toBe(content);
|
|
49
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsDefinitionGenerator.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/tsDefinitionGenerator.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAA2D;AAC3D,mCAAqC;AACrC,uDAAwC;AACxC,+DAAgD;AAChD,yDAA0C;AAC1C,sDAAuC;AACvC,0CAAiD;AACjD,+BAA2B;AAC3B,
|
|
1
|
+
{"version":3,"file":"tsDefinitionGenerator.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/tsDefinitionGenerator.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAA2D;AAC3D,mCAAqC;AACrC,uDAAwC;AACxC,+DAAgD;AAChD,yDAA0C;AAC1C,sDAAuC;AACvC,mDAAoC;AACpC,0CAAiD;AACjD,+BAA2B;AAC3B,uGAAmG;AAGnG,MAAM,KAAK,GAAG;IACb,CAAC,OAAO,EAAE,KAAK,CAAC;IAChB,CAAC,WAAW,EAAE,SAAS,CAAC;IACxB,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,MAAM,EAAE,KAAK,CAAC;IACf,CAAC,KAAK,EAAE,GAAG,CAAC;CACH,CAAA;AACV,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,EAAE;IAChC,IAAA,aAAI,EAAC,oBAAoB,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,MAAM,GAAG,IAAA,gCAAY,EAAC,GAAG,CAAC,CAAA;QAChC,MAAM,SAAS,GAAG,IAAI,iDAAuB,EAAE,CAAA;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;QAC9E,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC5C,IAAI;YACH,IAAA,eAAM,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAC/B;QAAC,OAAO,CAAC,EAAE;YACX,MAAM,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,IAAI,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;YAChF,MAAM,CAAC,CAAA;SACP;IACF,CAAC,CAAC,CAAA;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whereSchema.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/unit/whereSchema.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const schema_definition_1 = require("@contember/schema-definition");
|
|
5
|
+
const where_1 = require("../../../src/type-schema/where");
|
|
6
|
+
var MyModel;
|
|
7
|
+
(function (MyModel) {
|
|
8
|
+
class Article {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.title = schema_definition_1.SchemaDefinition.stringColumn();
|
|
11
|
+
this.category = schema_definition_1.SchemaDefinition.manyHasOne(Category);
|
|
12
|
+
this.tags = schema_definition_1.SchemaDefinition.manyHasMany(Tag);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
MyModel.Article = Article;
|
|
16
|
+
class Category {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.name = schema_definition_1.SchemaDefinition.stringColumn();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
MyModel.Category = Category;
|
|
22
|
+
class Tag {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.name = schema_definition_1.SchemaDefinition.stringColumn();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
MyModel.Tag = Tag;
|
|
28
|
+
})(MyModel || (MyModel = {}));
|
|
29
|
+
const schema = (0, schema_definition_1.createSchema)(MyModel).model;
|
|
30
|
+
(0, vitest_1.describe)('where schema', () => {
|
|
31
|
+
(0, vitest_1.test)('simple scalar where', () => {
|
|
32
|
+
const where = {
|
|
33
|
+
title: { eq: 'foo' },
|
|
34
|
+
};
|
|
35
|
+
vitest_1.assert.deepStrictEqual((0, where_1.whereSchema)({ schema, entity: schema.entities.Article })(where), where);
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.test)('where with and / or /not', () => {
|
|
38
|
+
const where = {
|
|
39
|
+
and: [
|
|
40
|
+
{
|
|
41
|
+
or: [
|
|
42
|
+
{ not: { title: { eq: 'bar' } } },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
vitest_1.assert.deepStrictEqual((0, where_1.whereSchema)({ schema, entity: schema.entities.Article })(where), where);
|
|
48
|
+
});
|
|
49
|
+
(0, vitest_1.test)('where with relation', () => {
|
|
50
|
+
const where = {
|
|
51
|
+
tags: { name: { eq: 'xx' } },
|
|
52
|
+
};
|
|
53
|
+
vitest_1.assert.deepStrictEqual((0, where_1.whereSchema)({ schema, entity: schema.entities.Article })(where), where);
|
|
54
|
+
});
|
|
55
|
+
(0, vitest_1.test)('undefined field', () => {
|
|
56
|
+
const where = {
|
|
57
|
+
name: { eq: 'foo' },
|
|
58
|
+
};
|
|
59
|
+
vitest_1.assert.throw(() => (0, where_1.whereSchema)({
|
|
60
|
+
schema,
|
|
61
|
+
entity: schema.entities.Article,
|
|
62
|
+
})(where), 'value at root: extra property name found');
|
|
63
|
+
});
|
|
64
|
+
(0, vitest_1.test)('undefined field in relation', () => {
|
|
65
|
+
const where = {
|
|
66
|
+
tags: {
|
|
67
|
+
caption: { eq: 'foo' },
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
vitest_1.assert.throw(() => (0, where_1.whereSchema)({
|
|
71
|
+
schema,
|
|
72
|
+
entity: schema.entities.Article,
|
|
73
|
+
})(where), 'value at path /tags: extra property caption found');
|
|
74
|
+
});
|
|
75
|
+
(0, vitest_1.test)('invalid condition', () => {
|
|
76
|
+
const where = {
|
|
77
|
+
title: { xx: 'foo' },
|
|
78
|
+
};
|
|
79
|
+
vitest_1.assert.throw(() => (0, where_1.whereSchema)({
|
|
80
|
+
schema,
|
|
81
|
+
entity: schema.entities.Article,
|
|
82
|
+
})(where), 'value at path /title: extra property xx found');
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=whereSchema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whereSchema.test.js","sourceRoot":"","sources":["../../../../tests/cases/unit/whereSchema.test.ts"],"names":[],"mappings":"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"}
|