@manuth/woltlab-compiler
Version:
A compiler for generating WoltLab-Package `.tar` Archives and other WoltLab-Package Components
69 lines (68 loc) • 1.97 kB
TypeScript
import { IInstruction } from "../../../PackageSystem/Instructions/IInstruction.js";
import { Compiler } from "../../Compiler.js";
/**
* Provides the functionality to compile an instruction.
*
* @template T
* The type of the instruction which can be compiled by this compiler.
*/
export declare class InstructionCompiler<T extends IInstruction> extends Compiler<T> {
/**
* Initializes a new instance of the {@link InstructionCompiler `InstructionCompiler<T>`} class.
*
* @param instruction
* The instruction to compile.
*/
constructor(instruction: T);
/**
* Gets the name of the file to write the compiled item to.
*/
get DestinationFileName(): string;
/**
* Returns an xml-{@link Document `Document`} which represents the compiled instruction.
*
* @returns
* The serialized document.
*/
Serialize(): Document;
/**
* @inheritdoc
*/
protected Compile(): Promise<void>;
/**
* Copies files using `ejs`.
*
* @param source
* The source to copy the files from.
*
* @param destination
* The destination to copy the files to.
*
* @param context
* The context to use.
*
* @param delimiter
* The delimiter of the ejs-tags.
*/
protected CopyTemplate(source: string, destination: string, context?: Record<string, unknown>, delimiter?: string): Promise<void>;
/**
* Joins the paths and returns the path contained by the package-folder.
*
* @param path
* The path that is to be joined.
*
* @returns
* The joined path relative to the package-folder.
*/
protected MakePackagePath(...path: string[]): string;
/**
* @inheritdoc
*
* @param path
* The path that is to be joined.
*
* @returns
* The joined path relative to the destination-folder.
*/
protected MakeDestinationPath(...path: string[]): string;
}