UNPKG

@zero-scripts/core

Version:

Framework for creating presets, configurations and extensions

41 lines 1.42 kB
"use strict"; // type ExtractValue<T extends Rule<string>[]> = { // [K in keyof T]: T[K] extends Rule<infer V> ? V : never // }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Task = void 0; class Task { // public readonly argumentsRules: Rule<string>[] = []; // public readonly optionsRules: Record<string, Rule<string | boolean>> = {}; constructor(name) { this.name = name; } // public expectOption<TKey extends string, TValue extends string | boolean>( // key: TKey, // validationRule: Rule<TValue>, // description?: string // ): Task<TOptions & { [K in TKey]: TValue }, _TArgs> { // this.optionsRules[key] = validationRule as Rule<string | boolean>; // return this as any; // } // public expectArguments<T extends Rule<string>[]>( // ...validationRules: T // ): Task<TOptions, ExtractValue<T>> { // validationRules.forEach(rule => // this.argumentsRules.push(rule as Rule<string>) // ); // return this as any; // } handle(handler) { this._handler = handler; return this; } run(args, options) { if (!this._handler) { throw new Error(`Handler for task ${this.name} is not found`); } return this._handler(args, options); } } exports.Task = Task; //# sourceMappingURL=Task.js.map