smc-hub
Version:
CoCalc: Backend webserver component
47 lines (46 loc) • 1.64 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from "events";
import { ProjectState, ProjectStatus } from "smc-util/db-schema/projects";
export type { ProjectState, ProjectStatus };
export declare type Action = "open" | "start" | "stop" | "restart";
export declare function getProject(project_id: string): BaseProject | undefined;
export declare abstract class BaseProject extends EventEmitter {
readonly project_id: string;
is_ready: boolean;
is_freed: boolean;
protected stateChanging: ProjectState | undefined;
constructor(project_id: string);
protected siteLicenseHook(): Promise<void>;
protected saveStateToDatabase(state: ProjectState): Promise<void>;
protected saveStatusToDatabase(status: ProjectStatus): Promise<void>;
dbg(f: string): (string?: any) => void;
abstract state(): Promise<ProjectState>;
abstract status(): Promise<ProjectStatus>;
abstract start(): Promise<void>;
abstract stop(): Promise<void>;
restart(): Promise<void>;
protected wait(opts: {
until: () => Promise<boolean>;
maxTime: number;
}): Promise<void>;
address(): Promise<{
host: string;
port: number;
secret_token: string;
}>;
abstract copyPath(opts: CopyOptions): Promise<string>;
setAllQuotas(): Promise<void>;
}
export interface CopyOptions {
path: string;
target_project_id?: string;
target_path?: string;
overwrite_newer?: boolean;
delete_missing?: boolean;
backup?: boolean;
timeout?: number;
bwlimit?: number;
wait_until_done?: boolean;
scheduled?: string | Date;
public?: boolean;
}