1 | ;
|
2 |
|
3 | const formatRegExp = /%[sdj%]/g;
|
4 |
|
5 | module.exports = function(f) {
|
6 | var i = 1;
|
7 | var args = arguments;
|
8 | var len = args.length;
|
9 |
|
10 | var str = String(f).replace(formatRegExp, function(x) {
|
11 | if(x === '%%') return '%';
|
12 | if(i >= len) return x;
|
13 | switch(x) {
|
14 | case '%s': return String(args[i++]);
|
15 | case '%d': return Number(args[i++]);
|
16 | case '%j':
|
17 | try {
|
18 | return JSON.stringify(args[i++]);
|
19 | } catch(_) {
|
20 | return '[Circular]';
|
21 | }
|
22 | }
|
23 | });
|
24 |
|
25 | return str;
|
26 | };
|