@contember/schema-migrations 2.1.0-alpha.25 → 2.1.0-alpha.26
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 +1 -1
- package/dist/development/src/SchemaDiffer.cjs.map +1 -1
- package/dist/development/src/SchemaDiffer.js +1 -1
- package/dist/development/src/SchemaDiffer.js.map +1 -1
- package/dist/development/src/modifications/ModificationHandlerFactory.cjs +2 -0
- package/dist/development/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
- package/dist/development/src/modifications/ModificationHandlerFactory.js +2 -0
- package/dist/development/src/modifications/ModificationHandlerFactory.js.map +1 -1
- package/dist/development/src/modifications/actions/PatchTriggerModification.cjs +44 -0
- package/dist/development/src/modifications/actions/PatchTriggerModification.cjs.map +1 -0
- package/dist/development/src/modifications/actions/PatchTriggerModification.js +44 -0
- package/dist/development/src/modifications/actions/PatchTriggerModification.js.map +1 -0
- package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs +16 -1
- package/dist/development/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
- package/dist/development/src/modifications/actions/UpdateTriggerModification.js +16 -1
- package/dist/development/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
- package/dist/production/src/SchemaDiffer.cjs +1 -1
- package/dist/production/src/SchemaDiffer.cjs.map +1 -1
- package/dist/production/src/SchemaDiffer.js +1 -1
- package/dist/production/src/SchemaDiffer.js.map +1 -1
- package/dist/production/src/modifications/ModificationHandlerFactory.cjs +2 -0
- package/dist/production/src/modifications/ModificationHandlerFactory.cjs.map +1 -1
- package/dist/production/src/modifications/ModificationHandlerFactory.js +2 -0
- package/dist/production/src/modifications/ModificationHandlerFactory.js.map +1 -1
- package/dist/production/src/modifications/actions/PatchTriggerModification.cjs +44 -0
- package/dist/production/src/modifications/actions/PatchTriggerModification.cjs.map +1 -0
- package/dist/production/src/modifications/actions/PatchTriggerModification.js +44 -0
- package/dist/production/src/modifications/actions/PatchTriggerModification.js.map +1 -0
- package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs +16 -1
- package/dist/production/src/modifications/actions/UpdateTriggerModification.cjs.map +1 -1
- package/dist/production/src/modifications/actions/UpdateTriggerModification.js +16 -1
- package/dist/production/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
- package/dist/tests/cases/integration/patchTrigger.test.d.ts +2 -0
- package/dist/tests/cases/integration/patchTrigger.test.d.ts.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/dist/types/modifications/ModificationHandlerFactory.d.ts.map +1 -1
- package/dist/types/modifications/actions/PatchTriggerModification.d.ts +18 -0
- package/dist/types/modifications/actions/PatchTriggerModification.d.ts.map +1 -0
- package/dist/types/modifications/actions/UpdateTriggerModification.d.ts +5 -1
- package/dist/types/modifications/actions/UpdateTriggerModification.d.ts.map +1 -1
- package/dist/types/modifications/actions/index.d.ts +1 -0
- package/dist/types/modifications/actions/index.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/SchemaDiffer.ts +1 -1
- package/src/modifications/ModificationHandlerFactory.ts +2 -1
- package/src/modifications/actions/PatchTriggerModification.ts +51 -0
- package/src/modifications/actions/UpdateTriggerModification.ts +22 -1
- package/src/modifications/actions/index.ts +1 -0
- package/tests/cases/integration/patchTrigger.test.ts +184 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModificationHandlerFactory.cjs","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandlerFactory.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler'\nimport { patchAclSchemaModification, updateAclSchemaModification } from './acl'\nimport { createColumnModification, updateColumnDefinitionModification, updateColumnNameModification } from './columns'\nimport { createUniqueConstraintModification, removeUniqueConstraintModification } from './constraints'\nimport {\n\tcreateEntityModification,\n\tcreateViewModification,\n\tremoveEntityModification,\n\ttoggleEventLogModification,\n\tupdateEntityNameModification,\n\tupdateEntityTableNameModification,\n} from './entities'\nimport { updateViewModification } from './entities/UpdateViewModification'\nimport { createEnumModification, removeEnumModification, updateEnumModification } from './enums'\nimport { removeFieldModification, updateFieldNameModification } from './fields'\nimport {\n\tconvertOneHasManyToManyHasManyRelationModification,\n\tconvertOneToManyRelationModification,\n\tcreateRelationInverseSideModification,\n\tcreateRelationModification,\n\tdisableOrphanRemovalModification,\n\tenableOrphanRemovalModification,\n\tmakeRelationNotNullModification,\n\tmakeRelationNullableModification,\n\ttoggleJunctionEventLogModification,\n\tupdateRelationOnDeleteModification,\n\tupdateRelationOrderByModification,\n} from './relations'\nimport { patchValidationSchemaModification, updateValidationSchemaModification } from './validation'\nimport { createIndexModification, removeIndexModification } from './indexes'\nimport { updateSettingsModification } from './settings'\nimport { createTriggerModification, removeTriggerModification, updateTriggerModification } from './actions'\nimport { createTargetModification } from './actions/CreateTargetModification'\nimport { removeTargetModification } from './actions/RemoveTargetModification'\nimport { updateTargetModification } from './actions/UpdateTargetModification'\nimport { updateEntityOrderByModification } from './entities/UpdateEntityOrderByModification'\nimport { removeIndexNamesModification } from './upgrade/RemoveIndexNamesModification'\nimport { convertOneHasManyToOneHasOneRelationModification } from './relations/ConvertOneHasManyToOneHasOneRelationModification'\n\n\nclass ModificationHandlerFactory {\n\tconstructor(private readonly map: Record<string, ModificationType<string, any>>) {}\n\n\tpublic create<D>(name: string, data: D, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<D> {\n\t\tif (!this.map[name]) {\n\t\t\tthrow new Error(`Undefined modification handler for ${name}`)\n\t\t}\n\t\treturn this.map[name].createHandler(data, schema, options)\n\t}\n}\n\nnamespace ModificationHandlerFactory {\n\ttype HandlerMap<D> = { [modificationName: string]: ModificationType<string, D> }\n\n\tconst handlers = [\n\t\tremoveIndexNamesModification,\n\t\tupdateSettingsModification,\n\t\tupdateAclSchemaModification,\n\t\tpatchAclSchemaModification,\n\t\tcreateColumnModification,\n\t\tupdateColumnDefinitionModification,\n\t\tupdateColumnNameModification,\n\t\tcreateUniqueConstraintModification,\n\t\tremoveUniqueConstraintModification,\n\t\tcreateIndexModification,\n\t\tremoveIndexModification,\n\t\tcreateEntityModification,\n\t\tremoveEntityModification,\n\t\tupdateEntityNameModification,\n\t\tupdateEntityTableNameModification,\n\t\tupdateViewModification,\n\t\tcreateViewModification,\n\t\tcreateEnumModification,\n\t\tremoveEnumModification,\n\t\tupdateEnumModification,\n\t\tremoveFieldModification,\n\t\tupdateFieldNameModification,\n\t\tcreateRelationInverseSideModification,\n\t\tcreateRelationModification,\n\t\tupdateRelationOnDeleteModification,\n\t\tupdateRelationOrderByModification,\n\t\tmakeRelationNotNullModification,\n\t\tmakeRelationNullableModification,\n\t\tenableOrphanRemovalModification,\n\t\tdisableOrphanRemovalModification,\n\t\tupdateValidationSchemaModification,\n\t\tpatchValidationSchemaModification,\n\t\tconvertOneToManyRelationModification,\n\t\tconvertOneHasManyToOneHasOneRelationModification,\n\t\ttoggleEventLogModification,\n\t\ttoggleJunctionEventLogModification,\n\t\tconvertOneHasManyToManyHasManyRelationModification,\n\t\tupdateEntityOrderByModification,\n\t\tcreateTriggerModification,\n\t\tupdateTriggerModification,\n\t\tremoveTriggerModification,\n\t\tcreateTargetModification,\n\t\tupdateTargetModification,\n\t\tremoveTargetModification,\n\t]\n\n\texport const defaultFactoryMap: HandlerMap<any> = Object.fromEntries(handlers.map(it => [it.id, it]))\n}\n\nexport { ModificationHandlerFactory }\n"],"names":["ModificationHandlerFactory","removeIndexNamesModification","updateSettingsModification","updateAclSchemaModification","patchAclSchemaModification","createColumnModification","updateColumnDefinitionModification","updateColumnNameModification","createUniqueConstraintModification","removeUniqueConstraintModification","createIndexModification","removeIndexModification","createEntityModification","removeEntityModification","updateEntityNameModification","updateEntityTableNameModification","updateViewModification","createViewModification","createEnumModification","removeEnumModification","updateEnumModification","removeFieldModification","updateFieldNameModification","createRelationInverseSideModification","createRelationModification","updateRelationOnDeleteModification","updateRelationOrderByModification","makeRelationNotNullModification","makeRelationNullableModification","enableOrphanRemovalModification","disableOrphanRemovalModification","updateValidationSchemaModification","patchValidationSchemaModification","convertOneToManyRelationModification","convertOneHasManyToOneHasOneRelationModification","toggleEventLogModification","toggleJunctionEventLogModification","convertOneHasManyToManyHasManyRelationModification","updateEntityOrderByModification","createTriggerModification","updateTriggerModification","removeTriggerModification","createTargetModification","updateTargetModification","removeTargetModification"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModificationHandlerFactory.cjs","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandlerFactory.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler'\nimport { patchAclSchemaModification, updateAclSchemaModification } from './acl'\nimport { createColumnModification, updateColumnDefinitionModification, updateColumnNameModification } from './columns'\nimport { createUniqueConstraintModification, removeUniqueConstraintModification } from './constraints'\nimport {\n\tcreateEntityModification,\n\tcreateViewModification,\n\tremoveEntityModification,\n\ttoggleEventLogModification,\n\tupdateEntityNameModification,\n\tupdateEntityTableNameModification,\n} from './entities'\nimport { updateViewModification } from './entities/UpdateViewModification'\nimport { createEnumModification, removeEnumModification, updateEnumModification } from './enums'\nimport { removeFieldModification, updateFieldNameModification } from './fields'\nimport {\n\tconvertOneHasManyToManyHasManyRelationModification,\n\tconvertOneToManyRelationModification,\n\tcreateRelationInverseSideModification,\n\tcreateRelationModification,\n\tdisableOrphanRemovalModification,\n\tenableOrphanRemovalModification,\n\tmakeRelationNotNullModification,\n\tmakeRelationNullableModification,\n\ttoggleJunctionEventLogModification,\n\tupdateRelationOnDeleteModification,\n\tupdateRelationOrderByModification,\n} from './relations'\nimport { patchValidationSchemaModification, updateValidationSchemaModification } from './validation'\nimport { createIndexModification, removeIndexModification } from './indexes'\nimport { updateSettingsModification } from './settings'\nimport { createTriggerModification, patchTriggerModification, removeTriggerModification, updateTriggerModification } from './actions'\nimport { createTargetModification } from './actions/CreateTargetModification'\nimport { removeTargetModification } from './actions/RemoveTargetModification'\nimport { updateTargetModification } from './actions/UpdateTargetModification'\nimport { updateEntityOrderByModification } from './entities/UpdateEntityOrderByModification'\nimport { removeIndexNamesModification } from './upgrade/RemoveIndexNamesModification'\nimport { convertOneHasManyToOneHasOneRelationModification } from './relations/ConvertOneHasManyToOneHasOneRelationModification'\n\n\nclass ModificationHandlerFactory {\n\tconstructor(private readonly map: Record<string, ModificationType<string, any>>) {}\n\n\tpublic create<D>(name: string, data: D, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<D> {\n\t\tif (!this.map[name]) {\n\t\t\tthrow new Error(`Undefined modification handler for ${name}`)\n\t\t}\n\t\treturn this.map[name].createHandler(data, schema, options)\n\t}\n}\n\nnamespace ModificationHandlerFactory {\n\ttype HandlerMap<D> = { [modificationName: string]: ModificationType<string, D> }\n\n\tconst handlers = [\n\t\tremoveIndexNamesModification,\n\t\tupdateSettingsModification,\n\t\tupdateAclSchemaModification,\n\t\tpatchAclSchemaModification,\n\t\tcreateColumnModification,\n\t\tupdateColumnDefinitionModification,\n\t\tupdateColumnNameModification,\n\t\tcreateUniqueConstraintModification,\n\t\tremoveUniqueConstraintModification,\n\t\tcreateIndexModification,\n\t\tremoveIndexModification,\n\t\tcreateEntityModification,\n\t\tremoveEntityModification,\n\t\tupdateEntityNameModification,\n\t\tupdateEntityTableNameModification,\n\t\tupdateViewModification,\n\t\tcreateViewModification,\n\t\tcreateEnumModification,\n\t\tremoveEnumModification,\n\t\tupdateEnumModification,\n\t\tremoveFieldModification,\n\t\tupdateFieldNameModification,\n\t\tcreateRelationInverseSideModification,\n\t\tcreateRelationModification,\n\t\tupdateRelationOnDeleteModification,\n\t\tupdateRelationOrderByModification,\n\t\tmakeRelationNotNullModification,\n\t\tmakeRelationNullableModification,\n\t\tenableOrphanRemovalModification,\n\t\tdisableOrphanRemovalModification,\n\t\tupdateValidationSchemaModification,\n\t\tpatchValidationSchemaModification,\n\t\tconvertOneToManyRelationModification,\n\t\tconvertOneHasManyToOneHasOneRelationModification,\n\t\ttoggleEventLogModification,\n\t\ttoggleJunctionEventLogModification,\n\t\tconvertOneHasManyToManyHasManyRelationModification,\n\t\tupdateEntityOrderByModification,\n\t\tcreateTriggerModification,\n\t\tupdateTriggerModification,\n\t\tpatchTriggerModification,\n\t\tremoveTriggerModification,\n\t\tcreateTargetModification,\n\t\tupdateTargetModification,\n\t\tremoveTargetModification,\n\t]\n\n\texport const defaultFactoryMap: HandlerMap<any> = Object.fromEntries(handlers.map(it => [it.id, it]))\n}\n\nexport { ModificationHandlerFactory }\n"],"names":["ModificationHandlerFactory","removeIndexNamesModification","updateSettingsModification","updateAclSchemaModification","patchAclSchemaModification","createColumnModification","updateColumnDefinitionModification","updateColumnNameModification","createUniqueConstraintModification","removeUniqueConstraintModification","createIndexModification","removeIndexModification","createEntityModification","removeEntityModification","updateEntityNameModification","updateEntityTableNameModification","updateViewModification","createViewModification","createEnumModification","removeEnumModification","updateEnumModification","removeFieldModification","updateFieldNameModification","createRelationInverseSideModification","createRelationModification","updateRelationOnDeleteModification","updateRelationOrderByModification","makeRelationNotNullModification","makeRelationNullableModification","enableOrphanRemovalModification","disableOrphanRemovalModification","updateValidationSchemaModification","patchValidationSchemaModification","convertOneToManyRelationModification","convertOneHasManyToOneHasOneRelationModification","toggleEventLogModification","toggleJunctionEventLogModification","convertOneHasManyToManyHasManyRelationModification","updateEntityOrderByModification","createTriggerModification","updateTriggerModification","patchTriggerModification","removeTriggerModification","createTargetModification","updateTargetModification","removeTargetModification"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAM,2BAA2B;AAAA,EAChC,YAA6B,KAAoD;AAApD,SAAA,MAAA;AAAA,EAAA;AAAA,EAEtB,OAAU,MAAc,MAAS,QAAgB,SAA6D;AACpH,QAAI,CAAC,KAAK,IAAI,IAAI,GAAG;AACpB,YAAM,IAAI,MAAM,sCAAsC,IAAI,EAAE;AAAA,IAAA;AAE7D,WAAO,KAAK,IAAI,IAAI,EAAE,cAAc,MAAM,QAAQ,OAAO;AAAA,EAAA;AAE3D;AAAA,CAEA,CAAUA,gCAAV;AAGC,QAAM,WAAW;AAAA,IAChBC,6BAAA;AAAA,IACAC,2BAAA;AAAA,IACAC,4BAAA;AAAA,IACAC,2BAAA;AAAA,IACAC,yBAAA;AAAA,IACAC,mCAAA;AAAA,IACAC,6BAAA;AAAA,IACAC,mCAAA;AAAA,IACAC,mCAAA;AAAA,IACAC,wBAAA;AAAA,IACAC,wBAAA;AAAA,IACAC,yBAAA;AAAA,IACAC,yBAAA;AAAA,IACAC,6BAAA;AAAA,IACAC,kCAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,wBAAA;AAAA,IACAC,4BAAA;AAAA,IACAC,sCAAA;AAAA,IACAC,2BAAA;AAAA,IACAC,mCAAA;AAAA,IACAC,kCAAA;AAAA,IACAC,gCAAA;AAAA,IACAC,iCAAA;AAAA,IACAC,gCAAA;AAAA,IACAC,iCAAA;AAAA,IACAC,mCAAA;AAAA,IACAC,kCAAA;AAAA,IACAC,qCAAA;AAAA,IACAC,iDAAA;AAAA,IACAC,2BAAA;AAAA,IACAC,mCAAA;AAAA,IACAC,mDAAA;AAAA,IACAC,gCAAA;AAAA,IACAC,0BAAA;AAAA,IACAC,0BAAA;AAAA,IACAC,yBAAA;AAAA,IACAC,0BAAA;AAAA,IACAC,yBAAA;AAAA,IACAC,yBAAA;AAAA,IACAC,yBAAAA;AAAAA,EACD;AAEa7C,8BAAA,oBAAqC,OAAO,YAAY,SAAS,IAAI,CAAM,OAAA,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAAA,GAnD3F,+BAAA,6BAAA,CAAA,EAAA;;"}
|
|
@@ -38,6 +38,7 @@ import { updateSettingsModification } from "./settings/UpdateSettingsModificatio
|
|
|
38
38
|
import { createTriggerModification } from "./actions/CreateTriggerModification.js";
|
|
39
39
|
import { removeTriggerModification } from "./actions/RemoveTriggerModification.js";
|
|
40
40
|
import { updateTriggerModification } from "./actions/UpdateTriggerModification.js";
|
|
41
|
+
import { patchTriggerModification } from "./actions/PatchTriggerModification.js";
|
|
41
42
|
import { createTargetModification } from "./actions/CreateTargetModification.js";
|
|
42
43
|
import { removeTargetModification } from "./actions/RemoveTargetModification.js";
|
|
43
44
|
import { updateTargetModification } from "./actions/UpdateTargetModification.js";
|
|
@@ -96,6 +97,7 @@ class ModificationHandlerFactory {
|
|
|
96
97
|
updateEntityOrderByModification,
|
|
97
98
|
createTriggerModification,
|
|
98
99
|
updateTriggerModification,
|
|
100
|
+
patchTriggerModification,
|
|
99
101
|
removeTriggerModification,
|
|
100
102
|
createTargetModification,
|
|
101
103
|
updateTargetModification,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModificationHandlerFactory.js","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandlerFactory.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler'\nimport { patchAclSchemaModification, updateAclSchemaModification } from './acl'\nimport { createColumnModification, updateColumnDefinitionModification, updateColumnNameModification } from './columns'\nimport { createUniqueConstraintModification, removeUniqueConstraintModification } from './constraints'\nimport {\n\tcreateEntityModification,\n\tcreateViewModification,\n\tremoveEntityModification,\n\ttoggleEventLogModification,\n\tupdateEntityNameModification,\n\tupdateEntityTableNameModification,\n} from './entities'\nimport { updateViewModification } from './entities/UpdateViewModification'\nimport { createEnumModification, removeEnumModification, updateEnumModification } from './enums'\nimport { removeFieldModification, updateFieldNameModification } from './fields'\nimport {\n\tconvertOneHasManyToManyHasManyRelationModification,\n\tconvertOneToManyRelationModification,\n\tcreateRelationInverseSideModification,\n\tcreateRelationModification,\n\tdisableOrphanRemovalModification,\n\tenableOrphanRemovalModification,\n\tmakeRelationNotNullModification,\n\tmakeRelationNullableModification,\n\ttoggleJunctionEventLogModification,\n\tupdateRelationOnDeleteModification,\n\tupdateRelationOrderByModification,\n} from './relations'\nimport { patchValidationSchemaModification, updateValidationSchemaModification } from './validation'\nimport { createIndexModification, removeIndexModification } from './indexes'\nimport { updateSettingsModification } from './settings'\nimport { createTriggerModification, removeTriggerModification, updateTriggerModification } from './actions'\nimport { createTargetModification } from './actions/CreateTargetModification'\nimport { removeTargetModification } from './actions/RemoveTargetModification'\nimport { updateTargetModification } from './actions/UpdateTargetModification'\nimport { updateEntityOrderByModification } from './entities/UpdateEntityOrderByModification'\nimport { removeIndexNamesModification } from './upgrade/RemoveIndexNamesModification'\nimport { convertOneHasManyToOneHasOneRelationModification } from './relations/ConvertOneHasManyToOneHasOneRelationModification'\n\n\nclass ModificationHandlerFactory {\n\tconstructor(private readonly map: Record<string, ModificationType<string, any>>) {}\n\n\tpublic create<D>(name: string, data: D, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<D> {\n\t\tif (!this.map[name]) {\n\t\t\tthrow new Error(`Undefined modification handler for ${name}`)\n\t\t}\n\t\treturn this.map[name].createHandler(data, schema, options)\n\t}\n}\n\nnamespace ModificationHandlerFactory {\n\ttype HandlerMap<D> = { [modificationName: string]: ModificationType<string, D> }\n\n\tconst handlers = [\n\t\tremoveIndexNamesModification,\n\t\tupdateSettingsModification,\n\t\tupdateAclSchemaModification,\n\t\tpatchAclSchemaModification,\n\t\tcreateColumnModification,\n\t\tupdateColumnDefinitionModification,\n\t\tupdateColumnNameModification,\n\t\tcreateUniqueConstraintModification,\n\t\tremoveUniqueConstraintModification,\n\t\tcreateIndexModification,\n\t\tremoveIndexModification,\n\t\tcreateEntityModification,\n\t\tremoveEntityModification,\n\t\tupdateEntityNameModification,\n\t\tupdateEntityTableNameModification,\n\t\tupdateViewModification,\n\t\tcreateViewModification,\n\t\tcreateEnumModification,\n\t\tremoveEnumModification,\n\t\tupdateEnumModification,\n\t\tremoveFieldModification,\n\t\tupdateFieldNameModification,\n\t\tcreateRelationInverseSideModification,\n\t\tcreateRelationModification,\n\t\tupdateRelationOnDeleteModification,\n\t\tupdateRelationOrderByModification,\n\t\tmakeRelationNotNullModification,\n\t\tmakeRelationNullableModification,\n\t\tenableOrphanRemovalModification,\n\t\tdisableOrphanRemovalModification,\n\t\tupdateValidationSchemaModification,\n\t\tpatchValidationSchemaModification,\n\t\tconvertOneToManyRelationModification,\n\t\tconvertOneHasManyToOneHasOneRelationModification,\n\t\ttoggleEventLogModification,\n\t\ttoggleJunctionEventLogModification,\n\t\tconvertOneHasManyToManyHasManyRelationModification,\n\t\tupdateEntityOrderByModification,\n\t\tcreateTriggerModification,\n\t\tupdateTriggerModification,\n\t\tremoveTriggerModification,\n\t\tcreateTargetModification,\n\t\tupdateTargetModification,\n\t\tremoveTargetModification,\n\t]\n\n\texport const defaultFactoryMap: HandlerMap<any> = Object.fromEntries(handlers.map(it => [it.id, it]))\n}\n\nexport { ModificationHandlerFactory }\n"],"names":["ModificationHandlerFactory"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ModificationHandlerFactory.js","sources":["../../../../../packages/schema-migrations/src/modifications/ModificationHandlerFactory.ts"],"sourcesContent":["import { Schema } from '@contember/schema'\nimport { ModificationHandler, ModificationHandlerOptions, ModificationType } from './ModificationHandler'\nimport { patchAclSchemaModification, updateAclSchemaModification } from './acl'\nimport { createColumnModification, updateColumnDefinitionModification, updateColumnNameModification } from './columns'\nimport { createUniqueConstraintModification, removeUniqueConstraintModification } from './constraints'\nimport {\n\tcreateEntityModification,\n\tcreateViewModification,\n\tremoveEntityModification,\n\ttoggleEventLogModification,\n\tupdateEntityNameModification,\n\tupdateEntityTableNameModification,\n} from './entities'\nimport { updateViewModification } from './entities/UpdateViewModification'\nimport { createEnumModification, removeEnumModification, updateEnumModification } from './enums'\nimport { removeFieldModification, updateFieldNameModification } from './fields'\nimport {\n\tconvertOneHasManyToManyHasManyRelationModification,\n\tconvertOneToManyRelationModification,\n\tcreateRelationInverseSideModification,\n\tcreateRelationModification,\n\tdisableOrphanRemovalModification,\n\tenableOrphanRemovalModification,\n\tmakeRelationNotNullModification,\n\tmakeRelationNullableModification,\n\ttoggleJunctionEventLogModification,\n\tupdateRelationOnDeleteModification,\n\tupdateRelationOrderByModification,\n} from './relations'\nimport { patchValidationSchemaModification, updateValidationSchemaModification } from './validation'\nimport { createIndexModification, removeIndexModification } from './indexes'\nimport { updateSettingsModification } from './settings'\nimport { createTriggerModification, patchTriggerModification, removeTriggerModification, updateTriggerModification } from './actions'\nimport { createTargetModification } from './actions/CreateTargetModification'\nimport { removeTargetModification } from './actions/RemoveTargetModification'\nimport { updateTargetModification } from './actions/UpdateTargetModification'\nimport { updateEntityOrderByModification } from './entities/UpdateEntityOrderByModification'\nimport { removeIndexNamesModification } from './upgrade/RemoveIndexNamesModification'\nimport { convertOneHasManyToOneHasOneRelationModification } from './relations/ConvertOneHasManyToOneHasOneRelationModification'\n\n\nclass ModificationHandlerFactory {\n\tconstructor(private readonly map: Record<string, ModificationType<string, any>>) {}\n\n\tpublic create<D>(name: string, data: D, schema: Schema, options: ModificationHandlerOptions): ModificationHandler<D> {\n\t\tif (!this.map[name]) {\n\t\t\tthrow new Error(`Undefined modification handler for ${name}`)\n\t\t}\n\t\treturn this.map[name].createHandler(data, schema, options)\n\t}\n}\n\nnamespace ModificationHandlerFactory {\n\ttype HandlerMap<D> = { [modificationName: string]: ModificationType<string, D> }\n\n\tconst handlers = [\n\t\tremoveIndexNamesModification,\n\t\tupdateSettingsModification,\n\t\tupdateAclSchemaModification,\n\t\tpatchAclSchemaModification,\n\t\tcreateColumnModification,\n\t\tupdateColumnDefinitionModification,\n\t\tupdateColumnNameModification,\n\t\tcreateUniqueConstraintModification,\n\t\tremoveUniqueConstraintModification,\n\t\tcreateIndexModification,\n\t\tremoveIndexModification,\n\t\tcreateEntityModification,\n\t\tremoveEntityModification,\n\t\tupdateEntityNameModification,\n\t\tupdateEntityTableNameModification,\n\t\tupdateViewModification,\n\t\tcreateViewModification,\n\t\tcreateEnumModification,\n\t\tremoveEnumModification,\n\t\tupdateEnumModification,\n\t\tremoveFieldModification,\n\t\tupdateFieldNameModification,\n\t\tcreateRelationInverseSideModification,\n\t\tcreateRelationModification,\n\t\tupdateRelationOnDeleteModification,\n\t\tupdateRelationOrderByModification,\n\t\tmakeRelationNotNullModification,\n\t\tmakeRelationNullableModification,\n\t\tenableOrphanRemovalModification,\n\t\tdisableOrphanRemovalModification,\n\t\tupdateValidationSchemaModification,\n\t\tpatchValidationSchemaModification,\n\t\tconvertOneToManyRelationModification,\n\t\tconvertOneHasManyToOneHasOneRelationModification,\n\t\ttoggleEventLogModification,\n\t\ttoggleJunctionEventLogModification,\n\t\tconvertOneHasManyToManyHasManyRelationModification,\n\t\tupdateEntityOrderByModification,\n\t\tcreateTriggerModification,\n\t\tupdateTriggerModification,\n\t\tpatchTriggerModification,\n\t\tremoveTriggerModification,\n\t\tcreateTargetModification,\n\t\tupdateTargetModification,\n\t\tremoveTargetModification,\n\t]\n\n\texport const defaultFactoryMap: HandlerMap<any> = Object.fromEntries(handlers.map(it => [it.id, it]))\n}\n\nexport { ModificationHandlerFactory }\n"],"names":["ModificationHandlerFactory"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,MAAM,2BAA2B;AAAA,EAChC,YAA6B,KAAoD;AAApD,SAAA,MAAA;AAAA,EAAA;AAAA,EAEtB,OAAU,MAAc,MAAS,QAAgB,SAA6D;AACpH,QAAI,CAAC,KAAK,IAAI,IAAI,GAAG;AACpB,YAAM,IAAI,MAAM,sCAAsC,IAAI,EAAE;AAAA,IAAA;AAE7D,WAAO,KAAK,IAAI,IAAI,EAAE,cAAc,MAAM,QAAQ,OAAO;AAAA,EAAA;AAE3D;AAAA,CAEA,CAAUA,gCAAV;AAGC,QAAM,WAAW;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEaA,8BAAA,oBAAqC,OAAO,YAAY,SAAS,IAAI,CAAM,OAAA,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AAAA,GAnD3F,+BAAA,6BAAA,CAAA,EAAA;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const ModificationHandler = require("../ModificationHandler.cjs");
|
|
4
|
+
const rfc6902 = require("rfc6902");
|
|
5
|
+
const deepCopy = require("../../utils/deepCopy.cjs");
|
|
6
|
+
class PatchTriggerModificationHandler {
|
|
7
|
+
constructor(data) {
|
|
8
|
+
this.data = data;
|
|
9
|
+
}
|
|
10
|
+
createSql() {
|
|
11
|
+
}
|
|
12
|
+
getSchemaUpdater() {
|
|
13
|
+
return ({ schema }) => {
|
|
14
|
+
const trigger = deepCopy(schema.actions.triggers[this.data.triggerName]);
|
|
15
|
+
if (!trigger) {
|
|
16
|
+
throw new Error(`Trigger ${this.data.triggerName} not found`);
|
|
17
|
+
}
|
|
18
|
+
const result = rfc6902.applyPatch(trigger, this.data.patch).filter((it) => it !== null);
|
|
19
|
+
if (result.length > 0) {
|
|
20
|
+
throw result[0];
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
...schema,
|
|
24
|
+
actions: {
|
|
25
|
+
...schema.actions,
|
|
26
|
+
triggers: {
|
|
27
|
+
...schema.actions.triggers,
|
|
28
|
+
[this.data.triggerName]: trigger
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
describe() {
|
|
35
|
+
return { message: `Patch trigger ${this.data.triggerName}` };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const patchTriggerModification = ModificationHandler.createModificationType({
|
|
39
|
+
id: "patchTrigger",
|
|
40
|
+
handler: PatchTriggerModificationHandler
|
|
41
|
+
});
|
|
42
|
+
exports.PatchTriggerModificationHandler = PatchTriggerModificationHandler;
|
|
43
|
+
exports.patchTriggerModification = patchTriggerModification;
|
|
44
|
+
//# sourceMappingURL=PatchTriggerModification.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatchTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/PatchTriggerModification.ts"],"sourcesContent":["import { Actions } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy'\n\nexport class PatchTriggerModificationHandler implements ModificationHandler<PatchTriggerModificationData> {\n\tconstructor(private readonly data: PatchTriggerModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst trigger = deepCopy(schema.actions.triggers[this.data.triggerName])\n\n\t\t\tif (!trigger) {\n\t\t\t\tthrow new Error(`Trigger ${this.data.triggerName} not found`)\n\t\t\t}\n\n\t\t\tconst result = applyPatch(trigger, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.triggerName]: trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Patch trigger ${this.data.triggerName}` }\n\t}\n}\n\nexport interface PatchTriggerModificationData {\n\ttriggerName: string\n\tpatch: Operation[]\n}\n\nexport const patchTriggerModification = createModificationType({\n\tid: 'patchTrigger',\n\thandler: PatchTriggerModificationHandler,\n})\n"],"names":["applyPatch","createModificationType"],"mappings":";;;;;AAMO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAAA;AAAA,EAEtB,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AAChB,YAAA,UAAU,SAAS,OAAO,QAAQ,SAAS,KAAK,KAAK,WAAW,CAAC;AAEvE,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,WAAW,KAAK,KAAK,WAAW,YAAY;AAAA,MAAA;AAGvD,YAAA,SAASA,QAAAA,WAAW,SAAS,KAAK,KAAK,KAAK,EAAE,OAAO,CAAM,OAAA,OAAO,IAAI;AACxE,UAAA,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MAAA;AAGR,aAAA;AAAA,QACN,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,WAAW,GAAG;AAAA,UAAA;AAAA,QAC1B;AAAA,MAEF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,WAAW,GAAG;AAAA,EAAA;AAE7D;AAOO,MAAM,2BAA2BC,oBAAAA,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { createModificationType } from "../ModificationHandler.js";
|
|
2
|
+
import { applyPatch } from "rfc6902";
|
|
3
|
+
import deepCopy from "../../utils/deepCopy.js";
|
|
4
|
+
class PatchTriggerModificationHandler {
|
|
5
|
+
constructor(data) {
|
|
6
|
+
this.data = data;
|
|
7
|
+
}
|
|
8
|
+
createSql() {
|
|
9
|
+
}
|
|
10
|
+
getSchemaUpdater() {
|
|
11
|
+
return ({ schema }) => {
|
|
12
|
+
const trigger = deepCopy(schema.actions.triggers[this.data.triggerName]);
|
|
13
|
+
if (!trigger) {
|
|
14
|
+
throw new Error(`Trigger ${this.data.triggerName} not found`);
|
|
15
|
+
}
|
|
16
|
+
const result = applyPatch(trigger, this.data.patch).filter((it) => it !== null);
|
|
17
|
+
if (result.length > 0) {
|
|
18
|
+
throw result[0];
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
...schema,
|
|
22
|
+
actions: {
|
|
23
|
+
...schema.actions,
|
|
24
|
+
triggers: {
|
|
25
|
+
...schema.actions.triggers,
|
|
26
|
+
[this.data.triggerName]: trigger
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
describe() {
|
|
33
|
+
return { message: `Patch trigger ${this.data.triggerName}` };
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const patchTriggerModification = createModificationType({
|
|
37
|
+
id: "patchTrigger",
|
|
38
|
+
handler: PatchTriggerModificationHandler
|
|
39
|
+
});
|
|
40
|
+
export {
|
|
41
|
+
PatchTriggerModificationHandler,
|
|
42
|
+
patchTriggerModification
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=PatchTriggerModification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PatchTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/PatchTriggerModification.ts"],"sourcesContent":["import { Actions } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, ModificationHandler } from '../ModificationHandler'\nimport { applyPatch, Operation } from 'rfc6902'\nimport deepCopy from '../../utils/deepCopy'\n\nexport class PatchTriggerModificationHandler implements ModificationHandler<PatchTriggerModificationData> {\n\tconstructor(private readonly data: PatchTriggerModificationData) {}\n\n\tpublic createSql(): void {}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\tconst trigger = deepCopy(schema.actions.triggers[this.data.triggerName])\n\n\t\t\tif (!trigger) {\n\t\t\t\tthrow new Error(`Trigger ${this.data.triggerName} not found`)\n\t\t\t}\n\n\t\t\tconst result = applyPatch(trigger, this.data.patch).filter(it => it !== null)\n\t\t\tif (result.length > 0) {\n\t\t\t\tthrow result[0]\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.triggerName]: trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Patch trigger ${this.data.triggerName}` }\n\t}\n}\n\nexport interface PatchTriggerModificationData {\n\ttriggerName: string\n\tpatch: Operation[]\n}\n\nexport const patchTriggerModification = createModificationType({\n\tid: 'patchTrigger',\n\thandler: PatchTriggerModificationHandler,\n})\n"],"names":[],"mappings":";;;AAMO,MAAM,gCAA6F;AAAA,EACzG,YAA6B,MAAoC;AAApC,SAAA,OAAA;AAAA,EAAA;AAAA,EAEtB,YAAkB;AAAA,EAAA;AAAA,EAElB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AAChB,YAAA,UAAU,SAAS,OAAO,QAAQ,SAAS,KAAK,KAAK,WAAW,CAAC;AAEvE,UAAI,CAAC,SAAS;AACb,cAAM,IAAI,MAAM,WAAW,KAAK,KAAK,WAAW,YAAY;AAAA,MAAA;AAGvD,YAAA,SAAS,WAAW,SAAS,KAAK,KAAK,KAAK,EAAE,OAAO,CAAM,OAAA,OAAO,IAAI;AACxE,UAAA,OAAO,SAAS,GAAG;AACtB,cAAM,OAAO,CAAC;AAAA,MAAA;AAGR,aAAA;AAAA,QACN,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,WAAW,GAAG;AAAA,UAAA;AAAA,QAC1B;AAAA,MAEF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,WAAW;AACV,WAAO,EAAE,SAAS,iBAAiB,KAAK,KAAK,WAAW,GAAG;AAAA,EAAA;AAE7D;AAOO,MAAM,2BAA2B,uBAAuB;AAAA,EAC9D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const ModificationHandler = require("../ModificationHandler.cjs");
|
|
4
4
|
const deepEqual = require("fast-deep-equal");
|
|
5
|
+
const rfc6902 = require("rfc6902");
|
|
6
|
+
const PatchTriggerModification = require("./PatchTriggerModification.cjs");
|
|
5
7
|
class UpdateTriggerModificationHandler {
|
|
6
8
|
constructor(data) {
|
|
7
9
|
this.data = data;
|
|
@@ -31,8 +33,21 @@ const updateTriggerModification = ModificationHandler.createModificationType({
|
|
|
31
33
|
handler: UpdateTriggerModificationHandler
|
|
32
34
|
});
|
|
33
35
|
class UpdateTriggerDiffer {
|
|
36
|
+
constructor(options) {
|
|
37
|
+
this.options = options;
|
|
38
|
+
}
|
|
34
39
|
createDiff(originalSchema, updatedSchema) {
|
|
35
|
-
return Object.entries(updatedSchema.actions.triggers).filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name])).map(([, trigger]) =>
|
|
40
|
+
return Object.entries(updatedSchema.actions.triggers).filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name])).map(([name, trigger]) => {
|
|
41
|
+
const originalTrigger = originalSchema.actions.triggers[name];
|
|
42
|
+
const patch = rfc6902.createPatch(originalTrigger, trigger);
|
|
43
|
+
if (patch.length <= (this.options?.maxPatchSize ?? 100)) {
|
|
44
|
+
return PatchTriggerModification.patchTriggerModification.createModification({
|
|
45
|
+
triggerName: name,
|
|
46
|
+
patch
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
return updateTriggerModification.createModification({ trigger });
|
|
50
|
+
});
|
|
36
51
|
}
|
|
37
52
|
}
|
|
38
53
|
exports.UpdateTriggerDiffer = UpdateTriggerDiffer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateTriggerModificationHandler implements ModificationHandler<UpdateTriggerModificationData> {\n\tconstructor(private readonly data: UpdateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface UpdateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const updateTriggerModification = createModificationType({\n\tid: 'updateTrigger',\n\thandler: UpdateTriggerModificationHandler,\n})\n\nexport class UpdateTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name]))\n\t\t\t.map(([, trigger]) => updateTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":["createModificationType"],"mappings":"
|
|
1
|
+
{"version":3,"file":"UpdateTriggerModification.cjs","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchTriggerModification } from './PatchTriggerModification'\n\nexport class UpdateTriggerModificationHandler implements ModificationHandler<UpdateTriggerModificationData> {\n\tconstructor(private readonly data: UpdateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface UpdateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const updateTriggerModification = createModificationType({\n\tid: 'updateTrigger',\n\thandler: UpdateTriggerModificationHandler,\n})\n\nexport class UpdateTriggerDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name]))\n\t\t\t.map(([name, trigger]) => {\n\t\t\t\tconst originalTrigger = originalSchema.actions.triggers[name]\n\n\t\t\t\tconst patch = createPatch(originalTrigger, trigger)\n\t\t\t\tif (patch.length <= (this.options?.maxPatchSize ?? 100)) {\n\t\t\t\t\treturn patchTriggerModification.createModification({\n\t\t\t\t\t\ttriggerName: name,\n\t\t\t\t\t\tpatch,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\treturn updateTriggerModification.createModification({ trigger })\n\t\t\t})\n\t}\n}\n"],"names":["createModificationType","createPatch","patchTriggerModification"],"mappings":";;;;;;AAOO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAAA;AAAA,EAGtB,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QACrC;AAAA,MAEF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAG;AAAA,EAAA;AAE/D;AAMO,MAAM,4BAA4BA,oBAAAA,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAAA;AAAA,EAMlB,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM;AACzB,YAAM,kBAAkB,eAAe,QAAQ,SAAS,IAAI;AAEtD,YAAA,QAAQC,QAAAA,YAAY,iBAAiB,OAAO;AAClD,UAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAM;AACxD,eAAOC,yBAAAA,yBAAyB,mBAAmB;AAAA,UAClD,aAAa;AAAA,UACb;AAAA,QAAA,CACA;AAAA,MAAA;AAGF,aAAO,0BAA0B,mBAAmB,EAAE,SAAS;AAAA,IAAA,CAC/D;AAAA,EAAA;AAEJ;;;;"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createModificationType } from "../ModificationHandler.js";
|
|
2
2
|
import deepEqual from "fast-deep-equal";
|
|
3
|
+
import { createPatch } from "rfc6902";
|
|
4
|
+
import { patchTriggerModification } from "./PatchTriggerModification.js";
|
|
3
5
|
class UpdateTriggerModificationHandler {
|
|
4
6
|
constructor(data) {
|
|
5
7
|
this.data = data;
|
|
@@ -29,8 +31,21 @@ const updateTriggerModification = createModificationType({
|
|
|
29
31
|
handler: UpdateTriggerModificationHandler
|
|
30
32
|
});
|
|
31
33
|
class UpdateTriggerDiffer {
|
|
34
|
+
constructor(options) {
|
|
35
|
+
this.options = options;
|
|
36
|
+
}
|
|
32
37
|
createDiff(originalSchema, updatedSchema) {
|
|
33
|
-
return Object.entries(updatedSchema.actions.triggers).filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name])).map(([, trigger]) =>
|
|
38
|
+
return Object.entries(updatedSchema.actions.triggers).filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name])).map(([name, trigger]) => {
|
|
39
|
+
const originalTrigger = originalSchema.actions.triggers[name];
|
|
40
|
+
const patch = createPatch(originalTrigger, trigger);
|
|
41
|
+
if (patch.length <= (this.options?.maxPatchSize ?? 100)) {
|
|
42
|
+
return patchTriggerModification.createModification({
|
|
43
|
+
triggerName: name,
|
|
44
|
+
patch
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return updateTriggerModification.createModification({ trigger });
|
|
48
|
+
});
|
|
34
49
|
}
|
|
35
50
|
}
|
|
36
51
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\n\nexport class UpdateTriggerModificationHandler implements ModificationHandler<UpdateTriggerModificationData> {\n\tconstructor(private readonly data: UpdateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface UpdateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const updateTriggerModification = createModificationType({\n\tid: 'updateTrigger',\n\thandler: UpdateTriggerModificationHandler,\n})\n\nexport class UpdateTriggerDiffer implements Differ {\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name]))\n\t\t\t.map(([, trigger]) => updateTriggerModification.createModification({ trigger }))\n\t}\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UpdateTriggerModification.js","sources":["../../../../../../packages/schema-migrations/src/modifications/actions/UpdateTriggerModification.ts"],"sourcesContent":["import { Actions, Schema } from '@contember/schema'\nimport { SchemaUpdater } from '../utils/schemaUpdateUtils'\nimport { createModificationType, Differ, ModificationHandler } from '../ModificationHandler'\nimport deepEqual from 'fast-deep-equal'\nimport { createPatch } from 'rfc6902'\nimport { patchTriggerModification } from './PatchTriggerModification'\n\nexport class UpdateTriggerModificationHandler implements ModificationHandler<UpdateTriggerModificationData> {\n\tconstructor(private readonly data: UpdateTriggerModificationData) {\n\t}\n\n\tpublic createSql(): void {\n\t}\n\n\tpublic getSchemaUpdater(): SchemaUpdater {\n\t\treturn ({ schema }) => {\n\t\t\treturn ({\n\t\t\t\t...schema,\n\t\t\t\tactions: {\n\t\t\t\t\t...schema.actions,\n\t\t\t\t\ttriggers: {\n\t\t\t\t\t\t...schema.actions.triggers,\n\t\t\t\t\t\t[this.data.trigger.name]: this.data.trigger,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\tdescribe() {\n\t\treturn { message: `Update trigger ${this.data.trigger.name}` }\n\t}\n}\n\nexport interface UpdateTriggerModificationData {\n\ttrigger: Actions.AnyTrigger\n}\n\nexport const updateTriggerModification = createModificationType({\n\tid: 'updateTrigger',\n\thandler: UpdateTriggerModificationHandler,\n})\n\nexport class UpdateTriggerDiffer implements Differ {\n\tconstructor(\n\t\tprivate readonly options?: {\n\t\t\tmaxPatchSize?: number\n\t\t},\n\t) {\n\t}\n\n\tcreateDiff(originalSchema: Schema, updatedSchema: Schema) {\n\t\treturn Object.entries(updatedSchema.actions.triggers)\n\t\t\t.filter(([name, trigger]) => originalSchema.actions.triggers[name] && !deepEqual(trigger, originalSchema.actions.triggers[name]))\n\t\t\t.map(([name, trigger]) => {\n\t\t\t\tconst originalTrigger = originalSchema.actions.triggers[name]\n\n\t\t\t\tconst patch = createPatch(originalTrigger, trigger)\n\t\t\t\tif (patch.length <= (this.options?.maxPatchSize ?? 100)) {\n\t\t\t\t\treturn patchTriggerModification.createModification({\n\t\t\t\t\t\ttriggerName: name,\n\t\t\t\t\t\tpatch,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\treturn updateTriggerModification.createModification({ trigger })\n\t\t\t})\n\t}\n}\n"],"names":[],"mappings":";;;;AAOO,MAAM,iCAA+F;AAAA,EAC3G,YAA6B,MAAqC;AAArC,SAAA,OAAA;AAAA,EAAA;AAAA,EAGtB,YAAkB;AAAA,EAAA;AAAA,EAGlB,mBAAkC;AACjC,WAAA,CAAC,EAAE,aAAa;AACd,aAAA;AAAA,QACP,GAAG;AAAA,QACH,SAAS;AAAA,UACR,GAAG,OAAO;AAAA,UACV,UAAU;AAAA,YACT,GAAG,OAAO,QAAQ;AAAA,YAClB,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,KAAK;AAAA,UAAA;AAAA,QACrC;AAAA,MAEF;AAAA,IACD;AAAA,EAAA;AAAA,EAGD,WAAW;AACV,WAAO,EAAE,SAAS,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAG;AAAA,EAAA;AAE/D;AAMO,MAAM,4BAA4B,uBAAuB;AAAA,EAC/D,IAAI;AAAA,EACJ,SAAS;AACV,CAAC;AAEM,MAAM,oBAAsC;AAAA,EAClD,YACkB,SAGhB;AAHgB,SAAA,UAAA;AAAA,EAAA;AAAA,EAMlB,WAAW,gBAAwB,eAAuB;AACzD,WAAO,OAAO,QAAQ,cAAc,QAAQ,QAAQ,EAClD,OAAO,CAAC,CAAC,MAAM,OAAO,MAAM,eAAe,QAAQ,SAAS,IAAI,KAAK,CAAC,UAAU,SAAS,eAAe,QAAQ,SAAS,IAAI,CAAC,CAAC,EAC/H,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM;AACzB,YAAM,kBAAkB,eAAe,QAAQ,SAAS,IAAI;AAEtD,YAAA,QAAQ,YAAY,iBAAiB,OAAO;AAClD,UAAI,MAAM,WAAW,KAAK,SAAS,gBAAgB,MAAM;AACxD,eAAO,yBAAyB,mBAAmB;AAAA,UAClD,aAAa;AAAA,UACb;AAAA,QAAA,CACA;AAAA,MAAA;AAGF,aAAO,0BAA0B,mBAAmB,EAAE,SAAS;AAAA,IAAA,CAC/D;AAAA,EAAA;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patchTrigger.test.d.ts","sourceRoot":"","sources":["../../../../tests/cases/integration/patchTrigger.test.ts"],"names":[],"mappings":""}
|