@manuth/generator-wsc-package
Version:
A Generator for WoltLab Suite Core Packages.
107 lines (106 loc) • 3.8 kB
TypeScript
/// <reference types="yeoman-generator" />
import { GeneratorOptions, IFileMapping, Question } from "@manuth/extended-yo-generator";
import { IPathQuestion, SetQuestion } from "@manuth/generator-ts-project";
import { AsyncDynamicQuestionProperty, ListQuestion } from "inquirer";
import { FileUploadComponentBase } from "../../../Components/FileUploadComponentBase.js";
import { IApplicationQuestion } from "../../../Components/Inquiry/Prompts/IApplicationQuestion.js";
import { IWoltLabSettings } from "../../../Settings/IWoltLabSettings.js";
import { WoltLabGenerator } from "../../../WoltLabGenerator.js";
import { IPHPScriptComponentOptions } from "../Settings/IPHPScriptComponentOptions.js";
/**
* Provides a component for uploading or executing php-scripts.
*
* @template TSettings
* The type of the settings of the generator.
*
* @template TOptions
* The type of the options of the generator.
*
* @template TComponentOptions
* The type of the options of the component.
*/
export declare class PHPScriptComponent<TSettings extends IWoltLabSettings, TOptions extends GeneratorOptions, TComponentOptions extends IPHPScriptComponentOptions> extends FileUploadComponentBase<TSettings, TOptions, TComponentOptions> {
/**
* Initializes a new instance of the {@link PHPScriptComponent `PHPScriptComponent<TSettings, TOptions, TComponentOptions>`} class.
*
* @param generator
* The generator of the component.
*/
constructor(generator: WoltLabGenerator<TSettings, TOptions>);
/**
* @inheritdoc
*/
get ID(): string;
/**
* @inheritdoc
*/
get DisplayName(): string;
/**
* @inheritdoc
*/
protected get DefaultSourceBaseName(): string;
/**
* Gets a question for asking whether the script-file is self-contained.
*/
protected get ScriptTypeQuestion(): ListQuestion<TComponentOptions>;
/**
* @inheritdoc
*/
protected get AppQuestion(): IApplicationQuestion<TComponentOptions>;
/**
* Gets a question for asking for the existing script's location.
*/
protected get LocationQuestion(): SetQuestion<TComponentOptions, TSettings>;
/**
* @inheritdoc
*/
protected get SourceQuestion(): IPathQuestion<TComponentOptions>;
/**
* @inheritdoc
*/
protected get ComponentOptionQuestionCollection(): Array<Question<TComponentOptions>>;
/**
* @inheritdoc
*/
protected get InstructionFileMapping(): IFileMapping<TSettings, TOptions>;
/**
* @inheritdoc
*/
get FileMappings(): Array<IFileMapping<TSettings, TOptions>>;
/**
* @inheritdoc
*
* @param options
* The options which have been provided by the user.
*
* @returns
* The name of the instruction-class.
*/
protected GetClassName(options: TComponentOptions): string;
/**
* @inheritdoc
*
* @param options
* The options of the component.
*
* @returns
* The default full name of the path to suggest in the {@link PHPScriptComponent.SourceQuestion `SourceQuestion`}.
*/
protected GetDefaultSource(options: TComponentOptions): string;
/**
* Gets a predicate for checking whether the php-script is self-contained.
*
* @param options
* The options provided by the user.
*
* @param expected
* A value indicating whether the php-script must be self-contained for passing the predicate.
*
* @param base
* The base of the predicate.
*
* @returns
* A predicate for checking whether the php-script is self-contained.
*/
protected GetSelfContainedPredicate(options: TComponentOptions, expected: boolean, base?: AsyncDynamicQuestionProperty<boolean, TComponentOptions>): Promise<boolean>;
}