rawi
Version:
Rawi (راوي) is the developer-friendly AI CLI that brings the power of 12 major AI providers directly to your terminal. With seamless shell integration, persistent conversations, and 200+ specialized prompt templates, Rawi transforms your command line into
1 lines • 5.06 kB
Source Map (JSON)
{"version":3,"sources":["/home/mkabumattar/withrawi/rawi/dist/chunk-OJLMC7PN.cjs","../src/core/shared/spinner.ts"],"names":["SpinnerManager","_SpinnerManager","id","text","options","spinner","ora","operation","result","error","spinnerManager","start","updateText","succeed","fail","stop","stopAll","withSpinner"],"mappings":"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","file":"/home/mkabumattar/withrawi/rawi/dist/chunk-OJLMC7PN.cjs","sourcesContent":[null,"import ora, {type Ora} from 'ora';\n\nexport class SpinnerManager {\n private static instance: SpinnerManager;\n private activeSpinners: Map<string, Ora> = new Map();\n\n private constructor() {}\n\n static getInstance(): SpinnerManager {\n if (!SpinnerManager.instance) {\n SpinnerManager.instance = new SpinnerManager();\n }\n return SpinnerManager.instance;\n }\n\n start(id: string, text: string, options?: {color?: any}): Ora {\n this.stop(id);\n\n const spinner = ora({\n text,\n color: (options?.color as any) || 'cyan',\n }).start();\n\n this.activeSpinners.set(id, spinner);\n return spinner;\n }\n\n updateText(id: string, text: string): void {\n const spinner = this.activeSpinners.get(id);\n if (spinner) {\n spinner.text = text;\n }\n }\n\n succeed(id: string, text?: string): void {\n const spinner = this.activeSpinners.get(id);\n if (spinner) {\n spinner.succeed(text);\n this.activeSpinners.delete(id);\n }\n }\n\n fail(id: string, text?: string): void {\n const spinner = this.activeSpinners.get(id);\n if (spinner) {\n spinner.fail(text);\n this.activeSpinners.delete(id);\n }\n }\n\n stop(id: string): void {\n const spinner = this.activeSpinners.get(id);\n if (spinner) {\n spinner.stop();\n this.activeSpinners.delete(id);\n }\n }\n\n stopAll(): void {\n for (const spinner of this.activeSpinners.values()) {\n spinner.stop();\n }\n this.activeSpinners.clear();\n }\n\n get(id: string): Ora | undefined {\n return this.activeSpinners.get(id);\n }\n\n isActive(id: string): boolean {\n return this.activeSpinners.has(id);\n }\n\n async withSpinner<T>(\n id: string,\n text: string,\n operation: () => Promise<T>,\n options?: {\n successText?: string;\n failText?: string;\n color?: string;\n },\n ): Promise<T> {\n this.start(id, text, {color: options?.color});\n\n try {\n const result = await operation();\n this.succeed(id, options?.successText);\n return result;\n } catch (error) {\n this.fail(id, options?.failText);\n throw error;\n }\n }\n}\n\nexport const spinnerManager = SpinnerManager.getInstance();\n\nexport const {start, updateText, succeed, fail, stop, stopAll, withSpinner} =\n spinnerManager;\n"]}