oo-native-ext
v0.0.2
Published
Extensions to native objects
Downloads
3
Readme
oo-native-ext
Extensions to native objects
Install
npm install oo-native-ext
Extensions
String#toPascalCase()
Capitalizes the first letter of a string
"exampleString".toPascalCase() == "ExampleString"
String#format(obj)
Formats a string with key => value pairs
"My {obj} is {color}".format({
obj: "car",
color: "blue"
});
// "My car is blue"
"It is {0} minutes and {1} seconds after {2}pm".format([8, 12, 5]);
// "It is 8 minutes and 12 seconds after 5pm"
Date#getDayWestern()
Retrieves the day of the week, with monday = 0, sunday = 6
(new Date("1 january 2014")).getDayWestern() == 0;
(new Date("1 january 2014")).getDay() == 1;
Date#getHoursPeriodic()
Retrieves the hours on a 12 hour clock
(new Date("1 january 2014 06:30")).getHoursPeriodic() == 6
(new Date("1 january 2014 18:30")).getHoursPeriodic() == 6
Date#format(format, locale)
Formats a date
- format The format to use, values are wrapped in {}
- locale Object containing localization strings (defaults to english)
var date = new Date("1 january 2014 19:30:44");
date.format("{d}/{M}/{yy}") == "1/1/14";
date.format("{dd}-{MM}-{yyyy}") == "01-01-2014";
date.format("{dddd} {dd} {MMMM} {yyyy}") == "Monday 1 January 2014";
date.format("{HH}:{mm}:{ss}") == "19:30:44"
Format
- s: seconds between 0 and 59
- ss: seconds between 00 and 59
- m: minutes between 0 and 59
- mm: minutes between 00 and 59
- h: hours between 1 and 12
- hh: hours between 01 and 12
- H: hours between 0 and 23
- HH: hours between 00 and 23
- d: day between 1 and 31
- dd: day between 01 and 31
- ddd: abbreviated name of day (mon, tue, ...)
- dddd: name of day (monday, tuesday, ...)
- M: month between 1 and 12
- MM: month between 01 and 12
- MMM: abbreviated name of month (jan, feb, ...)
- MMMM: name of month (january, february, ...)
- yy: year between 00 and 99
- yyyy: year
Locale
var locale = {
days: ["Monday", "Tuesday", ...],
daysShort: ["Mon", "Tue", ...],
months: ["January", "February", ...],
monthsShort: ["Jan", "Feb", ...]
};
Function#memoize()
Memoize the results in a function for optimization
var faculty = function(n) {
if (n == 0) return 1;
return faculty(n - 1) * n;
}.memoize();
faculty(4); // requires 5 recursive calls
faculty(4); // result is already known
faculty(5); // requires 1 call
Function#curry(params...)
Curry function parameters
var prop = function(property, obj) {
return obj[property];
};
[{name: "Ben"}, {name: "Jan"}, {name: "Bart"}].map(prop.curry("name"));
// ["Ben", "Jan", "Bart"]