From 364d00923a4e75584c8928fe6e25ff00fc5fc3b0 Mon Sep 17 00:00:00 2001 From: Nils Schuch Date: Sat, 31 Aug 2024 14:47:06 +0200 Subject: [PATCH] fix: prevents pre and post deployer from running into an error on specific data-pack #115 --- src/core/package/SfpPackageBuilder.ts | 5 +++-- src/core/package/analyser/FHTAnalyzer.ts | 2 +- src/core/package/analyser/FTAnalyzer.ts | 2 +- src/core/package/analyser/PackageAnalyzer.ts | 2 +- src/core/package/analyser/PicklistAnalyzer.ts | 2 +- .../DeploymentCustomizer.ts | 4 ++-- .../deploymentCustomizers/FlowActivator.ts | 4 ++-- .../MetadataDeploymentCustomizer.ts | 4 ++-- .../deploymentCustomizers/PicklistEnabler.ts | 4 ++-- .../package/packageInstallers/InstallPackage.ts | 16 +++++++++------- tests/core/package/analysers/FHTAnalyzer.test.ts | 8 ++++---- tests/core/package/analysers/FTAnalyzer.test.ts | 8 ++++---- 12 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/core/package/SfpPackageBuilder.ts b/src/core/package/SfpPackageBuilder.ts index adaa6b099..9c1a96511 100644 --- a/src/core/package/SfpPackageBuilder.ts +++ b/src/core/package/SfpPackageBuilder.ts @@ -120,15 +120,16 @@ export default class SfpPackageBuilder { sfpPackage.isTriggerAllTests = this.isAllTestsToBeTriggered(sfpPackage, logger); + const isDataPackage = sfpPackage.packageType == PackageType.Data; //Load component Set - let componentSet = ComponentSet.fromSource( + let componentSet = isDataPackage? undefined:ComponentSet.fromSource( path.resolve(sfpPackage.workingDirectory, sfpPackage.projectDirectory, sfpPackage.packageDirectory) ); //Run through all analyzers let analyzers = AnalyzerRegistry.getAnalyzers(); for (const analyzer of analyzers) { - if (analyzer.isEnabled(sfpPackage, logger)) sfpPackage = await analyzer.analyze(sfpPackage,componentSet, logger); + if (analyzer.isEnabled(sfpPackage, logger)) sfpPackage = await analyzer.analyze(sfpPackage, logger, componentSet); } } diff --git a/src/core/package/analyser/FHTAnalyzer.ts b/src/core/package/analyser/FHTAnalyzer.ts index 0c78da584..0280441ff 100644 --- a/src/core/package/analyser/FHTAnalyzer.ts +++ b/src/core/package/analyser/FHTAnalyzer.ts @@ -14,7 +14,7 @@ export default class FHTAnalyser implements PackageAnalyzer { - public async analyze(sfpPackage: SfpPackage, componentSet:ComponentSet, logger:Logger): Promise { + public async analyze(sfpPackage: SfpPackage, logger: Logger, componentSet: ComponentSet): Promise { try { let fhtFields: { [key: string]: Array } = {}; diff --git a/src/core/package/analyser/FTAnalyzer.ts b/src/core/package/analyser/FTAnalyzer.ts index 79af44d9d..e22d87e7d 100644 --- a/src/core/package/analyser/FTAnalyzer.ts +++ b/src/core/package/analyser/FTAnalyzer.ts @@ -12,7 +12,7 @@ export default class FTAnalyser implements PackageAnalyzer { return "Feed Tracking Analyzer"; } - public async analyze(sfpPackage: SfpPackage, componentSet:ComponentSet, logger:Logger): Promise { + public async analyze(sfpPackage: SfpPackage, logger: Logger, componentSet: ComponentSet): Promise { try { let ftFields: { [key: string]: Array } = {}; diff --git a/src/core/package/analyser/PackageAnalyzer.ts b/src/core/package/analyser/PackageAnalyzer.ts index e74407b5d..82606123c 100644 --- a/src/core/package/analyser/PackageAnalyzer.ts +++ b/src/core/package/analyser/PackageAnalyzer.ts @@ -5,7 +5,7 @@ import SfpPackage from "../SfpPackage"; export interface PackageAnalyzer { getName(); - analyze(sfpPackage: SfpPackage,componentSet:ComponentSet,logger:Logger): Promise + analyze(sfpPackage: SfpPackage, logger: Logger, componentSet?: ComponentSet): Promise isEnabled(sfpPackage: SfpPackage,logger:Logger): Promise diff --git a/src/core/package/analyser/PicklistAnalyzer.ts b/src/core/package/analyser/PicklistAnalyzer.ts index 0df0e9fed..c8bbc48d6 100644 --- a/src/core/package/analyser/PicklistAnalyzer.ts +++ b/src/core/package/analyser/PicklistAnalyzer.ts @@ -11,7 +11,7 @@ export default class PicklistAnalyzer implements PackageAnalyzer { - public async analyze(sfpPackage: SfpPackage, componentSet:ComponentSet, logger:Logger): Promise { + public async analyze(sfpPackage: SfpPackage, logger: Logger, componentSet: ComponentSet): Promise { try { let sourceComponents = componentSet.getSourceComponents().toArray(); let components = []; diff --git a/src/core/package/deploymentCustomizers/DeploymentCustomizer.ts b/src/core/package/deploymentCustomizers/DeploymentCustomizer.ts index 629def235..6260fa262 100644 --- a/src/core/package/deploymentCustomizers/DeploymentCustomizer.ts +++ b/src/core/package/deploymentCustomizers/DeploymentCustomizer.ts @@ -19,9 +19,9 @@ export interface DeploymentCustomizer getDeploymentOptions( target_org: string, waitTime: string, apiVersion: string):Promise getName():string execute(sfpPackage: SfpPackage, - componentSet: ComponentSet, sfpOrg:SFPOrg, logger: Logger, - deploymentContext:DeploymentContext + deploymentContext:DeploymentContext, + componentSet?: ComponentSet, ):Promise } \ No newline at end of file diff --git a/src/core/package/deploymentCustomizers/FlowActivator.ts b/src/core/package/deploymentCustomizers/FlowActivator.ts index 4bdc314b8..d8dbaa366 100644 --- a/src/core/package/deploymentCustomizers/FlowActivator.ts +++ b/src/core/package/deploymentCustomizers/FlowActivator.ts @@ -15,10 +15,10 @@ const Table = require('cli-table'); export default class FlowActivator implements DeploymentCustomizer { async execute( sfpPackage: SfpPackage, - componentSet: ComponentSet, sfpOrg: SFPOrg, logger: Logger, - deploymentContext: DeploymentContext + deploymentContext: DeploymentContext, + componentSet: ComponentSet ): Promise { let sourceComponents = componentSet.getSourceComponents().toArray(); let masterLabelsOfAllFlowsInPackage = []; diff --git a/src/core/package/deploymentCustomizers/MetadataDeploymentCustomizer.ts b/src/core/package/deploymentCustomizers/MetadataDeploymentCustomizer.ts index f30a916cd..3ddf81867 100644 --- a/src/core/package/deploymentCustomizers/MetadataDeploymentCustomizer.ts +++ b/src/core/package/deploymentCustomizers/MetadataDeploymentCustomizer.ts @@ -18,10 +18,10 @@ export abstract class MetdataDeploymentCustomizer implements DeploymentCustomize async execute(sfpPackage: SfpPackage, - componentSet: ComponentSet, sfpOrg:SFPOrg, logger: Logger, - deploymentContext:DeploymentContext + deploymentContext:DeploymentContext, + componentSet: ComponentSet ):Promise { if (await this.isEnabled(sfpPackage, sfpOrg.getConnection(), logger)) { diff --git a/src/core/package/deploymentCustomizers/PicklistEnabler.ts b/src/core/package/deploymentCustomizers/PicklistEnabler.ts index 1eaeee399..c7f8e95fb 100644 --- a/src/core/package/deploymentCustomizers/PicklistEnabler.ts +++ b/src/core/package/deploymentCustomizers/PicklistEnabler.ts @@ -27,10 +27,10 @@ export default class PicklistEnabler implements DeploymentCustomizer { async execute( sfpPackage: SfpPackage, - componentSet: ComponentSet, sfpOrg: SFPOrg, logger: Logger, - deploymentContext: DeploymentContext + deploymentContext: DeploymentContext, + componentSet?: ComponentSet ): Promise { try { let sourceComponents = componentSet.getSourceComponents().toArray(); diff --git a/src/core/package/packageInstallers/InstallPackage.ts b/src/core/package/packageInstallers/InstallPackage.ts index 644d1480a..74b5b5264 100644 --- a/src/core/package/packageInstallers/InstallPackage.ts +++ b/src/core/package/packageInstallers/InstallPackage.ts @@ -309,8 +309,9 @@ export abstract class InstallPackage { private async executePostDeployers() { SFPLogger.log(`Executing Post Deployers`, LoggerLevel.INFO, this.logger); + const isDataPackage = this.sfpPackage.packageType == PackageType.Data; //Gather componentSet - let componentSet = ComponentSet.fromSource( + let componentSet = isDataPackage? undefined:ComponentSet.fromSource( path.join(this.sfpPackage.projectDirectory, this.sfpPackage.packageDirectory) ); @@ -325,10 +326,10 @@ export abstract class InstallPackage { await postDeployer.execute( this.sfpPackage, - componentSet, this.sfpOrg, this.logger, - {apiVersion:this.options.apiVersion,waitTime:this.options.waitTime} + {apiVersion:this.options.apiVersion,waitTime:this.options.waitTime}, + componentSet ); } else { @@ -356,8 +357,9 @@ export abstract class InstallPackage { private async executePreDeployers() { SFPLogger.log(`Executing Pre Deployers`, LoggerLevel.INFO, this.logger); + const isDataPackage = this.sfpPackage.packageType == PackageType.Data; //Gather componentSet - let componentSet = ComponentSet.fromSource( + let componentSet = isDataPackage? undefined : ComponentSet.fromSource( path.join(this.sfpPackage.projectDirectory, this.sfpPackage.packageDirectory) ); @@ -366,7 +368,7 @@ export abstract class InstallPackage { if(await analyzer.isEnabled(this.sfpPackage, this.logger)) { SFPLogger.log(`Executing ${COLOR_KEY_MESSAGE(analyzer.getName())}`, LoggerLevel.INFO, this.logger); - this.sfpPackage = await analyzer.analyze(this.sfpPackage,componentSet, this.logger); + this.sfpPackage = await analyzer.analyze(this.sfpPackage, this.logger, componentSet); } else { @@ -385,10 +387,10 @@ export abstract class InstallPackage { await preDeployer.execute( this.sfpPackage, - componentSet, this.sfpOrg, this.logger, - {apiVersion:this.options.apiVersion,waitTime:this.options.waitTime} + {apiVersion:this.options.apiVersion,waitTime:this.options.waitTime}, + componentSet ); } else { diff --git a/tests/core/package/analysers/FHTAnalyzer.test.ts b/tests/core/package/analysers/FHTAnalyzer.test.ts index 51d372c86..b14d10889 100644 --- a/tests/core/package/analysers/FHTAnalyzer.test.ts +++ b/tests/core/package/analysers/FHTAnalyzer.test.ts @@ -116,7 +116,7 @@ describe('FHT Analyzer', () => { return ''; }, }; - sfpPackage = await fhtAnalyzer.analyze(sfpPackage,set,new VoidLogger()); + sfpPackage = await fhtAnalyzer.analyze(sfpPackage, new VoidLogger(), set); expect(sfpPackage['isFHTFieldFound']).toBe(true); expect(sfpPackage['fhtFields']).toBeDefined(); let fhtFields = sfpPackage['fhtFields']; @@ -193,7 +193,7 @@ describe('FHT Analyzer', () => { return ''; }, }; - sfpPackage = await fhtAnalyzer.analyze(sfpPackage,set,new VoidLogger()); + sfpPackage = await fhtAnalyzer.analyze(sfpPackage, new VoidLogger(), set); expect(sfpPackage['isFHTFieldFound']).toBe(true); expect(sfpPackage['fhtFields']).toBeDefined(); let fhtFields = sfpPackage['fhtFields']; @@ -272,7 +272,7 @@ describe('FHT Analyzer', () => { return ''; }, }; - sfpPackage = await fhtAnalyzer.analyze(sfpPackage,set,new VoidLogger()); + sfpPackage = await fhtAnalyzer.analyze(sfpPackage, new VoidLogger(), set); expect(sfpPackage['isFHTFieldFound']).toBe(true); expect(sfpPackage['fhtFields']).toBeDefined(); let fhtFields = sfpPackage['fhtFields']; @@ -351,7 +351,7 @@ describe('FHT Analyzer', () => { return ''; }, }; - sfpPackage = await fhtAnalyzer.analyze(sfpPackage,set,new VoidLogger()); + sfpPackage = await fhtAnalyzer.analyze(sfpPackage, new VoidLogger(), set); expect(sfpPackage['isFHTFieldFound']).toBe(true); expect(sfpPackage['fhtFields']).toBeDefined(); let fhtFields = sfpPackage['fhtFields']; diff --git a/tests/core/package/analysers/FTAnalyzer.test.ts b/tests/core/package/analysers/FTAnalyzer.test.ts index eb84dd3c8..ada630f4f 100644 --- a/tests/core/package/analysers/FTAnalyzer.test.ts +++ b/tests/core/package/analysers/FTAnalyzer.test.ts @@ -116,7 +116,7 @@ describe('FT Analyzer', () => { return ''; }, }; - sfpPackage = await ftAnalyzer.analyze(sfpPackage,set,new VoidLogger()); + sfpPackage = await ftAnalyzer.analyze(sfpPackage,new VoidLogger(),set); expect(sfpPackage['isFTFieldFound']).toBe(true); expect(sfpPackage['ftFields']).toBeDefined(); let ftFields = sfpPackage['ftFields']; @@ -194,7 +194,7 @@ describe('FT Analyzer', () => { return ''; }, }; - sfpPackage = await ftAnalyzer.analyze(sfpPackage,set,new VoidLogger()); + sfpPackage = await ftAnalyzer.analyze(sfpPackage, new VoidLogger(), set); expect(sfpPackage['isFTFieldFound']).toBe(true); expect(sfpPackage['ftFields']).toBeDefined(); let ftFields = sfpPackage['ftFields']; @@ -274,7 +274,7 @@ describe('FT Analyzer', () => { return ''; }, }; - sfpPackage = await ftAnalyzer.analyze(sfpPackage,set,new VoidLogger()); + sfpPackage = await ftAnalyzer.analyze(sfpPackage, new VoidLogger(), set); expect(sfpPackage['isFTFieldFound']).toBe(true); expect(sfpPackage['ftFields']).toBeDefined(); let ftFields = sfpPackage['ftFields']; @@ -354,7 +354,7 @@ describe('FT Analyzer', () => { return ''; }, }; - sfpPackage = await ftAnalyzer.analyze(sfpPackage,set,new VoidLogger()); + sfpPackage = await ftAnalyzer.analyze(sfpPackage, new VoidLogger(), set); expect(sfpPackage['isFTFieldFound']).toBe(true); expect(sfpPackage['ftFields']).toBeDefined(); let ftFields = sfpPackage['ftFields'];