diff --git a/METADATA_SUPPORT.md b/METADATA_SUPPORT.md index e675793742..c77cd19fc1 100644 --- a/METADATA_SUPPORT.md +++ b/METADATA_SUPPORT.md @@ -557,6 +557,7 @@ v58 introduces the following new types. Here's their current level of support |Ai4mSettings|✅|| |CodeBuilderSettings|✅|| |DataWeaveResource|✅|| +|DynamicFormsSettings|✅|| |OmniChannelPricingSettings|✅|| |PriceSheetDefinition|❌|Not supported, but support could be added| |ProcessFlowMigration|❌|Not supported, but support could be added| diff --git a/src/client/metadataApiRetrieve.ts b/src/client/metadataApiRetrieve.ts index bef98b524b..ed5de27894 100644 --- a/src/client/metadataApiRetrieve.ts +++ b/src/client/metadataApiRetrieve.ts @@ -198,7 +198,7 @@ export class MetadataApiRetrieve extends MetadataTransfer< components ??= new ComponentSet(undefined, this.options.registry); const retrieveResult = new RetrieveResult(result, components, this.components); - if (!isMdapiRetrieve) { + if (!isMdapiRetrieve && !this.options.suppressEvents) { // This should only be done when retrieving source format since retrieving // mdapi format has no conversion or events/hooks await this.maybeSaveTempDirectory('source', components); @@ -226,7 +226,7 @@ export class MetadataApiRetrieve extends MetadataTransfer< this.components.sourceApiVersion ??= apiVersion; // only do event hooks if source, (NOT a metadata format) retrieve - if (this.options.components) { + if (this.options.components && !this.options.suppressEvents) { await Lifecycle.getInstance().emit('scopedPreRetrieve', { componentSet: this.options.components, orgId: this.orgId, diff --git a/src/client/types.ts b/src/client/types.ts index 8909e05efc..0fda9ed590 100644 --- a/src/client/types.ts +++ b/src/client/types.ts @@ -326,6 +326,10 @@ export interface RetrieveOptions { * Specifies whether to unzip the retrieved zip file. Only applies when `format: metadata`. */ unzip?: boolean; + /** + * Specifies whether to suppress the events + */ + suppressEvents?: boolean; } export interface MetadataApiDeployOptions { diff --git a/test/collections/componentSet.test.ts b/test/collections/componentSet.test.ts index 3addf7a6a8..ccd06ce6fa 100644 --- a/test/collections/componentSet.test.ts +++ b/test/collections/componentSet.test.ts @@ -208,6 +208,20 @@ describe('ComponentSet', () => { unpackaged: { types: [{ members: ['Test'], name: 'ApexClass' }], version: manifestVersion }, }); }); + + it('should not emit pre- or post-retrieve events with the suppressEvents setting set to true', async () => { + componentSet = await ComponentSetBuilder.build({ sourcepath: [sourcepath] }); + await stubConnection(); + await componentSet.retrieve({ output: '', usernameOrConnection: connection, suppressEvents: true }); + + let preAndPostRetrieveEventCount = 0; + lifecycleEmitStub.args.forEach((event) => { + if (event[0] === ('scopedPreRetrieve' || 'scopedPostRetrieve')) { + preAndPostRetrieveEventCount = preAndPostRetrieveEventCount + 1; + } + }); + expect(preAndPostRetrieveEventCount).to.equal(0); + }); }); describe('deploy', () => { diff --git a/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/eda.json b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/eda.json index 5eb58143c3..9e84b24329 100644 --- a/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/eda.json +++ b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/eda.json @@ -1,18 +1,18 @@ [ { "name": "componentSetCreate", - "duration": 314.8237599999993 + "duration": 344.26991400000406 }, { "name": "sourceToMdapi", - "duration": 7607.062248000002 + "duration": 8409.486489000003 }, { "name": "sourceToZip", - "duration": 6249.7481109999935 + "duration": 6911.691437000001 }, { "name": "mdapiToSource", - "duration": 5729.999462999986 + "duration": 5980.411838 } ] \ No newline at end of file diff --git a/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/lotsOfClasses.json b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/lotsOfClasses.json index e98dd270f5..07102a6a79 100644 --- a/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/lotsOfClasses.json +++ b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/lotsOfClasses.json @@ -1,18 +1,18 @@ [ { "name": "componentSetCreate", - "duration": 677.3227829999814 + "duration": 666.2776299999969 }, { "name": "sourceToMdapi", - "duration": 11628.18376700001 + "duration": 11784.642793000006 }, { "name": "sourceToZip", - "duration": 9789.493870999984 + "duration": 9004.190682999993 }, { "name": "mdapiToSource", - "duration": 8767.531892999978 + "duration": 8077.6561640000145 } ] \ No newline at end of file diff --git a/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/lotsOfClassesOneDir.json b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/lotsOfClassesOneDir.json index 9f67450178..3a03a4d097 100644 --- a/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/lotsOfClassesOneDir.json +++ b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-CPU-E5-2673-v3-2-40GHz/lotsOfClassesOneDir.json @@ -1,18 +1,18 @@ [ { "name": "componentSetCreate", - "duration": 1097.0085559999861 + "duration": 1166.675390999997 }, { "name": "sourceToMdapi", - "duration": 16553.773215000023 + "duration": 18113.351571000007 }, { "name": "sourceToZip", - "duration": 14349.35624600001 + "duration": 14997.718697000004 }, { "name": "mdapiToSource", - "duration": 14337.243206000014 + "duration": 13485.154669999989 } ] \ No newline at end of file diff --git a/test/nuts/perfResults/x64-linux-2xIntel-Xeon-Platinum-8370C-CPU-2-80GHz/eda.json b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-Platinum-8370C-CPU-2-80GHz/eda.json new file mode 100644 index 0000000000..11aec11452 --- /dev/null +++ b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-Platinum-8370C-CPU-2-80GHz/eda.json @@ -0,0 +1,18 @@ +[ + { + "name": "componentSetCreate", + "duration": 199.62190299999202 + }, + { + "name": "sourceToMdapi", + "duration": 5130.159515000007 + }, + { + "name": "sourceToZip", + "duration": 4675.235429000022 + }, + { + "name": "mdapiToSource", + "duration": 3208.6088720000116 + } +] \ No newline at end of file diff --git a/test/nuts/perfResults/x64-linux-2xIntel-Xeon-Platinum-8370C-CPU-2-80GHz/lotsOfClasses.json b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-Platinum-8370C-CPU-2-80GHz/lotsOfClasses.json new file mode 100644 index 0000000000..9d373c3e41 --- /dev/null +++ b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-Platinum-8370C-CPU-2-80GHz/lotsOfClasses.json @@ -0,0 +1,18 @@ +[ + { + "name": "componentSetCreate", + "duration": 410.4985020000022 + }, + { + "name": "sourceToMdapi", + "duration": 7788.398672999989 + }, + { + "name": "sourceToZip", + "duration": 8867.863911000022 + }, + { + "name": "mdapiToSource", + "duration": 4871.89470200002 + } +] \ No newline at end of file diff --git a/test/nuts/perfResults/x64-linux-2xIntel-Xeon-Platinum-8370C-CPU-2-80GHz/lotsOfClassesOneDir.json b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-Platinum-8370C-CPU-2-80GHz/lotsOfClassesOneDir.json new file mode 100644 index 0000000000..f93072eb32 --- /dev/null +++ b/test/nuts/perfResults/x64-linux-2xIntel-Xeon-Platinum-8370C-CPU-2-80GHz/lotsOfClassesOneDir.json @@ -0,0 +1,18 @@ +[ + { + "name": "componentSetCreate", + "duration": 656.9274350000196 + }, + { + "name": "sourceToMdapi", + "duration": 11477.084537999996 + }, + { + "name": "sourceToZip", + "duration": 11235.755581000005 + }, + { + "name": "mdapiToSource", + "duration": 8346.796450999973 + } +] \ No newline at end of file