/** * Copyright 2023 Beijing VolcanoEngine Technology Ltd. * All Rights Reserved. */ const formatRegExp = /%[sdjo%]/g; function isObject(arg: any) { return typeof arg === 'object' && arg !== null; } function platformIndependentFormat(format: string, ..._: any[]): string { let i = 1; let args = arguments; let len = args.length; let str = String(format).replace(formatRegExp, (x) => { if (x === '%%') return '%'; if (i >= len) return x; switch (x) { case '%s': return String(args[i++]); case '%d': return Number(args[i++]).toString(); case '%j': try { return JSON.stringify(args[i++]); } catch (_) { return '[Circular]'; } default: return x; } }); for (var x = args[i]; i < len; x = args[++i]) { if (x === null || !isObject(x)) { str += ' ' + x; } else { str += ' ' + JSON.stringify(x); } } return str; } export function format(format: string, ...params: any[]): string { const isNode = typeof process === 'object' && typeof process?.versions?.node === 'string'; if (isNode) { return require('util').format(format, ...params); } return platformIndependentFormat(format, ...params); }