node-sf
                                
                                 node-sf copied to clipboard
                                
                                    node-sf copied to clipboard
                            
                            
                            
                        String formatting library for node.js
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
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...]);
