@contember/schema-migrations 2.0.0-alpha.39 → 2.0.0-alpha.40
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/development/src/SchemaDiffer.cjs +4 -3
- package/dist/development/src/SchemaDiffer.cjs.map +1 -1
- package/dist/development/src/SchemaDiffer.js +5 -4
- package/dist/development/src/SchemaDiffer.js.map +1 -1
- package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs +4 -1
- package/dist/development/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
- package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js +4 -1
- package/dist/development/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
- package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs +4 -1
- package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
- package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js +4 -1
- package/dist/development/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
- package/dist/production/src/SchemaDiffer.cjs +4 -3
- package/dist/production/src/SchemaDiffer.cjs.map +1 -1
- package/dist/production/src/SchemaDiffer.js +5 -4
- package/dist/production/src/SchemaDiffer.js.map +1 -1
- package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs +4 -1
- package/dist/production/src/modifications/acl/UpdateAclSchemaModification.cjs.map +1 -1
- package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js +4 -1
- package/dist/production/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
- package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs +4 -1
- package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.cjs.map +1 -1
- package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js +4 -1
- package/dist/production/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/SchemaDiffer.d.ts +4 -1
- package/dist/types/SchemaDiffer.d.ts.map +1 -1
- package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts +4 -0
- package/dist/types/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
- package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts +4 -0
- package/dist/types/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/SchemaDiffer.ts +8 -3
- package/src/modifications/acl/UpdateAclSchemaModification.ts +8 -1
- package/src/modifications/validation/UpdateValidationSchemaModification.ts +8 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/schema-migrations",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.40",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "./dist/production/index.js",
|
|
6
6
|
"typings": "./dist/types/index.d.ts",
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@contember/database": "2.0.0-alpha.
|
|
27
|
-
"@contember/database-migrations": "2.0.0-alpha.
|
|
28
|
-
"@contember/engine-common": "2.0.0-alpha.
|
|
29
|
-
"@contember/schema": "2.0.0-alpha.
|
|
30
|
-
"@contember/schema-utils": "2.0.0-alpha.
|
|
26
|
+
"@contember/database": "2.0.0-alpha.40",
|
|
27
|
+
"@contember/database-migrations": "2.0.0-alpha.40",
|
|
28
|
+
"@contember/engine-common": "2.0.0-alpha.40",
|
|
29
|
+
"@contember/schema": "2.0.0-alpha.40",
|
|
30
|
+
"@contember/schema-utils": "2.0.0-alpha.40",
|
|
31
31
|
"fast-deep-equal": "^3.1.3",
|
|
32
32
|
"rfc6902": "^5.1.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@contember/schema-definition": "2.0.0-alpha.
|
|
35
|
+
"@contember/schema-definition": "2.0.0-alpha.40"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"pg": "^8.9.0"
|
package/src/SchemaDiffer.ts
CHANGED
|
@@ -48,7 +48,12 @@ import { ConvertOneHasManyToOneHasOneRelationDiffer } from './modifications/rela
|
|
|
48
48
|
type DiffOptions = { skipRecreateValidation?: boolean; skipInitialSchemaValidation?: boolean }
|
|
49
49
|
|
|
50
50
|
export class SchemaDiffer {
|
|
51
|
-
constructor(
|
|
51
|
+
constructor(
|
|
52
|
+
private readonly schemaMigrator: SchemaMigrator,
|
|
53
|
+
private readonly options?: {
|
|
54
|
+
maxPatchSize?: number
|
|
55
|
+
},
|
|
56
|
+
) {}
|
|
52
57
|
|
|
53
58
|
diffSchemas(originalSchema: Schema, updatedSchema: Schema, {
|
|
54
59
|
skipInitialSchemaValidation = false,
|
|
@@ -99,8 +104,8 @@ export class SchemaDiffer {
|
|
|
99
104
|
new CreateUniqueConstraintDiffer(),
|
|
100
105
|
new CreateIndexDiffer(),
|
|
101
106
|
new RemoveEnumDiffer(),
|
|
102
|
-
new UpdateAclSchemaDiffer(),
|
|
103
|
-
new UpdateValidationSchemaDiffer(),
|
|
107
|
+
new UpdateAclSchemaDiffer(this.options),
|
|
108
|
+
new UpdateValidationSchemaDiffer(this.options),
|
|
104
109
|
new UpdateEntityOrderByDiffer(),
|
|
105
110
|
new UpdateTargetDiffer(),
|
|
106
111
|
new CreateTargetDiffer(),
|
|
@@ -32,12 +32,19 @@ export const updateAclSchemaModification = createModificationType({
|
|
|
32
32
|
})
|
|
33
33
|
|
|
34
34
|
export class UpdateAclSchemaDiffer implements Differ {
|
|
35
|
+
constructor(
|
|
36
|
+
private readonly options?: {
|
|
37
|
+
maxPatchSize?: number
|
|
38
|
+
},
|
|
39
|
+
) {
|
|
40
|
+
}
|
|
41
|
+
|
|
35
42
|
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
36
43
|
if (deepEqual(originalSchema.acl, updatedSchema.acl)) {
|
|
37
44
|
return []
|
|
38
45
|
}
|
|
39
46
|
const patch = createPatch(originalSchema.acl, updatedSchema.acl)
|
|
40
|
-
if (patch.length <= 100) {
|
|
47
|
+
if (patch.length <= (this.options?.maxPatchSize ?? 100)) {
|
|
41
48
|
return [patchAclSchemaModification.createModification({ patch })]
|
|
42
49
|
}
|
|
43
50
|
return [updateAclSchemaModification.createModification({ schema: updatedSchema.acl })]
|
|
@@ -33,12 +33,19 @@ export const updateValidationSchemaModification = createModificationType({
|
|
|
33
33
|
})
|
|
34
34
|
|
|
35
35
|
export class UpdateValidationSchemaDiffer implements Differ {
|
|
36
|
+
constructor(
|
|
37
|
+
private readonly options?: {
|
|
38
|
+
maxPatchSize?: number
|
|
39
|
+
},
|
|
40
|
+
) {
|
|
41
|
+
}
|
|
42
|
+
|
|
36
43
|
createDiff(originalSchema: Schema, updatedSchema: Schema) {
|
|
37
44
|
if (deepEqual(originalSchema.validation, updatedSchema.validation)) {
|
|
38
45
|
return []
|
|
39
46
|
}
|
|
40
47
|
const patch = createPatch(originalSchema.validation, updatedSchema.validation)
|
|
41
|
-
if (patch.length <=
|
|
48
|
+
if (patch.length <= (this.options?.maxPatchSize ?? 100)) {
|
|
42
49
|
return [patchValidationSchemaModification.createModification({ patch })]
|
|
43
50
|
}
|
|
44
51
|
return [updateValidationSchemaModification.createModification({ schema: updatedSchema.validation })]
|