@tannin/sprintf v1.2.0
@tannin/sprintf
Given a format string, returns string with arguments interpolatation. Arguments can either be provided directly via function arguments spread, or with an array as the second argument.
See: https://en.wikipedia.org/wiki/Printf_format_string
In addition to basic placeholder substitution, the following options a placeholder are implemented:
- Positional index
- Named arguments
- Precision / maximum width (including
*precision) - Type (only the behaviors of
f,d,s, and%are applied)
Notably, this excludes:
- Flags
- Minimum width (padding)
- Length
Installation
Using npm as a package manager:
npm install @tannin/sprintfOtherwise, download a pre-built copy from unpkg:
https://unpkg.com/@tannin/sprintf/dist/sprintf.min.js
Usage
Using positional arguments:
import sprintf from '@tannin/sprintf';
sprintf( 'Hello %s!', 'world' );
// ⇒ 'Hello world!'Using named arguments:
import sprintf from '@tannin/sprintf';
sprintf( 'Hello %(place)s! From %(name)s.', { place: 'world', name: 'Andrew' } )
// ⇒ 'Hello world! From Andrew.'Type coercions and default values
When replacing numeric types (%d and %f), values will be coerced to numeric values, and default to 0:
sprintf( '%d', 123 )returns'123'sprintf( '%d', '123' )returns'123'sprintf( '%d', 'string' )returns'0'sprintf( '%d', false )returns'0'sprintf( '%d', null )returns'0'sprintf( '%d', undefined )returns'0'
When replacing string types (%s), values will be coerced to strings, and nullish values will be replaced with '':
sprintf( '%s', 'string' )returns'string'sprintf( '%s', 0 )returns'0'sprintf( '%s', false )returns'false'sprintf( '%s', null )returns''sprintf( '%s', undefined )returns''
License
Copyright 2019-2020 Andrew Duthie
Released under the MIT License.