oo-native-ext

0.0.2 • Public • Published

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 (== 0) return 1;
    return faculty(- 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"]

Package Sidebar

Install

npm i oo-native-ext

Weekly Downloads

1

Version

0.0.2

License

WTFPL

Last publish

Collaborators

  • eleandor