@wocker/core
Version:
Core of the Wocker
54 lines (53 loc) • 2.31 kB
TypeScript
import { PickProperties, EnvConfig } from "../types";
export type ProjectType = typeof PROJECT_TYPE_DOCKERFILE | typeof PROJECT_TYPE_IMAGE | typeof PROJECT_TYPE_PRESET | typeof PROJECT_TYPE_COMPOSE;
export type ProjectProperties = Omit<PickProperties<Project>, "containerName" | "domains">;
export declare abstract class Project {
id: string;
name: string;
type: ProjectType;
path: string;
preset?: string;
presetMode?: "global" | "project";
imageName?: string;
dockerfile?: string;
composefile?: string;
scripts?: string[];
buildArgs?: EnvConfig;
env?: EnvConfig;
extraHosts?: EnvConfig;
metadata?: EnvConfig;
ports?: string[];
volumes?: string[];
constructor(data: ProjectProperties);
get containerName(): string;
get domains(): string[];
hasDomain(domain: string): boolean;
addDomain(addDomain: string): void;
removeDomain(removeDomain: string): void;
clearDomains(): void;
linkPort(hostPort: number, containerPort: number): void;
unlinkPort(hostPort: number, containerPort: number): void;
hasEnv(name: string): boolean;
getEnv(name: string, defaultValue?: string): string | undefined;
setEnv(name: string, value: string | boolean): void;
unsetEnv(name: string): void;
hasMeta(name: string): boolean;
getMeta<D = string | undefined>(name: string, defaultValue?: D): D;
setMeta(name: string, value: string | boolean): void;
unsetMeta(name: string): void;
getVolumeBySource(source: string): string | undefined;
getVolumeByDestination(destination: string): string | undefined;
volumeMount(...volumes: string[]): void;
volumeUnmount(...volumes: string[]): void;
addExtraHost(host: string, domain: string): void;
removeExtraHost(host: string): void;
abstract getSecret(key: string, byDefault: string): Promise<string>;
abstract getSecret(key: string, byDefault?: string): Promise<string | undefined>;
abstract setSecret(key: string, value: string): Promise<void>;
abstract save(): void;
toObject(): ProjectProperties;
}
export declare const PROJECT_TYPE_DOCKERFILE = "dockerfile";
export declare const PROJECT_TYPE_IMAGE = "image";
export declare const PROJECT_TYPE_PRESET = "preset";
export declare const PROJECT_TYPE_COMPOSE = "compose";