UNPKG

@manuth/generator-wsc-package

Version:

A Generator for WoltLab Suite Core Packages.

72 lines (71 loc) 2.66 kB
/// <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; }