UNPKG

scaffold-scripts

Version:

Simple CLI tool for managing and running your own scripts. Add any script, run it anywhere.

79 lines â€ĸ 3.1 kB
"use strict"; // Cross-platform symbol utilities // Emojis can be problematic on older Windows terminals and some Unix systems Object.defineProperty(exports, "__esModule", { value: true }); exports.sym = void 0; exports.getSymbol = getSymbol; const symbols = { rocket: { emoji: '🚀', fallback: '>>' }, package: { emoji: 'đŸ“Ļ', fallback: '[*]' }, check: { emoji: '✅', fallback: '[OK]' }, cross: { emoji: '❌', fallback: '[X]' }, warning: { emoji: 'âš ī¸', fallback: '[!]' }, search: { emoji: '🔍', fallback: '...' }, list: { emoji: '📋', fallback: '[-]' }, trash: { emoji: 'đŸ—‘ī¸', fallback: '[DEL]' }, bulb: { emoji: '💡', fallback: '[?]' }, book: { emoji: '📖', fallback: '[i]' }, party: { emoji: '🎉', fallback: '[DONE]' }, memo: { emoji: '📝', fallback: '[-]' }, wrench: { emoji: '🔧', fallback: '[CFG]' }, folder: { emoji: 'đŸ—‚ī¸', fallback: '[DIR]' }, page: { emoji: '📄', fallback: '[DOC]' }, diamond: { emoji: '🔸', fallback: '*' }, target: { emoji: 'đŸŽ¯', fallback: '=>' }, info: { emoji: 'â„šī¸', fallback: '[i]' } }; // Detect if terminal supports emojis function supportsEmojis() { // Windows Command Prompt and older PowerShell versions often have issues if (process.platform === 'win32') { // Check if we're in Windows Terminal or newer PowerShell const term = process.env.WT_SESSION || process.env.TERM_PROGRAM; const pwsh = process.env.PSModulePath?.includes('PowerShell/7') || process.env.PSModulePath?.includes('PowerShell\\7'); if (term || pwsh) { return true; // Windows Terminal or PowerShell 7+ likely supports emojis } // Legacy cmd.exe or older PowerShell return false; } // Unix-like systems - check TERM environment const term = process.env.TERM; if (!term) return false; // Most modern terminals support emojis if (term.includes('xterm') || term.includes('screen') || term.includes('tmux')) { return true; } // Conservative fallback for unknown terminals return false; } // Get symbol based on platform capability function getSymbol(name) { const symbol = symbols[name]; if (!symbol) return ''; return supportsEmojis() ? symbol.emoji : symbol.fallback; } // Convenience functions for common symbols exports.sym = { rocket: () => getSymbol('rocket'), package: () => getSymbol('package'), check: () => getSymbol('check'), cross: () => getSymbol('cross'), warning: () => getSymbol('warning'), search: () => getSymbol('search'), list: () => getSymbol('list'), trash: () => getSymbol('trash'), bulb: () => getSymbol('bulb'), book: () => getSymbol('book'), party: () => getSymbol('party'), memo: () => getSymbol('memo'), wrench: () => getSymbol('wrench'), folder: () => getSymbol('folder'), page: () => getSymbol('page'), diamond: () => getSymbol('diamond'), target: () => getSymbol('target'), info: () => getSymbol('info') }; //# sourceMappingURL=symbols.js.map