@@ -16,10 +16,14 @@ import {
16
16
FileResponse ,
17
17
} from '@salesforce/source-deploy-retrieve' ;
18
18
19
- import { RemoteSourceTrackingService , RemoteChangeElement , getMetadataKey } from './shared/remoteSourceTrackingService' ;
19
+ import {
20
+ RemoteSourceTrackingService ,
21
+ getMetadataKey ,
22
+ remoteChangeElementToChangeResult ,
23
+ } from './shared/remoteSourceTrackingService' ;
20
24
import { ShadowRepo } from './shared/localShadowRepo' ;
21
25
import { filenamesToVirtualTree } from './shared/filenamesToVirtualTree' ;
22
- import { RemoteSyncInput } from './shared/types' ;
26
+ import { RemoteSyncInput , ChangeResult , RemoteChangeElement } from './shared/types' ;
23
27
24
28
export const getKeyFromObject = ( element : RemoteChangeElement | ChangeResult ) : string => {
25
29
if ( element . type && element . name ) {
@@ -44,20 +48,6 @@ export interface LocalUpdateOptions {
44
48
deletedFiles ?: string [ ] ;
45
49
}
46
50
47
- /**
48
- * Summary type that supports both local and remote change types
49
- */
50
- export type ChangeResult = Partial < RemoteChangeElement > & {
51
- origin : 'local' | 'remote' ;
52
- filenames ?: string [ ] ;
53
- } ;
54
-
55
- export interface ConflictError {
56
- message : string ;
57
- name : 'conflict' ;
58
- conflicts : ChangeResult [ ] ;
59
- }
60
-
61
51
export interface SourceTrackingOptions {
62
52
org : Org ;
63
53
project : SfdxProject ;
@@ -183,10 +173,12 @@ export class SourceTracking extends AsyncCreatable {
183
173
filteredChanges = remoteChanges . filter ( ( change ) => ! change . deleted ) ;
184
174
}
185
175
if ( options . format === 'ChangeResult' ) {
186
- return filteredChanges . map ( ( change ) => ( { ... change , origin : 'remote' } ) ) as T [ ] ;
176
+ return filteredChanges . map ( ( change ) => remoteChangeElementToChangeResult ( change ) ) as T [ ] ;
187
177
}
188
178
if ( options . format === 'ChangeResultWithPaths' ) {
189
- return this . populateFilePaths ( filteredChanges . map ( ( change ) => ( { ...change , origin : 'remote' } ) ) ) as T [ ] ;
179
+ return this . populateFilePaths (
180
+ filteredChanges . map ( ( change ) => remoteChangeElementToChangeResult ( change ) )
181
+ ) as T [ ] ;
190
182
}
191
183
// turn it into a componentSet to resolve filenames
192
184
const remoteChangesAsComponentLike = filteredChanges . map ( ( element ) => ( {
0 commit comments