]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
New isFunction util
authorGabriel Monteagudo <gabrielmaldi@hotmail.com>
Sat, 8 Aug 2015 03:39:00 +0000 (00:39 -0300)
committerIskren Chernev <iskren.chernev@gmail.com>
Mon, 9 Nov 2015 04:28:39 +0000 (20:28 -0800)
src/lib/locale/calendar.js
src/lib/locale/relative.js
src/lib/locale/set.js
src/lib/moment/format.js
src/lib/moment/get-set.js
src/lib/parse/regex.js
src/lib/utils/is-function.js [new file with mode: 0644]
src/locale/el.js

index 22545b96451d6509b20ea50eb48b409353f98417..e9cad6d18d3829984ce061f62591cf9b3f353c3c 100644 (file)
@@ -7,7 +7,9 @@ export var defaultCalendar = {
     sameElse : 'L'
 };
 
+import isFunction from '../utils/is-function';
+
 export function calendar (key, mom, now) {
     var output = this._calendar[key];
-    return typeof output === 'function' ? output.call(mom, now) : output;
+    return isFunction(output) ? output.call(mom, now) : output;
 }
index 5986a67541820bd4f9d545672ae695694c79aaf7..4c485ea2224d50aa9f9287faf75ff415e8019913 100644 (file)
@@ -14,14 +14,16 @@ export var defaultRelativeTime = {
     yy : '%d years'
 };
 
+import isFunction from '../utils/is-function';
+
 export function relativeTime (number, withoutSuffix, string, isFuture) {
     var output = this._relativeTime[string];
-    return (typeof output === 'function') ?
+    return (isFunction(output)) ?
         output(number, withoutSuffix, string, isFuture) :
         output.replace(/%d/i, number);
 }
 
 export function pastFuture (diff, output) {
     var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
-    return typeof format === 'function' ? format(output) : format.replace(/%s/i, output);
+    return isFunction(format) ? format(output) : format.replace(/%s/i, output);
 }
index 32db2ad79527ff61c45ae3ffcace3246602f6c17..062e842f1694d0ee406d930eeefece8872d4ff19 100644 (file)
@@ -1,8 +1,10 @@
+import isFunction from '../utils/is-function';
+
 export function set (config) {
     var prop, i;
     for (i in config) {
         prop = config[i];
-        if (typeof prop === 'function') {
+        if (isFunction(prop)) {
             this[i] = prop;
         } else {
             this['_' + i] = prop;
index 4939f389da46fc903b0e59f3304ed11e07c99cf4..7e93a0a1c45a7df913b74d8aad5f2707ed60422d 100644 (file)
@@ -1,5 +1,6 @@
 import { formatMoment } from '../format/format';
 import { hooks } from '../utils/hooks';
+import isFunction from '../utils/is-function';
 
 hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
 
@@ -10,7 +11,7 @@ export function toString () {
 export function toISOString () {
     var m = this.clone().utc();
     if (0 < m.year() && m.year() <= 9999) {
-        if ('function' === typeof Date.prototype.toISOString) {
+        if (isFunction(Date.prototype.toISOString)) {
             // native implementation is ~50x faster, use it when we can
             return this.toDate().toISOString();
         } else {
index a8c6ef69188202d6ef644a4da7e8d0ee0182f2cf..ef43f391a1c31b05f058158affb4f77f2b7b9acc 100644 (file)
@@ -1,5 +1,6 @@
 import { normalizeUnits } from '../units/aliases';
 import { hooks } from '../utils/hooks';
+import isFunction from '../utils/is-function';
 
 export function makeGetSet (unit, keepTime) {
     return function (value) {
@@ -34,7 +35,7 @@ export function getSet (units, value) {
         }
     } else {
         units = normalizeUnits(units);
-        if (typeof this[units] === 'function') {
+        if (isFunction(this[units])) {
             return this[units](value);
         }
     }
index 9541f039c1ce7203e2d8a1af77e7eeb1c9dc3fd8..2fbcc19d9b7214b980cca79fbe98b1fa3e3ccd27 100644 (file)
@@ -22,16 +22,10 @@ export var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123
 export var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i;
 
 import hasOwnProp from '../utils/has-own-prop';
+import isFunction from '../utils/is-function';
 
 var regexes = {};
 
-function isFunction (sth) {
-    // https://github.com/moment/moment/issues/2325
-    return typeof sth === 'function' &&
-        Object.prototype.toString.call(sth) === '[object Function]';
-}
-
-
 export function addRegexToken (token, regex, strictRegex) {
     regexes[token] = isFunction(regex) ? regex : function (isStrict) {
         return (isStrict && strictRegex) ? strictRegex : regex;
diff --git a/src/lib/utils/is-function.js b/src/lib/utils/is-function.js
new file mode 100644 (file)
index 0000000..12304b1
--- /dev/null
@@ -0,0 +1,3 @@
+export default function isFunction(input) {
+    return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
+}
index 83a34218babe2578e2a8ffe8699e856261722ed6..2722062f2b322ceadbbfba820909c18c50dc2f3d 100644 (file)
@@ -3,6 +3,7 @@
 //! author : Aggelos Karalias : https://github.com/mehiel
 
 import moment from '../moment';
+import isFunction from '../lib/utils/is-function';
 
 export default moment.defineLocale('el', {
     monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),
@@ -55,7 +56,7 @@ export default moment.defineLocale('el', {
     calendar : function (key, mom) {
         var output = this._calendarEl[key],
             hours = mom && mom.hours();
-        if (typeof output === 'function') {
+        if (isFunction(output)) {
             output = output.apply(mom);
         }
         return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));