@elsikora/setup-wizard
Version:
Setup Wizard - CLI scaffolding utility
39 lines (38 loc) • 1.61 kB
TypeScript
import type { ICliInterfaceService } from "../../application/interface/cli-interface-service.interface";
import type { IConfigService } from "../../application/interface/config-service.interface";
import type { IFileSystemService } from "../../application/interface/file-system-service.interface";
import type { IModuleSetupResult } from "../../application/interface/module-setup-result.interface";
/**
* Interface for module services that can be installed/configured.
* Provides methods for handling module installation and configuration.
*/
export interface IModuleService {
/**
* CLI interface service for user interaction.
*/
CLI_INTERFACE_SERVICE: ICliInterfaceService;
/**
* Configuration service for managing app configuration
*/
CONFIG_SERVICE: IConfigService;
/**
* File system service for file operations.
*/
FILE_SYSTEM_SERVICE: IFileSystemService;
/**
* Handles the case when the module is already installed.
* @returns Promise that resolves to true if the existing setup was handled successfully,
* false if it should be reinstalled or reconfigured
*/
handleExistingSetup(): Promise<boolean>;
/**
* Installs and configures the module.
* @returns Promise that resolves to the module setup result containing configuration details
*/
install(): Promise<IModuleSetupResult>;
/**
* Determines whether the module should be installed.
* @returns Promise that resolves to true if the module should be installed, false otherwise
*/
shouldInstall(): Promise<boolean>;
}