@twg-group/container-manager
Version:
Container management for Docker, Swarm, Kubernetes
23 lines (22 loc) • 909 B
TypeScript
import { DeployConfigDto, InfoDto, LogDto } from '@dto';
import { Logger } from '@twg-group/nestjs-logger';
export interface StrategyError extends Error {
statusCode?: number;
json?: {
message?: string;
};
}
export declare abstract class BaseStrategy {
protected readonly logger: Logger;
constructor(logger: Logger);
abstract start(id: string): Promise<void>;
abstract stop(id: string, timeout?: number): Promise<void>;
abstract deploy(config: DeployConfigDto): Promise<string>;
abstract list(): Promise<InfoDto[]>;
abstract remove(id: string): Promise<void>;
abstract logs(id: string, since?: string, tail?: number): Promise<LogDto[]>;
protected validateConfig(config: DeployConfigDto): void;
private validatePortUniqueness;
protected generateName(prefix?: string): string;
protected handleError(error: unknown, context?: string): never;
}