k8s-deploy/src/inputUtils.ts
David Gamero 99510dff95
case-insensitive resource type (#398)
* case-insensitive resource type

* inline error and throw outside switch

* consistent input naming

* catch failed clustertype parse

* protect raw input

* naming

* format
2025-04-16 11:47:29 -04:00

33 lines
1.1 KiB
TypeScript

import * as core from '@actions/core'
import {parseAnnotations} from './types/annotations'
import {ResourceTypeFleet, ResourceTypeManagedCluster} from './actions/deploy'
export const inputAnnotations = parseAnnotations(
core.getInput('annotations', {required: false})
)
export function getBufferTime(): number {
const inputBufferTime = parseInt(
core.getInput('version-switch-buffer') || '0'
)
if (inputBufferTime < 0 || inputBufferTime > 300)
throw Error('Version switch buffer must be between 0 and 300 (inclusive)')
return inputBufferTime
}
export function parseResourceTypeInput(rawInput: string): ClusterType {
switch (rawInput.toLowerCase()) {
case ResourceTypeFleet.toLowerCase():
return ResourceTypeFleet
case ResourceTypeManagedCluster.toLowerCase():
return ResourceTypeManagedCluster
}
throw new Error(
`Invalid resource type: ${rawInput}. Supported resource types are: ${ResourceTypeManagedCluster} (default), ${ResourceTypeFleet}`
)
}
export type ClusterType =
| typeof ResourceTypeManagedCluster
| typeof ResourceTypeFleet