@ossjs/release
Version:
Minimalistic, opinionated, and predictable release automation tool.
25 lines (19 loc) • 615 B
text/typescript
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<Argv extends Record<string, any> = {}> {
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<void> => {}
}