singularity-forge/src/logo.ts

28 lines
1.1 KiB
TypeScript
Raw Normal View History

/**
* Shared GSD block-letter ASCII logo.
*
* Single source of truth imported by:
* - scripts/postinstall.js (via dist/logo.js)
* - src/loader.ts (via ./logo.js)
*/
/** Raw logo lines — no ANSI codes, no leading newline. */
export const GSD_LOGO: readonly string[] = [
' ██████╗ ███████╗██████╗ ',
' ██╔════╝ ██╔════╝██╔══██╗',
' ██║ ███╗███████╗██║ ██║',
' ██║ ██║╚════██║██║ ██║',
' ╚██████╔╝███████║██████╔╝',
' ╚═════╝ ╚══════╝╚═════╝ ',
]
/**
* Render the logo block with a color function applied to each line.
*
* @param color e.g. `(s) => `\x1b[36m${s}\x1b[0m`` or picocolors.cyan
* @returns Ready-to-write string with leading/trailing newlines.
*/
export function renderLogo(color: (s: string) => string): string {
return '\n' + GSD_LOGO.map(color).join('\n') + '\n'
}