Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 82x 2x 15x 15x 104x 104x 5x 5x 5x 82x | /* * Copyright 2021 Harness Inc. All rights reserved. * Use of this source code is governed by the PolyForm Shield 1.0.0 license * that can be found in the licenses directory at the root of this repository, also available at * https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt. */ import type { UseStringsReturn } from 'framework/strings' import type { PipelineStageProps } from '@pipeline/components/PipelineStages/PipelineStage' import type { StageAttributes, StagesMap } from '../PipelineContext/PipelineContext' export type StageFactory = ( isEnabled: boolean, getString: UseStringsReturn['getString'] ) => React.ReactElement<PipelineStageProps> export type StageAttributesFactory = (getString: UseStringsReturn['getString']) => StageAttributes class StagesCollection { protected stagesByType = new Map< string, { stageFactory: StageFactory; stageAttributesFactory: StageAttributesFactory } >() registerStageFactory( stageType: string, stageAttributesFactory: StageAttributesFactory, stageFactory: StageFactory ): void { this.stagesByType.set(stageType, { stageFactory, stageAttributesFactory }) } getStage( stageType: string, isEnabled: boolean, getString: UseStringsReturn['getString'] ): React.ReactElement<PipelineStageProps> | null { const stageFactories = this.stagesByType.get(stageType) return stageFactories?.stageFactory(isEnabled, getString) || null } getStageAttributes(stageType: string, getString: UseStringsReturn['getString']): StageAttributes | undefined { const stageFactories = this.stagesByType.get(stageType) return stageFactories?.stageAttributesFactory(getString) } getAllStagesAttributes(getString: UseStringsReturn['getString']): StagesMap { const stagesMap: StagesMap = {} this.stagesByType.forEach((value, key) => { stagesMap[key] = value.stageAttributesFactory(getString) }) return stagesMap } } export const stagesCollection = new StagesCollection() |