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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | 145x 145x 145x 145x 145x 145x 145x 145x 23x 145x 3x 3x 3x 145x 34x 145x 1x 145x 8x 4x 4x 145x 2x 2x 2x 2x 2x 2x 2x 145x 2x 1x 1x 1x 1x 1x 1x 1x | /* * Copyright 2022 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 { defaultTo, get, isEmpty, set, unset } from 'lodash-es' import produce from 'immer' import { parse } from 'yaml' import type { PipelineInfoConfig, StageElementConfig, StepElementConfig, TemplateLinkConfig } from 'services/cd-ng' import type { TemplateSummaryResponse } from 'services/template-ng' import { getIdentifierFromValue, getScopeFromDTO } from '@common/components/EntityReference/EntityReference' import { Scope } from '@common/interfaces/SecretsInterface' import type { StepType } from '@pipeline/components/PipelineSteps/PipelineStepInterface' import type { TemplateStepNode } from 'services/pipeline-ng' import type { StageType } from '@pipeline/utils/stageHelpers' import type { StepOrStepGroupOrTemplateStepData } from '@pipeline/components/PipelineStudio/StepCommands/StepCommandTypes' import { generateRandomString } from '@pipeline/components/PipelineStudio/ExecutionGraph/ExecutionGraphUtil' export const TEMPLATE_INPUT_PATH = 'template.templateInputs' export const getTemplateNameWithLabel = (template?: TemplateSummaryResponse): string => { return `${(template as TemplateSummaryResponse)?.name} (${defaultTo(template?.versionLabel, 'Stable')})` } export const getScopeBasedTemplateRef = (template: TemplateSummaryResponse): string => { const templateIdentifier = defaultTo(template.identifier, '') const scope = getScopeFromDTO(template) return scope === Scope.PROJECT ? templateIdentifier : `${scope}.${templateIdentifier}` } export const getStageType = (stage?: StageElementConfig, templateTypes?: { [key: string]: string }): StageType => { return stage?.template ? templateTypes ? (get(templateTypes, getIdentifierFromValue(defaultTo(stage.template.templateRef, ''))) as StageType) : ((stage.template.templateInputs as StageElementConfig)?.type as StageType) : (stage?.type as StageType) } export const getStepType = (step?: StepElementConfig | TemplateStepNode): StepType => { return (step as TemplateStepNode)?.template ? (((step as TemplateStepNode).template.templateInputs as StepElementConfig)?.type as StepType) : ((step as StepElementConfig)?.type as StepType) } export const setTemplateInputs = ( data: TemplateStepNode | StageElementConfig | PipelineInfoConfig, templateInputs: TemplateLinkConfig['templateInputs'] ) => { if (isEmpty(templateInputs)) { unset(data, TEMPLATE_INPUT_PATH) } else { set(data, TEMPLATE_INPUT_PATH, templateInputs) } } export const createTemplate = <T extends PipelineInfoConfig | StageElementConfig | StepOrStepGroupOrTemplateStepData>( data?: T, template?: TemplateSummaryResponse ) => { return produce({} as T, draft => { draft.name = defaultTo(data?.name, '') draft.identifier = defaultTo(data?.identifier, '') Eif (template) { set(draft, 'template.templateRef', getScopeBasedTemplateRef(template)) Eif (template.versionLabel) { set(draft, 'template.versionLabel', template.versionLabel) } } }) } export const createStepNodeFromTemplate = (template: TemplateSummaryResponse, isCopied = false) => { return (isCopied ? produce(defaultTo(parse(defaultTo(template?.yaml, ''))?.template.spec, {}) as StepElementConfig, draft => { draft.name = defaultTo(template?.name, '') draft.identifier = generateRandomString(defaultTo(template?.name, '')) }) : produce({} as TemplateStepNode, draft => { draft.name = defaultTo(template?.name, '') draft.identifier = generateRandomString(defaultTo(template?.name, '')) set(draft, 'template.templateRef', getScopeBasedTemplateRef(template)) Eif (template.versionLabel) { set(draft, 'template.versionLabel', template.versionLabel) } })) as unknown as StepElementConfig } |