@contember/schema-migrations 1.3.0-rc.2 → 1.3.0
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/SchemaDiffer.d.ts.map +1 -1
- package/dist/src/SchemaDiffer.js +1 -2
- package/dist/src/SchemaDiffer.js.map +1 -1
- package/dist/src/modifications/differs/{RemoveChangedViewDiffer.d.ts → RemoveViewDiffer.d.ts} +5 -2
- package/dist/src/modifications/differs/RemoveViewDiffer.d.ts.map +1 -0
- package/dist/src/modifications/differs/RemoveViewDiffer.js +48 -0
- package/dist/src/modifications/differs/RemoveViewDiffer.js.map +1 -0
- package/dist/src/modifications/differs/index.d.ts +1 -2
- package/dist/src/modifications/differs/index.d.ts.map +1 -1
- package/dist/src/modifications/differs/index.js +1 -2
- package/dist/src/modifications/differs/index.js.map +1 -1
- package/dist/src/modifications/utils/viewDependencies.js +3 -3
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js +2 -2
- package/dist/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.js.map +1 -1
- package/dist/tests/cases/integration/convertOneToManyRelation.test.js +24 -16
- package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -1
- package/dist/tests/cases/integration/createAndDropIndex.test.js +4 -4
- package/dist/tests/cases/integration/createAndDropIndex.test.js.map +1 -1
- package/dist/tests/cases/integration/createColumn.test.js +4 -4
- package/dist/tests/cases/integration/createColumn.test.js.map +1 -1
- package/dist/tests/cases/integration/createEntity.test.js +11 -9
- package/dist/tests/cases/integration/createEntity.test.js.map +1 -1
- package/dist/tests/cases/integration/createEnum.test.js +13 -9
- package/dist/tests/cases/integration/createEnum.test.js.map +1 -1
- package/dist/tests/cases/integration/createManyHasMany.test.js +11 -7
- package/dist/tests/cases/integration/createManyHasMany.test.js.map +1 -1
- package/dist/tests/cases/integration/createManyHasOne.test.js +13 -9
- package/dist/tests/cases/integration/createManyHasOne.test.js.map +1 -1
- package/dist/tests/cases/integration/createOneHasMany.test.js +10 -8
- package/dist/tests/cases/integration/createOneHasMany.test.js.map +1 -1
- package/dist/tests/cases/integration/createOneHasOne.test.js +9 -7
- package/dist/tests/cases/integration/createOneHasOne.test.js.map +1 -1
- package/dist/tests/cases/integration/createRelationInverseSide.test.js +24 -16
- package/dist/tests/cases/integration/createRelationInverseSide.test.js.map +1 -1
- package/dist/tests/cases/integration/createView.test.js +3 -3
- package/dist/tests/cases/integration/createView.test.js.map +1 -1
- package/dist/tests/cases/integration/disableOrphanRemoval.test.js +14 -10
- package/dist/tests/cases/integration/disableOrphanRemoval.test.js.map +1 -1
- package/dist/tests/cases/integration/enableOrphanRemoval.test.js +14 -10
- package/dist/tests/cases/integration/enableOrphanRemoval.test.js.map +1 -1
- package/dist/tests/cases/integration/makeColumnNotNull.test.js +10 -6
- package/dist/tests/cases/integration/makeColumnNotNull.test.js.map +1 -1
- package/dist/tests/cases/integration/makeRelationNotNull.test.js +14 -10
- package/dist/tests/cases/integration/makeRelationNotNull.test.js.map +1 -1
- package/dist/tests/cases/integration/makeRelationNullable.test.js +26 -18
- package/dist/tests/cases/integration/makeRelationNullable.test.js.map +1 -1
- package/dist/tests/cases/integration/patchAclSchema.test.js +21 -17
- package/dist/tests/cases/integration/patchAclSchema.test.js.map +1 -1
- package/dist/tests/cases/integration/removeEntity.test.js +60 -52
- package/dist/tests/cases/integration/removeEntity.test.js.map +1 -1
- package/dist/tests/cases/integration/removeEnum.test.js +13 -9
- package/dist/tests/cases/integration/removeEnum.test.js.map +1 -1
- package/dist/tests/cases/integration/removeField.test.js +71 -51
- package/dist/tests/cases/integration/removeField.test.js.map +1 -1
- package/dist/tests/cases/integration/toggleEventLog.test.js +4 -4
- package/dist/tests/cases/integration/toggleEventLog.test.js.map +1 -1
- package/dist/tests/cases/integration/toggleJunctionEventLog.test.js +4 -4
- package/dist/tests/cases/integration/toggleJunctionEventLog.test.js.map +1 -1
- package/dist/tests/cases/integration/updateColumnDefinition.test.js +18 -14
- package/dist/tests/cases/integration/updateColumnDefinition.test.js.map +1 -1
- package/dist/tests/cases/integration/updateEntityName.test.js +66 -50
- package/dist/tests/cases/integration/updateEntityName.test.js.map +1 -1
- package/dist/tests/cases/integration/updateEntityOrderBy.test.js +4 -4
- package/dist/tests/cases/integration/updateEntityOrderBy.test.js.map +1 -1
- package/dist/tests/cases/integration/updateEnum.test.js +16 -12
- package/dist/tests/cases/integration/updateEnum.test.js.map +1 -1
- package/dist/tests/cases/integration/updateFieldName.test.js +120 -96
- package/dist/tests/cases/integration/updateFieldName.test.js.map +1 -1
- package/dist/tests/cases/integration/updateRelationOnDelete.test.js +14 -10
- package/dist/tests/cases/integration/updateRelationOnDelete.test.js.map +1 -1
- package/dist/tests/cases/integration/updateRelationOrderBy.test.js +15 -11
- package/dist/tests/cases/integration/updateRelationOrderBy.test.js.map +1 -1
- package/dist/tests/cases/integration/updateView.test.js +8 -8
- package/dist/tests/cases/integration/updateView.test.js.map +1 -1
- package/dist/tests/src/tests.d.ts +7 -9
- package/dist/tests/src/tests.d.ts.map +1 -1
- package/dist/tests/src/tests.js +13 -16
- package/dist/tests/src/tests.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/SchemaDiffer.ts +2 -3
- package/src/modifications/differs/{RemoveChangedViewDiffer.ts → RemoveViewDiffer.ts} +30 -7
- package/src/modifications/differs/index.ts +1 -2
- package/src/modifications/utils/viewDependencies.ts +3 -3
- package/tests/cases/integration/convertOneHasManyToManyHasManyRelation.test.ts +3 -3
- package/tests/cases/integration/convertOneToManyRelation.test.ts +32 -24
- package/tests/cases/integration/createAndDropIndex.test.ts +5 -5
- package/tests/cases/integration/createColumn.test.ts +5 -5
- package/tests/cases/integration/createEntity.test.ts +14 -12
- package/tests/cases/integration/createEnum.test.ts +15 -11
- package/tests/cases/integration/createManyHasMany.test.ts +13 -9
- package/tests/cases/integration/createManyHasOne.test.ts +15 -11
- package/tests/cases/integration/createOneHasMany.test.ts +14 -12
- package/tests/cases/integration/createOneHasOne.test.ts +11 -9
- package/tests/cases/integration/createRelationInverseSide.test.ts +26 -18
- package/tests/cases/integration/createView.test.ts +4 -4
- package/tests/cases/integration/disableOrphanRemoval.test.ts +18 -14
- package/tests/cases/integration/enableOrphanRemoval.test.ts +18 -14
- package/tests/cases/integration/makeColumnNotNull.test.ts +10 -6
- package/tests/cases/integration/makeRelationNotNull.test.ts +18 -14
- package/tests/cases/integration/makeRelationNullable.test.ts +30 -22
- package/tests/cases/integration/patchAclSchema.test.ts +21 -17
- package/tests/cases/integration/removeEntity.test.ts +63 -55
- package/tests/cases/integration/removeEnum.test.ts +15 -11
- package/tests/cases/integration/removeField.test.ts +86 -66
- package/tests/cases/integration/toggleEventLog.test.ts +5 -5
- package/tests/cases/integration/toggleJunctionEventLog.test.ts +5 -5
- package/tests/cases/integration/updateColumnDefinition.test.ts +22 -18
- package/tests/cases/integration/updateEntityName.test.ts +67 -51
- package/tests/cases/integration/updateEntityOrderBy.test.ts +5 -5
- package/tests/cases/integration/updateEnum.test.ts +20 -16
- package/tests/cases/integration/updateFieldName.test.ts +126 -102
- package/tests/cases/integration/updateRelationOnDelete.test.ts +18 -14
- package/tests/cases/integration/updateRelationOrderBy.test.ts +23 -19
- package/tests/cases/integration/updateView.test.ts +9 -9
- package/tests/src/tests.ts +19 -29
- package/dist/src/modifications/differs/ChangeViewNonViewDiffer.d.ts +0 -6
- package/dist/src/modifications/differs/ChangeViewNonViewDiffer.d.ts.map +0 -1
- package/dist/src/modifications/differs/ChangeViewNonViewDiffer.js +0 -19
- package/dist/src/modifications/differs/ChangeViewNonViewDiffer.js.map +0 -1
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.d.ts.map +0 -1
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.js +0 -33
- package/dist/src/modifications/differs/RemoveChangedViewDiffer.js.map +0 -1
- package/src/modifications/differs/ChangeViewNonViewDiffer.ts +0 -17
|
@@ -4,25 +4,29 @@ import { Model } from '@contember/schema'
|
|
|
4
4
|
import { SQL } from '../../src/tags'
|
|
5
5
|
|
|
6
6
|
testMigrations('update relation order by', {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
r
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
7
|
+
original: {
|
|
8
|
+
model: new SchemaBuilder()
|
|
9
|
+
.entity('Menu', e =>
|
|
10
|
+
e.oneHasMany('items', r =>
|
|
11
|
+
r
|
|
12
|
+
.ownedBy('menu')
|
|
13
|
+
.target('MenuItem', e => e.column('heading').column('order', c => c.type(Model.ColumnType.Int))),
|
|
14
|
+
),
|
|
15
|
+
)
|
|
16
|
+
.buildSchema(),
|
|
17
|
+
},
|
|
18
|
+
updated: {
|
|
19
|
+
model: new SchemaBuilder()
|
|
20
|
+
.entity('Menu', e =>
|
|
21
|
+
e.oneHasMany('items', r =>
|
|
22
|
+
r
|
|
23
|
+
.ownedBy('menu')
|
|
24
|
+
.orderBy('order')
|
|
25
|
+
.target('MenuItem', e => e.column('heading').column('order', c => c.type(Model.ColumnType.Int))),
|
|
26
|
+
),
|
|
27
|
+
)
|
|
28
|
+
.buildSchema(),
|
|
29
|
+
},
|
|
26
30
|
diff: [
|
|
27
31
|
{
|
|
28
32
|
modification: 'updateRelationOrderBy',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { testMigrations } from '../../src/tests'
|
|
2
2
|
import { SQL } from '../../src/tags'
|
|
3
|
-
import { SchemaDefinition as def } from '@contember/schema-definition'
|
|
3
|
+
import { createSchema, SchemaDefinition as def } from '@contember/schema-definition'
|
|
4
4
|
|
|
5
5
|
namespace ViewEntityOriginalSchema {
|
|
6
6
|
@def.View("SELECT null as id, 'John' AS name")
|
|
@@ -38,8 +38,8 @@ namespace ViewEntityUpdatedSchema1 {
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
testMigrations('update a view 1', {
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
original: createSchema(ViewEntityOriginalSchema),
|
|
42
|
+
updated: createSchema(ViewEntityUpdatedSchema1),
|
|
43
43
|
diff: [
|
|
44
44
|
{
|
|
45
45
|
modification: 'removeEntity',
|
|
@@ -186,8 +186,8 @@ namespace ViewEntityUpdatedSchema2 {
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
testMigrations('update a view 2', {
|
|
189
|
-
|
|
190
|
-
|
|
189
|
+
original: createSchema(ViewEntityOriginalSchema),
|
|
190
|
+
updated: createSchema(ViewEntityUpdatedSchema2),
|
|
191
191
|
diff: [
|
|
192
192
|
{
|
|
193
193
|
modification: 'removeEntity',
|
|
@@ -296,8 +296,8 @@ namespace ViewEntityUpdatedSchema3 {
|
|
|
296
296
|
}
|
|
297
297
|
|
|
298
298
|
testMigrations('update a view 3', {
|
|
299
|
-
|
|
300
|
-
|
|
299
|
+
original: createSchema(ViewEntityOriginalSchema),
|
|
300
|
+
updated: createSchema(ViewEntityUpdatedSchema3),
|
|
301
301
|
diff: [
|
|
302
302
|
{
|
|
303
303
|
modification: 'removeEntity',
|
|
@@ -363,8 +363,8 @@ namespace ViewEntityUpdatedSchema4 {
|
|
|
363
363
|
}
|
|
364
364
|
|
|
365
365
|
testMigrations('update a view 4', {
|
|
366
|
-
|
|
367
|
-
|
|
366
|
+
original: createSchema(ViewEntityOriginalSchema),
|
|
367
|
+
updated: createSchema(ViewEntityUpdatedSchema4),
|
|
368
368
|
diff: [
|
|
369
369
|
{
|
|
370
370
|
modification: 'removeEntity',
|
package/tests/src/tests.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Migration, ModificationHandlerFactory, SchemaDiffer, SchemaMigrator, VERSION_LATEST } from '../../src'
|
|
2
|
-
import {
|
|
2
|
+
import { Schema } from '@contember/schema'
|
|
3
3
|
import { createMigrationBuilder } from '@contember/database-migrations'
|
|
4
4
|
import { assert, describe, it } from 'vitest'
|
|
5
5
|
import { dummySchemaDatabaseMetadata, emptySchema } from '@contember/schema-utils'
|
|
@@ -8,28 +8,22 @@ const modificationFactory = new ModificationHandlerFactory(ModificationHandlerFa
|
|
|
8
8
|
const schemaMigrator = new SchemaMigrator(modificationFactory)
|
|
9
9
|
const schemaDiffer = new SchemaDiffer(schemaMigrator)
|
|
10
10
|
|
|
11
|
-
const emptyAcl = { roles: {} }
|
|
12
|
-
|
|
13
11
|
export interface TestContext {
|
|
14
12
|
diff: Migration.Modification[]
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
originalAcl?: Acl.Schema
|
|
18
|
-
updatedAcl?: Acl.Schema
|
|
13
|
+
original: Partial<Schema>
|
|
14
|
+
updated: Partial<Schema>
|
|
19
15
|
sql: string
|
|
20
16
|
noDiff?: boolean
|
|
21
17
|
}
|
|
22
18
|
|
|
23
19
|
export function testDiffSchemas(
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
original: Partial<Schema>,
|
|
21
|
+
updated: Partial<Schema>,
|
|
26
22
|
expectedDiff: Migration.Modification[],
|
|
27
|
-
originalAcl: Acl.Schema = emptyAcl,
|
|
28
|
-
updatedAcl: Acl.Schema = emptyAcl,
|
|
29
23
|
) {
|
|
30
24
|
const actualDiff = schemaDiffer.diffSchemas(
|
|
31
|
-
{ ...emptySchema,
|
|
32
|
-
{ ...emptySchema,
|
|
25
|
+
{ ...emptySchema, ...original },
|
|
26
|
+
{ ...emptySchema, ...updated },
|
|
33
27
|
{ skipRecreateValidation: true },
|
|
34
28
|
)
|
|
35
29
|
try {
|
|
@@ -40,39 +34,35 @@ export function testDiffSchemas(
|
|
|
40
34
|
throw e
|
|
41
35
|
}
|
|
42
36
|
const schema = schemaMigrator.applyModifications(
|
|
43
|
-
{ ...emptySchema,
|
|
37
|
+
{ ...emptySchema, ...original },
|
|
44
38
|
actualDiff,
|
|
45
39
|
VERSION_LATEST,
|
|
46
40
|
)
|
|
47
41
|
assert.deepStrictEqual(schema, {
|
|
48
42
|
...emptySchema,
|
|
49
|
-
|
|
50
|
-
acl: updatedAcl,
|
|
43
|
+
...updated,
|
|
51
44
|
})
|
|
52
45
|
}
|
|
53
46
|
|
|
54
47
|
export function testApplyDiff(
|
|
55
|
-
|
|
48
|
+
original: Partial<Schema>,
|
|
49
|
+
expected: Partial<Schema>,
|
|
56
50
|
diff: Migration.Modification[],
|
|
57
|
-
expectedModel: Model.Schema,
|
|
58
|
-
originalAcl: Acl.Schema = emptyAcl,
|
|
59
|
-
expectedAcl: Acl.Schema = emptyAcl,
|
|
60
51
|
) {
|
|
61
52
|
const actualSchema = schemaMigrator.applyModifications(
|
|
62
|
-
{ ...emptySchema,
|
|
53
|
+
{ ...emptySchema, ...original },
|
|
63
54
|
diff,
|
|
64
55
|
VERSION_LATEST,
|
|
65
56
|
)
|
|
66
57
|
|
|
67
58
|
assert.deepStrictEqual(actualSchema, {
|
|
68
59
|
...emptySchema,
|
|
69
|
-
|
|
70
|
-
acl: expectedAcl,
|
|
60
|
+
...expected,
|
|
71
61
|
})
|
|
72
62
|
}
|
|
73
63
|
|
|
74
|
-
export function testGenerateSql(
|
|
75
|
-
let schema = { ...emptySchema,
|
|
64
|
+
export function testGenerateSql(original: Partial<Schema>, diff: Migration.Modification[], expectedSql: string) {
|
|
65
|
+
let schema = { ...emptySchema, ...original }
|
|
76
66
|
const builder = createMigrationBuilder()
|
|
77
67
|
for (let { modification, ...data } of diff) {
|
|
78
68
|
const modificationHandler = modificationFactory.create(modification, data, schema, {
|
|
@@ -89,19 +79,19 @@ export function testGenerateSql(originalSchema: Model.Schema, diff: Migration.Mo
|
|
|
89
79
|
assert.equal(actual, expectedSql)
|
|
90
80
|
}
|
|
91
81
|
|
|
92
|
-
export function testMigrations(title: string, {
|
|
82
|
+
export function testMigrations(title: string, { original, updated, diff, noDiff, sql }: TestContext) {
|
|
93
83
|
describe(title, () => {
|
|
94
84
|
it('diff schemas', () => {
|
|
95
85
|
if (noDiff) {
|
|
96
86
|
return
|
|
97
87
|
}
|
|
98
|
-
testDiffSchemas(
|
|
88
|
+
testDiffSchemas(original, updated, diff)
|
|
99
89
|
})
|
|
100
90
|
it('apply diff', () => {
|
|
101
|
-
testApplyDiff(
|
|
91
|
+
testApplyDiff(original, updated, diff)
|
|
102
92
|
})
|
|
103
93
|
it('generate sql', () => {
|
|
104
|
-
testGenerateSql(
|
|
94
|
+
testGenerateSql(original, diff, sql)
|
|
105
95
|
})
|
|
106
96
|
})
|
|
107
97
|
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Differ } from '../ModificationHandler';
|
|
2
|
-
import { Schema } from '@contember/schema';
|
|
3
|
-
export declare class ChangeViewNonViewDiffer implements Differ {
|
|
4
|
-
createDiff(originalSchema: Schema, updatedSchema: Schema): import("../../Migration").Migration.Modification<import("../entities").RemoveEntityModificationData>[];
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=ChangeViewNonViewDiffer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeViewNonViewDiffer.d.ts","sourceRoot":"","sources":["../../../../src/modifications/differs/ChangeViewNonViewDiffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,qBAAa,uBAAwB,YAAW,MAAM;IACrD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CAWxD"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ChangeViewNonViewDiffer = void 0;
|
|
4
|
-
const entities_1 = require("../entities");
|
|
5
|
-
class ChangeViewNonViewDiffer {
|
|
6
|
-
createDiff(originalSchema, updatedSchema) {
|
|
7
|
-
return Object.values(updatedSchema.model.entities)
|
|
8
|
-
.filter(it => {
|
|
9
|
-
const origEntity = originalSchema.model.entities[it.name];
|
|
10
|
-
if (!origEntity) {
|
|
11
|
-
return false;
|
|
12
|
-
}
|
|
13
|
-
return !!origEntity.view !== !!it.view;
|
|
14
|
-
})
|
|
15
|
-
.map(it => entities_1.removeEntityModification.createModification({ entityName: it.name }));
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.ChangeViewNonViewDiffer = ChangeViewNonViewDiffer;
|
|
19
|
-
//# sourceMappingURL=ChangeViewNonViewDiffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeViewNonViewDiffer.js","sourceRoot":"","sources":["../../../../src/modifications/differs/ChangeViewNonViewDiffer.ts"],"names":[],"mappings":";;;AAEA,0CAAsD;AAEtD,MAAa,uBAAuB;IACnC,UAAU,CAAC,cAAsB,EAAE,aAAqB;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;aAChD,MAAM,CAAC,EAAE,CAAC,EAAE;YACZ,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACzD,IAAI,CAAC,UAAU,EAAE;gBAChB,OAAO,KAAK,CAAA;aACZ;YACD,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAA;QACvC,CAAC,CAAC;aACD,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAwB,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;CACD;AAZD,0DAYC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RemoveChangedViewDiffer.d.ts","sourceRoot":"","sources":["../../../../src/modifications/differs/RemoveChangedViewDiffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C,qBAAa,uBAAwB,YAAW,MAAM;;IAIrD,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;CAkBxD"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RemoveChangedViewDiffer = void 0;
|
|
7
|
-
const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
|
|
8
|
-
const viewDependencies_1 = require("../utils/viewDependencies");
|
|
9
|
-
const columns_1 = require("../columns");
|
|
10
|
-
class RemoveChangedViewDiffer {
|
|
11
|
-
constructor() {
|
|
12
|
-
}
|
|
13
|
-
createDiff(originalSchema, updatedSchema) {
|
|
14
|
-
const changedViews = Object.values(originalSchema.model.entities)
|
|
15
|
-
.filter(it => {
|
|
16
|
-
const updatedEntity = updatedSchema.model.entities[it.name];
|
|
17
|
-
if (!updatedEntity || !it.view || !updatedEntity.view) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
return !(0, fast_deep_equal_1.default)(updatedEntity.view, it.view);
|
|
21
|
-
});
|
|
22
|
-
const columnDiffer = new columns_1.UpdateColumnDefinitionDiffer();
|
|
23
|
-
const columnChanges = columnDiffer.createDiff(originalSchema, updatedSchema);
|
|
24
|
-
if (changedViews.length === 0 && columnChanges.length === 0) {
|
|
25
|
-
return [];
|
|
26
|
-
}
|
|
27
|
-
const changedColumnsEntities = Array.from(new Set(columnChanges.map(it => it.entityName)))
|
|
28
|
-
.map(it => originalSchema.model.entities[it]);
|
|
29
|
-
return (0, viewDependencies_1.cascadeRemoveDependantViews)(originalSchema.model, [...changedViews, ...changedColumnsEntities]);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.RemoveChangedViewDiffer = RemoveChangedViewDiffer;
|
|
33
|
-
//# sourceMappingURL=RemoveChangedViewDiffer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RemoveChangedViewDiffer.js","sourceRoot":"","sources":["../../../../src/modifications/differs/RemoveChangedViewDiffer.ts"],"names":[],"mappings":";;;;;;AAEA,sEAAuC;AACvC,gEAAuE;AACvE,wCAAyD;AAEzD,MAAa,uBAAuB;IACnC;IACA,CAAC;IAED,UAAU,CAAC,cAAsB,EAAE,aAAqB;QACvD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC/D,MAAM,CAAC,EAAE,CAAC,EAAE;YACZ,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YAC3D,IAAI,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;gBACtD,OAAO,KAAK,CAAA;aACZ;YACD,OAAO,CAAC,IAAA,yBAAS,EAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;QACH,MAAM,YAAY,GAAG,IAAI,sCAA4B,EAAE,CAAA;QACvD,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;QAC5E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5D,OAAO,EAAE,CAAA;SACT;QACD,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;aACxF,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,OAAO,IAAA,8CAA2B,EAAC,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAA;IACvG,CAAC;CACD;AAtBD,0DAsBC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Differ } from '../ModificationHandler'
|
|
2
|
-
import { Schema } from '@contember/schema'
|
|
3
|
-
import { removeEntityModification } from '../entities'
|
|
4
|
-
|
|
5
|
-
export class ChangeViewNonViewDiffer implements Differ {
|
|
6
|
-
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
7
|
-
return Object.values(updatedSchema.model.entities)
|
|
8
|
-
.filter(it => {
|
|
9
|
-
const origEntity = originalSchema.model.entities[it.name]
|
|
10
|
-
if (!origEntity) {
|
|
11
|
-
return false
|
|
12
|
-
}
|
|
13
|
-
return !!origEntity.view !== !!it.view
|
|
14
|
-
})
|
|
15
|
-
.map(it => removeEntityModification.createModification({ entityName: it.name }))
|
|
16
|
-
}
|
|
17
|
-
}
|