UNPKG

shell-mirror

Version:

Access your Mac shell from any device securely. Perfect for mobile coding with Claude Code CLI, Gemini CLI, and any shell tool.

66 lines (52 loc) 1.43 kB
'use strict' var stringWidth = require('string-width') exports.center = alignCenter exports.left = alignLeft exports.right = alignRight // lodash's way of generating pad characters. function createPadding (width) { var result = '' var string = ' ' var n = width do { if (n % 2) { result += string; } n = Math.floor(n / 2); string += string; } while (n); return result; } function alignLeft (str, width) { var trimmed = str.trimRight() if (trimmed.length === 0 && str.length >= width) return str var padding = '' var strWidth = stringWidth(trimmed) if (strWidth < width) { padding = createPadding(width - strWidth) } return trimmed + padding } function alignRight (str, width) { var trimmed = str.trimLeft() if (trimmed.length === 0 && str.length >= width) return str var padding = '' var strWidth = stringWidth(trimmed) if (strWidth < width) { padding = createPadding(width - strWidth) } return padding + trimmed } function alignCenter (str, width) { var trimmed = str.trim() if (trimmed.length === 0 && str.length >= width) return str var padLeft = '' var padRight = '' var strWidth = stringWidth(trimmed) if (strWidth < width) { var padLeftBy = parseInt((width - strWidth) / 2, 10) padLeft = createPadding(padLeftBy) padRight = createPadding(width - (strWidth + padLeftBy)) } return padLeft + trimmed + padRight }