UNPKG

ecs-pf

Version:

CLI for port-forwarding to RDS via AWS ECS

131 lines (130 loc) 4.58 kB
import { safeParse } from "valibot"; import { isTaskArnShape } from "../regex.js"; import { ClusterArnSchema, ClusterNameSchema, ContainerNameSchema, DatabaseEngineSchema, DBEndpointSchema, DBInstanceIdentifierSchema, DBInstanceStatusSchema, failure, PortSchema, RegionNameSchema, RuntimeIdSchema, ServiceArnSchema, ServiceNameSchema, success, TaskArnSchema, TaskIdSchema, TaskStatusSchema, } from "./branded.js"; import { HandleConnectionParamsSchema, ProcessClusterServicesParamsSchema, SelectionStateSchema, } from "./schemas.js"; export function parseClusterName(name) { const result = safeParse(ClusterNameSchema, name); if (result.success) { return success(result.output); } return failure("Invalid cluster name"); } export function parseClusterArn(arn) { const result = safeParse(ClusterArnSchema, arn); if (result.success) { return success(result.output); } return failure("Invalid cluster ARN"); } export function parseTaskArn(arn) { const result = safeParse(TaskArnSchema, arn); if (isTaskArnShape(arn) && result.success) { return success(result.output); } return failure("Invalid task ARN"); } export function parseRegionName(name) { const result = safeParse(RegionNameSchema, name); if (result.success) { return success(result.output); } return failure("Invalid region name"); } export function parseServiceName(name) { const result = safeParse(ServiceNameSchema, name); if (result.success) { return success(result.output); } return failure("Invalid service name"); } export function parseServiceArn(arn) { const result = safeParse(ServiceArnSchema, arn); if (result.success) { return success(result.output); } return failure("Invalid service ARN"); } export function parseTaskId(id) { const result = safeParse(TaskIdSchema, id); if (result.success) { return success(result.output); } return failure("Invalid task ID"); } export function parseRuntimeId(id) { const result = safeParse(RuntimeIdSchema, id); if (result.success) { return success(result.output); } return failure("Invalid runtime ID"); } export function parseDatabaseEngine(engine) { const result = safeParse(DatabaseEngineSchema, engine); if (result.success) { return success(result.output); } return failure("Invalid database engine"); } export function parseContainerName(name) { const result = safeParse(ContainerNameSchema, name); if (result.success) { return success(result.output); } return failure("Invalid container name"); } export function parseDBInstanceIdentifier(id) { const result = safeParse(DBInstanceIdentifierSchema, id); if (result.success) { return success(result.output); } return failure("Invalid DB instance identifier"); } export function parseDBEndpoint(endpoint) { const result = safeParse(DBEndpointSchema, endpoint); if (result.success) { return success(result.output); } return failure("Invalid DB endpoint"); } export function parsePort(port) { const result = safeParse(PortSchema, port); if (result.success) { return success(result.output); } return failure(result.issues.map((issue) => issue.message).join(", ")); } export function parseTaskStatus(status) { const result = safeParse(TaskStatusSchema, status); if (result.success) { return success(result.output); } return failure(`Invalid task status: ${status}`); } export function parseDBInstanceStatus(status) { const result = safeParse(DBInstanceStatusSchema, status); if (result.success) { return success(result.output); } return failure(`Invalid DB instance status: ${status}`); } export function parseSelectionState(state) { const result = safeParse(SelectionStateSchema, state); if (result.success) { return success(result.output); } return failure(`Invalid selection state: ${state}`); } export function parseHandleConnectionParams(params) { const result = safeParse(HandleConnectionParamsSchema, params); if (result.success) { return success(result.output); } return failure(`Invalid handle connection params: ${params}`); } export function parseProcessClusterServicesParams(params) { const result = safeParse(ProcessClusterServicesParamsSchema, params); if (result.success) { return success(result.output); } return failure("Invalid process cluster services parameters"); }