ecs-pf
Version:
CLI for port-forwarding to RDS via AWS ECS
131 lines (130 loc) • 4.58 kB
JavaScript
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");
}