1- import { logger } from "@utils/logger" ;
21import gradient from "gradient-string" ;
32import chalk from "chalk" ;
4- const figlet = require ( "figlet" ) ;
53
64import { getVersion } from "./version" ;
75
8- export const showBanner = async ( ) : Promise < void > => {
6+ const renderFigletBanner = ( ) : Promise < string > => {
7+ const figlet = require ( "figlet" ) ;
8+
99 return new Promise ( ( resolve , reject ) => {
1010 figlet . text (
1111 "STALLION" ,
@@ -15,23 +15,32 @@ export const showBanner = async (): Promise<void> => {
1515 verticalLayout : "default" ,
1616 } ,
1717 ( err : any , data : any ) => {
18- if ( err ) {
19- reject ( "Something went wrong..." ) ;
18+ if ( err || ! data ) {
19+ reject ( err ?? new Error ( "figlet returned no output" ) ) ;
2020 return ;
2121 }
22- // Apply retro gradient to the banner
23- const gradientBanner = gradient . retro . multiline ( data || "" ) ;
24- console . log ( gradientBanner ) ;
25- console . log (
26- "\n" +
27- chalk . whiteBright (
28- `⚡ Welcome to the Stallion CLI ${ chalk . bold (
29- chalk . greenBright ( `v${ getVersion ( ) } ` )
30- ) } ⚡ \n`
31- )
32- ) ;
33- resolve ( ) ;
22+ resolve ( data ) ;
3423 }
3524 ) ;
3625 } ) ;
3726} ;
27+
28+ export const showBanner = async ( ) : Promise < void > => {
29+ let banner = "STALLION" ;
30+
31+ try {
32+ banner = await renderFigletBanner ( ) ;
33+ } catch {
34+ // Decorative only — fall back to the plain wordmark.
35+ }
36+
37+ console . log ( gradient . retro . multiline ( banner ) ) ;
38+ console . log (
39+ "\n" +
40+ chalk . whiteBright (
41+ `⚡ Welcome to the Stallion CLI ${ chalk . bold (
42+ chalk . greenBright ( `v${ getVersion ( ) } ` )
43+ ) } ⚡ \n`
44+ )
45+ ) ;
46+ } ;
0 commit comments