JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1536
  • Score
    100M100P100Q104831F
  • License MIT

String formatting library for node.js

Package Exports

  • sf

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sf) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

sf

String formatting library for node.js.

Installation

$ npm install sf

Quick Examples

var sf = require("sf");

sf("{who} has a {what}", { who: 'dog', what: 'tail' });
// returns: dog has a tail

sf("{0} has a {1}", 'dog', 'tail');
// returns: dog has a tail

sf("{0:#,##0.00}", 2123.1);
// returns: 2,123.10

sf("{0,15:#,##0.00}", 2123.1);
// returns:        2,123.10

sf("{a.b}", { a: { b: 'test' }});
// returns: test

sf("{a.z.c}", { a: { b: 'test' }});
// throws an error

sf("{a.?z.?c}", { a: { b: 'test' }});
// returns:

sf("{a[0]}", { a: [ 'foo', 'bar' ]});
// returns: foo

sf("{a[-1]}", { a: [ 'foo', 'bar' ]});
// returns: bar

sf.log("{who} has a {what}", { who: 'dog', what: 'tail' });
// outputs to standard out: dog has a tail

Format Specifiers

The format is similar to C#'s string.format. The text inside the curly braces is {indexOrName[,alignment][:formatString]}. If alignment is positive the text is right aligned. If alignment is negative it will be left aligned.

Object

Specifier Name
json JSON.stringify
inspect util.inspect

Numbers

Specifier Name Example Output
0 Zero placeholder {0:00.0000} 02.1200
# Digit placeholder {0:#,###} 1,234
x Lowercase hex {0:x4} 01fc
X Uppercase hex {0:X4} 01FC

Dates

Specifier Name Example
sd Short date 10/12/2002
D Long date December 10, 2002
t Short time 10:11 PM
T Long time 10:11:29 PM
fdt Full date & time December 10, 2002 10:11 PM
F Full date & time (long) December 10, 2002 10:11:29 PM
g Default date & time 10/12/2002 10:11 PM
G Default date & time (long) 10/12/2002 10:11:29 PM
md Month day pattern December 10
r RFC1123 date string Tue, 10 Dec 2002 22:11:29 +0500
s Sortable date string 2002-12-10T22:11:29
d Date single digit 1
dd Date leading zero 01
ddd Short day name Mon
dddd Long day name Monday
f Fraction of second (1 digit) 1
ff Fraction of second (2 digit) 24
fff Fraction of second (3 digit) 345
h Hour 12-hour format 1 digit 5
hh Hour 12-hour format 2 digits 05
H Hour 24-hour format 1 digit 5
HH Hour 24-hour format 2 digits 05
mm Minutes 2 digits 23
M Month single digit 2
MM Month leading zero 02
MMM Month short name Feb
MMMM Month long name February
ss Seconds 2 digits 54
tt AM/PM AM
yy Year 2 digits 12
yyyy Year 4 digits 2012
zz Time zone offset 05
+zz Time zone offset leading + +05
zzz Time zone offset full 05:00
zzzz Time zone offset full 0500
+zzzz Time zone offset full leading + +0500

Helper Functions

  • sf.log(formatString [, args...]);
  • sf.info(formatString [, args...]);
  • sf.warn(formatString [, args...]);
  • sf.error(formatString [, args...]);