@@ -22,7 +22,9 @@ type ModificationTypes =
2222 | 'NewField'
2323 | 'RemovedField'
2424 | 'NewCustomMetadataRecord'
25- | 'RemovedCustomMetadataRecord' ;
25+ | 'RemovedCustomMetadataRecord'
26+ | 'NewTrigger'
27+ | 'RemovedTrigger' ;
2628
2729export type MemberModificationType = {
2830 __typename : ModificationTypes ;
@@ -35,13 +37,20 @@ export type NewOrModifiedMember = {
3537 modifications : MemberModificationType [ ] ;
3638} ;
3739
40+ export type TriggerChange = {
41+ triggerName : string ;
42+ objectName : string ;
43+ } ;
44+
3845export type Changelog = {
3946 newApexTypes : string [ ] ;
4047 removedApexTypes : string [ ] ;
4148 newOrModifiedApexMembers : NewOrModifiedMember [ ] ;
4249 newCustomObjects : string [ ] ;
4350 removedCustomObjects : string [ ] ;
4451 customObjectModifications : NewOrModifiedMember [ ] ;
52+ newTriggers : TriggerChange [ ] ;
53+ removedTriggers : TriggerChange [ ] ;
4554} ;
4655
4756export function hasChanges ( changelog : Changelog ) : boolean {
@@ -63,6 +72,8 @@ export function processChangelog(oldVersion: VersionManifest, newVersion: Versio
6372 ...getCustomObjectModifications ( oldVersion , newVersion ) ,
6473 ...getNewOrModifiedExtensionFields ( oldVersion , newVersion ) ,
6574 ] ,
75+ newTriggers : getNewTriggers ( oldVersion , newVersion ) ,
76+ removedTriggers : getRemovedTriggers ( oldVersion , newVersion ) ,
6677 } ;
6778}
6879
@@ -80,6 +91,24 @@ function getRemovedApexTypes(oldVersion: VersionManifest, newVersion: VersionMan
8091 . map ( ( type ) => type . name ) ;
8192}
8293
94+ function getNewTriggers ( oldVersion : VersionManifest , newVersion : VersionManifest ) : TriggerChange [ ] {
95+ return newVersion . types
96+ . filter ( ( newType ) : newType is TriggerMetadata => newType . type_name === 'trigger' )
97+ . filter (
98+ ( newTrigger ) => ! oldVersion . types . some ( ( oldType ) => oldType . name . toLowerCase ( ) === newTrigger . name . toLowerCase ( ) ) ,
99+ )
100+ . map ( ( trigger ) => ( { triggerName : trigger . name , objectName : trigger . object_name } ) ) ;
101+ }
102+
103+ function getRemovedTriggers ( oldVersion : VersionManifest , newVersion : VersionManifest ) : TriggerChange [ ] {
104+ return oldVersion . types
105+ . filter ( ( newType ) : newType is TriggerMetadata => newType . type_name === 'trigger' )
106+ . filter (
107+ ( oldTrigger ) => ! newVersion . types . some ( ( newType ) => newType . name . toLowerCase ( ) === oldTrigger . name . toLowerCase ( ) ) ,
108+ )
109+ . map ( ( trigger ) => ( { triggerName : trigger . name , objectName : trigger . object_name } ) ) ;
110+ }
111+
83112function getNewCustomObjects ( oldVersion : VersionManifest , newVersion : VersionManifest ) : string [ ] {
84113 return newVersion . types
85114 . filter ( ( newType ) : newType is CustomObjectMetadata => newType . type_name === 'customobject' )
0 commit comments