UNPKG

@decaf-ts/utils

Version:

module management utils for decaf-ts

160 lines (159 loc) 5.64 kB
/** * @description Represents a color function in the Kleur library. * @summary The Color interface defines a function that can be called with or without arguments * to apply color styling to text or chain multiple color operations. * * @interface Color * @memberOf module:utils * */ export interface Color { /** * @description Applies the color to the given text. * @param {string | number} x - The text or number to be colored. * @return {string} The colored text. */ (x: string | number): string; /** * @description Allows chaining of multiple color operations. * @return {Kleur} The Kleur instance for method chaining. */ (): Kleur; } /** * @description Represents the main Kleur interface with all available color and style methods. * @summary The Kleur interface provides methods for applying various colors, background colors, * and text styles to strings in terminal output. * * @interface Kleur * @memberOf module:utils */ export interface Kleur { /** @description Applies black color to the text. */ black: Color; /** @description Applies red color to the text. */ red: Color; /** @description Applies green color to the text. */ green: Color; /** @description Applies yellow color to the text. */ yellow: Color; /** @description Applies blue color to the text. */ blue: Color; /** @description Applies magenta color to the text. */ magenta: Color; /** @description Applies cyan color to the text. */ cyan: Color; /** @description Applies white color to the text. */ white: Color; /** @description Applies gray color to the text. */ gray: Color; /** @description Alias for gray color. */ grey: Color; /** @description Applies black background to the text. */ bgBlack: Color; /** @description Applies red background to the text. */ bgRed: Color; /** @description Applies green background to the text. */ bgGreen: Color; /** @description Applies yellow background to the text. */ bgYellow: Color; /** @description Applies blue background to the text. */ bgBlue: Color; /** @description Applies magenta background to the text. */ bgMagenta: Color; /** @description Applies cyan background to the text. */ bgCyan: Color; /** @description Applies white background to the text. */ bgWhite: Color; /** @description Resets all applied styles. */ reset: Color; /** @description Applies bold style to the text. */ bold: Color; /** @description Applies dim (decreased intensity) style to the text. */ dim: Color; /** @description Applies italic style to the text. */ italic: Color; /** @description Applies underline style to the text. */ underline: Color; /** @description Inverts the foreground and background colors. */ inverse: Color; /** @description Hides the text (same color as background). */ hidden: Color; /** @description Applies strikethrough style to the text. */ strikethrough: Color; } /** * @description Configuration for a single command-line argument option. * @summary Defines the structure and behavior of a command-line option. * @interface ParseArgsOptionConfig * @property {("string" | "boolean")} type - The data type of the option. * @property {boolean} [multiple] - Whether the option can be specified multiple times. * @property {string} [short] - The short (single-character) alias for the option. * @property {string | boolean | string[] | boolean[]} [default] - The default value(s) for the option. * @memberOf module:utils */ export interface ParseArgsOptionConfig { type: "string" | "boolean"; multiple?: boolean | undefined; short?: string | undefined; default?: string | boolean | string[] | boolean[] | undefined; } /** * @description Configuration for all command-line argument options. * @summary A mapping of long option names to their configurations. * @interface ParseArgsOptionsConfig * @memberOf module:utils */ export interface ParseArgsOptionsConfig { [longOption: string]: ParseArgsOptionConfig; } /** * @description Represents a parsed command-line option token. * @summary Can be either an option with a value or an option without a value. * @typedef {Object} OptionToken * @memberOf module:utils */ export type OptionToken = { kind: "option"; index: number; name: string; rawName: string; value: string; inlineValue: boolean; } | { kind: "option"; index: number; name: string; rawName: string; value: undefined; inlineValue: undefined; }; /** * @description Represents a parsed command-line token. * @summary Can be an option, a positional argument, or an option terminator. * @typedef {OptionToken | Object} Token * @memberOf module:utils */ export type Token = OptionToken | { kind: "positional"; index: number; value: string; } | { kind: "option-terminator"; index: number; }; /** * @description The result of parsing command-line arguments. * @summary Contains parsed values, positional arguments, and optionally the parsed tokens. * @typedef {Object} ParseArgsResult * @property {string | boolean | string[] | boolean[] | undefined} values - Parsed option values. * @property {string[]} positionals - Positional arguments. * @property {Token[]} [tokens] - Parsed tokens (if requested). * @memberOf module:utils */ export type ParseArgsResult = { values: { [p: string]: string | boolean | (string | boolean)[] | undefined; }; positionals: string[]; tokens?: Token[]; };