@xec-sh/core
Version:
Universal shell execution engine
48 lines (47 loc) • 1.9 kB
TypeScript
import type { KubernetesAdapterOptions } from '../core/command.js';
import type { ProcessPromise, ExecutionEngine } from '../core/execution-engine.js';
export interface K8sPortForward {
localPort: number;
remotePort: number;
isOpen: boolean;
open(): Promise<void>;
close(): Promise<void>;
}
export interface K8sLogStream {
stop(): void;
}
export interface K8sPod {
name: string;
namespace: string;
exec(strings: TemplateStringsArray, ...values: any[]): ProcessPromise;
raw(strings: TemplateStringsArray, ...values: any[]): ProcessPromise;
portForward(localPort: number, remotePort: number): Promise<K8sPortForward>;
portForwardDynamic(remotePort: number): Promise<K8sPortForward>;
logs(options?: {
container?: string;
tail?: number;
previous?: boolean;
timestamps?: boolean;
}): Promise<string>;
streamLogs(onData: (data: string) => void, options?: {
container?: string;
follow?: boolean;
tail?: number;
previous?: boolean;
timestamps?: boolean;
}): Promise<K8sLogStream>;
follow(onData: (data: string) => void, options?: {
container?: string;
tail?: number;
timestamps?: boolean;
}): Promise<K8sLogStream>;
copyTo(localPath: string, remotePath: string, container?: string): Promise<void>;
copyFrom(remotePath: string, localPath: string, container?: string): Promise<void>;
}
export interface K8sExecutionContext {
(strings: TemplateStringsArray, ...values: any[]): ProcessPromise;
pod(name: string): K8sPod;
exec(strings: TemplateStringsArray, ...values: any[]): ProcessPromise;
raw(strings: TemplateStringsArray, ...values: any[]): ProcessPromise;
}
export declare function createK8sExecutionContext(engine: ExecutionEngine, k8sOptions: Partial<Omit<KubernetesAdapterOptions, 'type'>>): K8sExecutionContext;