Have ideas to improve npm?Join in the discussion! »

sf

0.2.0 • Public • Published

sf

Build Status

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
 
sf("{0:^d 'Days,' h:mm:ss.fff}", new sf.TimeSpan(8173818181));
// returns: 94 Days, 14:30:18.181

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

sf.TimeSpan

Specifier Name Example
y Years 2
M Months 6
d Days 8
h Hours 10
m Minutes 15
s Seconds 5
f Fraction of Seconds 9

If you prefix the specifier with '^' you will get the total number of that value. For example '^s' will output the total number of seconds in the time span. Where as 's' will only output the number of seconds in a minute.

If you repeat characters the value will be prefixed with zeros.

sf.indent(str, options)

Helper function to word wrap and indent a string.

Arguments

  • str - The string to indent and wrap.
  • options
  • prefix - The prefix to appear at the beginning of each new line.
  • wordwrap - The maximum length of each line.

Helper Functions

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

Install

npm i sf

DownloadsWeekly Downloads

2,478

Version

0.2.0

License

MIT

Unpacked Size

46.2 kB

Total Files

8

Last publish

Collaborators

  • avatar