@manuth/generator-wsc-package
Version:
A Generator for WoltLab Suite Core Packages.
106 lines (105 loc) • 3.93 kB
TypeScript
/// <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>;
}