diff --git a/index.d.ts b/index.d.ts index ffe250769..ab378243d 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,4 +1,5 @@ import type { EventEmitter2 } from "eventemitter2"; +import type { Worker } from "cluster"; declare namespace Moleculer { /** @@ -1834,6 +1835,158 @@ declare namespace Moleculer { function makeDirs(path: string): void; function parseByteString(value: string): number; } + + /** + * Parsed CLI flags + */ + interface RunnerFlags { + + /** + * Path to load configuration from a file + */ + config?: string; + + /** + * Start REPL mode + */ + repl?: boolean; + + /** + * Enable hot reload mode + */ + hot?: boolean; + + /** + * Silent mode. No logger + */ + silent?: boolean; + + /** + * Load .env file from current directory + */ + env?: boolean; + + /** + * Load .env files by glob pattern + */ + envfile?: string; + + /** + * Number of node instances to start in cluster mode + */ + instances?: number; + + /** + * File mask for loading services + */ + mask?: string; + + } + + /** + * Moleculer Runner + */ + class Runner { + worker: Worker | null; + broker: ServiceBroker | null; + + /** + * Watch folders for hot reload + */ + watchFolders: string[]; + + /** + * Parsed CLI flags + */ + flags: RunnerFlags | null; + + /** + * Loaded configuration file + */ + configFile: Partial; + + /** + * Merged configuration + */ + config: Partial; + + /** + * Process command line arguments + */ + processFlags(args: string[]): void; + + /** + * Load environment variables from '.env' file + */ + loadEnvFile(): void; + + /** + * Load configuration file + * + * Try to load a configuration file in order to: + * + * - load file defined in MOLECULER_CONFIG env var + * - try to load file which is defined in CLI option with --config + * - try to load the `moleculer.config.js` file if exist in the cwd + * - try to load the `moleculer.config.json` file if exist in the cwd + */ + loadConfigFile(): Promise; + + /** + * Normalize a value from env variable + */ + normalizeEnvValue(value: string): string | number | boolean; + + /** + * Overwrite config values from environment variables + */ + overwriteFromEnv(obj: any, prefix?: string): any; + + /** + * Merge broker options from config file & env variables + */ + mergeOptions(): void; + + /** + * Check if a path is a directory + */ + isDirectory(path: string): boolean; + + /** + * Check if a path is a service file + */ + isServiceFile(path: string): boolean; + + /** + * Load services from files or directories + */ + loadServices(): void; + + /** + * Start cluster workers + */ + startWorkers(instances: number): void; + + /** + * Load service from NPM module + */ + loadNpmModule(name: string): Service; + + /** + * Start Moleculer broker + */ + startBroker(): Promise; + + /** + * Restart broker + */ + restartBroker(): Promise; + + /** + * Start runner + */ + start(args: string[]): Promise; + } } export = Moleculer;