Skip to content

Commit 79f1612

Browse files
committed
feat: support deleting with agent pseudo type
1 parent 04fa7c9 commit 79f1612

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

src/commands/project/delete/source.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ import { resolveApi, validateTests } from '../../../utils/deploy.js';
4242
import { DeployResultFormatter } from '../../../formatters/deployResultFormatter.js';
4343
import { DeleteResultFormatter } from '../../../formatters/deleteResultFormatter.js';
4444
import { DeployCache } from '../../../utils/deployCache.js';
45-
import { testLevelFlag, testsFlag } from '../../../utils/flags.js';
45+
import { isPseudoType, testLevelFlag, testsFlag } from '../../../utils/flags.js';
4646
const testFlags = 'Test';
4747

4848
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
@@ -165,6 +165,9 @@ export class Source extends SfCommand<DeleteSourceJson> {
165165

166166
protected async delete(): Promise<void> {
167167
const sourcepaths = this.flags['source-dir'];
168+
const retrieveFromOrg = this.flags.metadata?.some(isPseudoType)
169+
? this.flags['target-org'].getUsername()
170+
: undefined;
168171

169172
this.componentSet = await ComponentSetBuilder.build({
170173
apiversion: this.flags['api-version'],
@@ -177,6 +180,7 @@ export class Source extends SfCommand<DeleteSourceJson> {
177180
}
178181
: undefined,
179182
projectDir: this.project?.getPath(),
183+
...(retrieveFromOrg ? { org: { username: retrieveFromOrg, exclude: [] } } : {}),
180184
});
181185
if (this.flags['track-source'] && !this.flags['force-overwrite']) {
182186
await this.filterConflictsByComponentSet();

src/commands/project/retrieve/start.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import { SourceTracking, SourceConflictError } from '@salesforce/source-tracking
2828
import { Duration } from '@salesforce/kit';
2929
import { Interfaces } from '@oclif/core';
3030

31-
import { DEFAULT_ZIP_FILE_NAME, ensuredDirFlag, zipFileFlag } from '../../../utils/flags.js';
31+
import { DEFAULT_ZIP_FILE_NAME, ensuredDirFlag, isPseudoType, zipFileFlag } from '../../../utils/flags.js';
3232
import { RetrieveResultFormatter } from '../../../formatters/retrieveResultFormatter.js';
3333
import { MetadataRetrieveResultFormatter } from '../../../formatters/metadataRetrieveResultFormatter.js';
3434
import { getOptionalProject, getPackageDirs } from '../../../utils/project.js';
@@ -507,5 +507,3 @@ const isRegexMatch = (mdEntry: string): boolean => {
507507
const mdName = mdEntry.split(':')[1];
508508
return mdName?.includes('*') && mdName?.length > 1 && !mdName?.includes('.*');
509509
};
510-
511-
const isPseudoType = (mdEntry: string): boolean => mdEntry.split(':')[0] === 'Agent';

src/utils/flags.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,3 +121,9 @@ const commaWarningForMultipleFlags = async (input: string, warningText: string):
121121
}
122122
return input;
123123
};
124+
125+
/**
126+
* Returns `true` if the metadata entry (e.g., --metadata) contains a pseudo type
127+
* such as "Agent" or "Agent:My_Agent".
128+
*/
129+
export const isPseudoType = (mdEntry: string): boolean => mdEntry.split(':')[0] === 'Agent';

0 commit comments

Comments
 (0)