@taml/ast
Version:
Abstract Syntax Tree types and utilities for TAML (Terminal ANSI Markup Language)
100 lines • 3.58 kB
JavaScript
/**
* Core type definitions for TAML (Terminal ANSI Markup Language) AST
*/
/**
* Standard color names
*/
export const STANDARD_COLORS = [
"black",
"red",
"green",
"yellow",
"blue",
"magenta",
"cyan",
"white",
];
/**
* Bright color names
*/
export const BRIGHT_COLORS = [
"brightBlack",
"brightRed",
"brightGreen",
"brightYellow",
"brightBlue",
"brightMagenta",
"brightCyan",
"brightWhite",
];
/**
* Background color names
*/
export const BACKGROUND_COLORS = [
"bgBlack",
"bgRed",
"bgGreen",
"bgYellow",
"bgBlue",
"bgMagenta",
"bgCyan",
"bgWhite",
"bgBrightBlack",
"bgBrightRed",
"bgBrightGreen",
"bgBrightYellow",
"bgBrightBlue",
"bgBrightMagenta",
"bgBrightCyan",
"bgBrightWhite",
];
/**
* Text style names
*/
export const TEXT_STYLES = [
"bold",
"dim",
"italic",
"underline",
"strikethrough",
];
/**
* All valid TAML tags as a set for fast lookup
*/
export const VALID_TAGS = new Set([
...STANDARD_COLORS,
...BRIGHT_COLORS,
...BACKGROUND_COLORS,
...TEXT_STYLES,
]);
/**
* Check if a string is a valid TAML tag
*/
export function isValidTag(tag) {
return VALID_TAGS.has(tag);
}
/**
* Type guard for standard colors
*/
export function isStandardColor(tag) {
return STANDARD_COLORS.includes(tag);
}
/**
* Type guard for bright colors
*/
export function isBrightColor(tag) {
return BRIGHT_COLORS.includes(tag);
}
/**
* Type guard for background colors
*/
export function isBackgroundColor(tag) {
return BACKGROUND_COLORS.includes(tag);
}
/**
* Type guard for text styles
*/
export function isTextStyle(tag) {
return TEXT_STYLES.includes(tag);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQW1FSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixPQUFPO0lBQ1AsS0FBSztJQUNMLE9BQU87SUFDUCxRQUFRO0lBQ1IsTUFBTTtJQUNOLFNBQVM7SUFDVCxNQUFNO0lBQ04sT0FBTztDQUNDLENBQUM7QUFFWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixhQUFhO0lBQ2IsV0FBVztJQUNYLGFBQWE7SUFDYixjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZixZQUFZO0lBQ1osYUFBYTtDQUNMLENBQUM7QUFFWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLFNBQVM7SUFDVCxPQUFPO0lBQ1AsU0FBUztJQUNULFVBQVU7SUFDVixRQUFRO0lBQ1IsV0FBVztJQUNYLFFBQVE7SUFDUixTQUFTO0lBQ1QsZUFBZTtJQUNmLGFBQWE7SUFDYixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsY0FBYztJQUNkLGVBQWU7Q0FDUCxDQUFDO0FBRVg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsTUFBTTtJQUNOLEtBQUs7SUFDTCxRQUFRO0lBQ1IsV0FBVztJQUNYLGVBQWU7Q0FDUCxDQUFDO0FBRVg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQVU7SUFDekMsR0FBRyxlQUFlO0lBQ2xCLEdBQUcsYUFBYTtJQUNoQixHQUFHLGlCQUFpQjtJQUNwQixHQUFHLFdBQVc7Q0FDZixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBVztJQUNwQyxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBYyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsR0FBWTtJQUVaLE9BQVEsZUFBcUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsR0FBWTtJQUVaLE9BQVEsYUFBbUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFZO0lBRVosT0FBUSxpQkFBdUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFZO0lBQ3RDLE9BQVEsV0FBaUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUQsQ0FBQyJ9