import type { BuilderCallback } from 'yargs' import { log } from '#/src/logger.js' import type { Config } from '#/src/utils/get-config.js' export interface DefaultArgv { _: (number | string)[] } export abstract class Command = {}> { static readonly command: string static readonly description: string static readonly builder: BuilderCallback<{}, any> = () => {} protected log: typeof log constructor( protected readonly config: Config, protected readonly argv: DefaultArgv & Argv, ) { this.log = log } public run = async (): Promise => {} }