resume-client-socket.io
Version:
Resume Client API for Socket.IO and Node.JS - Medical Speech to Summarized Text
199 lines (148 loc) • 4.39 kB
Markdown
//img.shields.io/travis/gajus/fast-printf/master.svg?style=flat-square)](https://travis-ci.org/gajus/fast-printf)
[](https://coveralls.io/github/gajus/fast-printf)
[](https://www.npmjs.org/package/fast-printf)
[](https://github.com/gajus/canonical)
[](https://twitter.com/kuizinas)
[ ](
* [Usage](
* [Handling Unbound Value References](
* [Benchmark](
* [Printf Cheatsheet](
```ts
import {
printf,
} from 'fast-printf';
console.log(printf('foo %s', 'bar'));
```
By default, interpolating an unbound expression produces:
* The expression is left in place
* A warning is logged using [roarr](https://github.com/gajus/roarr)
i.e. `printf('%s bar')` produces `%s bar`.
This behavior can be overridden by configuring a `fast-printf` instance using `createPrintf`:
```ts
import {
createPrintf,
} from 'fast-printf';
const printf = createPrintf({
formatUnboundExpression: (
subject: string,
token: PlaceholderToken,
boundValues: any[],
): string => {
console.warn({
boundValues,
position: token.position,
subject,
}, 'referenced unbound value');
return token.placeholder;
};
});
console.log(printf('foo %s', 'bar'));
```
|**implementation**|**without_placeholders**|**with_string_placeholder**|**with_many_string_placeholders**|
|-|-|-|-|
|[`sprintf`](https://github.com/alexei/sprintf.js)|31,772,029|4,154,748|637,229|
|[`printf`](https://github.com/adaltas/node-printf)|651,970|373,615|160,795|
|[`fast-printf`](https://github.com/gajus/fast-printf)|78,068,540|11,820,632|2,552,386|
Results show operations per second (greater is better).
To run the benchmark yourself please see [`./benchmark`](./benchmark).
## Printf Cheatsheet
```ts
// %c character
printf('%c', 'b');
// => 'c'
// %C converts to uppercase character (if not already)
printf('%C', 'b');
// => 'B'
// %d decimal integer (base 10)
printf('%d', 100);
// => '100'
// %0Xd zero-fill for X digits
printf('%05d', 1);
// => '00001'
// %Xd right justify for X digits
printf('%5d', 1);
// => ' 1'
// %-Xd left justify for X digits
printf('%-5d', 1);
// => '1 '
// %+d adds plus sign(+) to positive integers, minus sign for negative integers(-)
printf('%+5d', 1);
// => ' +1'
printf('%+5d', -1);
// => ' -1'
// %e scientific notation
printf('%e', 52.8);
// => '5.28e+1'
// %E scientific notation with a capital 'E'
printf('%E', 52.8);
// => '5.28E+1'
// %f floating-point number
printf('%f', 52.8);
// => '52.8'
// %.Yf prints Y positions after decimal
printf('%.1f', 1.234);
// => '1.2'
// %Xf takes up X spaces
printf('%5f', 123);
// => ' 123'
// %0X.Yf zero-fills
printf('%05.1f', 1.234);
// => '001.2'
// %-X.Yf left justifies
printf('%-5.1f', 1.234);
// => '1.2 '
// %i integer (base 10)
printf('%i', 123);
// => '123'
// %b converts to boolean
printf('%b', true);
// => 'true'
printf('%b', 'true');
// => 'true'
printf('%b', 1);
// => 'true'
// %B converts to uppercase boolean
printf('%b', true);
// => 'TRUE'
printf('%b', 'true');
// => 'TRUE'
printf('%b', 1);
// => 'TRUE'
// %o octal number (base 8)
printf('%o', 8);
// => '10'
// %s a string of characters
printf('%s', 'foo');
// => 'foo'
// %Xs formats string for a minimum of X spaces
printf('%5s', 'foo');
// => ' foo'
// %-Xs left justify
printf('%-5s', 'foo');
// => 'foo '
// %S converts to a string of uppercase characters (if not already)
printf('%S', 'foo');
// => 'FOO'
// %u unsigned decimal integer
printf('%u', 1);
// => '1'
printf('%u', -1);
// => '4294967295'
// %x number in hexadecimal (base 16)
printf('%x', 255);
// => 'ff'
// %% prints a percent sign
printf('%%');
// => '%'
// \% prints a percent sign
printf('\\%');
// => '%'
// %2$s %1$s positional arguments
printf('%2$s %1$s', 'bar', 'foo');
// => 'foo bar'
```
[![Travis build status](http: