UNPKG

@manuth/generator-wsc-package

Version:

A Generator for WoltLab Suite Core Packages.

106 lines (105 loc) 3.93 kB
/// <reference types="yeoman-generator" /> import { GeneratorOptions } from "@manuth/extended-yo-generator"; import { ArrayLiteralExpression, NewExpression, ObjectLiteralExpression, SourceFile } from "ts-morph"; import { InstructionComponent } from "../../../Components/InstructionComponent.js"; import { WoltLabTypeScriptFileMapping } from "../../../FileMappings/WoltLabTypeScriptFileMapping.js"; import { IWoltLabSettings } from "../../../Settings/IWoltLabSettings.js"; import { WoltLabPackageGenerator } from "../WoltLabPackageGenerator.js"; /** * Provides the functionality to generate a package-file. * * @template TSettings * The type of the generator-settings. * * @template TOptions * The type of the generator-options. */ export declare class WoltLabPackageFileMapping<TSettings extends IWoltLabSettings, TOptions extends GeneratorOptions> extends WoltLabTypeScriptFileMapping<TSettings, TOptions> { /** * The generator of the file-mapping. */ private packageGenerator; /** * Initializes a new instance of the {@link WoltLabPackageFileMapping `WoltLabPackageFileMapping<TSettings, TOptions>`} class. * * @param generator * The component to create an instruction-file for. */ constructor(generator: WoltLabPackageGenerator<TSettings, TOptions>); /** * @inheritdoc */ get Generator(): WoltLabPackageGenerator<TSettings, TOptions>; /** * @inheritdoc */ get Destination(): string; /** * Gets the creation-date for the package-metadata. */ protected get CreationDate(): string; /** * Gets options to pass to the constructor of the {@link RequiredPackageDescriptor `RequiredPackageDescriptor`} class. */ protected get RequiredPackageOptions(): ObjectLiteralExpression; /** * Gets a constructor-call of the {@link RequiredPackageDescriptor `RequiredPackageDescriptor`} class. */ protected get RequiredPackageConstructor(): NewExpression; /** * Gets options to pass to the constructor of the {@link ConflictingPackageDescriptor `ConflictingPackageDescriptor`} class. */ protected get ConflictingPackageOptions(): ObjectLiteralExpression; /** * Gets a constructor-call of the {@link ConflictingPackageDescriptor `ConflictingPackageDescriptor`} class. */ protected get ConflictingPackageConstructor(): NewExpression; /** * Gets the options to pass to the package-constructor. */ protected get PackageOptions(): ObjectLiteralExpression; /** * Gets an {@link ObjectLiteralExpression `ObjectLiteralExpression`}-node. * * @returns * The newly created {@link ObjectLiteralExpression `ObjectLiteralExpression`}. */ protected GetObjectLiteral(): ObjectLiteralExpression; /** * Gets a constructor-call. * * @param className * The name of the class to create a constructor for. * * @returns * The newly created constructor-call. */ protected GetConstructorCall(className: string): NewExpression; /** * Gets an {@link ArrayLiteralExpression `ArrayLiteralExpression`}-node. * * @returns * The newly created {@link ArrayLiteralExpression `ArrayLiteralExpression`}. */ protected GetArrayLiteral(): ArrayLiteralExpression; /** * Registers the specified {@link component `component`}. * * @param file * The file to register the specified {@link component `component`} to. * * @param component * The component to register. */ protected AddComponent(file: SourceFile, component: InstructionComponent<TSettings, TOptions, any>): Promise<void>; /** * @inheritdoc * * @param file * The {@link SourceFile `SourceFile`} to transform. * * @returns * The transformed file. */ protected Transform(file: SourceFile): Promise<SourceFile>; }