@manuth/generator-wsc-package
Version:
A Generator for WoltLab Suite Core Packages.
72 lines (71 loc) • 2.66 kB
TypeScript
/// <reference types="yeoman-generator" />
import { GeneratorOptions } from "@manuth/extended-yo-generator";
import { CallExpression, ObjectLiteralExpression, SourceFile } from "ts-morph";
import { InstructionComponent } from "../Components/InstructionComponent.js";
import { IWoltLabComponentOptions } from "../Settings/IWoltLabComponentOptions.js";
import { IWoltLabSettings } from "../Settings/IWoltLabSettings.js";
import { WoltLabTypeScriptFileMapping } from "./WoltLabTypeScriptFileMapping.js";
/**
* Provides the functionality to generate instruction-files.
*
* @template TSettings
* The type of the generator-settings.
*
* @template TOptions
* The type of the generator-options.
*
* @template TComponentOptions
* The type of the component-options.
*/
export declare class InstructionFileMapping<TSettings extends IWoltLabSettings, TOptions extends GeneratorOptions, TComponentOptions extends IWoltLabComponentOptions> extends WoltLabTypeScriptFileMapping<TSettings, TOptions> {
/**
* The component to create an instruction-file for.
*/
private component;
/**
* Initializes a new instance of the {@link InstructionFileMapping `InstructionFileMapping<TSettings, TOptions, TComponentOptions>`} class.
*
* @param component
* The component to create an instruction-file for.
*/
constructor(component: InstructionComponent<TSettings, TOptions, TComponentOptions>);
/**
* Gets the component to create an instruction-file for.
*/
protected get Component(): InstructionComponent<TSettings, TOptions, TComponentOptions>;
/**
* Gets the options to pass to the instruction-constructor.
*/
protected get InstructionOptions(): ObjectLiteralExpression;
/**
* @inheritdoc
*/
get Destination(): string;
/**
* @inheritdoc
*
* @param file
* The {@link SourceFile `SourceFile`} to transform.
*
* @returns
* The transformed file.
*/
protected Transform(file: SourceFile): Promise<SourceFile>;
/**
* Adds the prerequisites for using {@link join `path.join`} to the specified {@link sourceFile `sourceFile`}.
*
* @param sourceFile
* The file to add the prerequisites to.
*/
protected ApplyPathJoin(sourceFile: SourceFile): void;
/**
* Creates valid TypeScript-code for calling the {@link join `join`}-method.
*
* @param path
* The path to point to.
*
* @returns
* Valid TypeScript-code containing a {@link join `join`}-call for pointing to the specified {@link path `path`}.
*/
protected GetPathJoin(path: string): CallExpression;
}