UNPKG

@wocker/core

Version:
54 lines (53 loc) 2.31 kB
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";