UNPKG

@kubb/core

Version:

Core functionality for Kubb's plugin-based code generation system, providing the foundation for transforming OpenAPI specifications.

35 lines (27 loc) 792 B
/** * Abstract class that contains the building blocks for plugins to create their own Generator * @link idea based on https://github.com/colinhacks/zod/blob/master/src/types.ts#L137 */ export abstract class BaseGenerator<TOptions = unknown, TContext = unknown> { #options: TOptions = {} as TOptions #context: TContext = {} as TContext constructor(options?: TOptions, context?: TContext) { if (context) { this.#context = context } if (options) { this.#options = options } return this } get options(): TOptions { return this.#options } get context(): TContext { return this.#context } set options(options: TOptions) { this.#options = { ...this.#options, ...options } } abstract build(...params: unknown[]): unknown }