From: Nirpendra Patel Date: Thu, 6 Oct 2022 09:46:44 +0000 (+0530) Subject: Refactoring & Cleanup X-Git-Tag: 2.30.0~21^2~2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=d4432375a1e996d8a3180a9bcc5074441b0a9398;p=thirdparty%2Fmoment.git Refactoring & Cleanup My mission with this refactoring was to make it more readable and procedural. Not only it reduces 32 function calls, It's all in one place. All aliases in aliases.js file and all priorities in priorities.js file 1. All the functions which were responsible for creating aliases from following files(comments are file names) have been moved to src/lib/units/aliases.js // src/lib/units/day-of-month.js addUnitAlias('date', 'D'); // src/lib/units/day-of-week.js addUnitAlias('day', 'd'); addUnitAlias('weekday', 'e'); addUnitAlias('isoWeekday', 'E'); // src/lib/units/day-of-year.js addUnitAlias('dayOfYear', 'DDD'); // src/lib/units/hour.js addUnitAlias('hour', 'h'); // src/lib/units/millisecond.js addUnitAlias('millisecond', 'ms'); // src/lib/units/minute.js addUnitAlias('minute', 'm'); // src/lib/units/month.js addUnitAlias('month', 'M'); // src/lib/units/quarter.js addUnitAlias('quarter', 'Q'); // src/lib/units/second.js addUnitAlias('second', 's'); // src/lib/units/week-year.js addUnitAlias('weekYear', 'gg'); addUnitAlias('isoWeekYear', 'GG'); // src/lib/units/week.js addUnitAlias('week', 'w'); addUnitAlias('isoWeek', 'W'); // src/lib/units/year.js addUnitAlias('year', 'y'); 2. Ran all the functions and final result has been saved as "aliases" object in src/lib/units/aliases.js. 3. Commented out all the aliases creation functions in src/lib/units/aliases.js as we have final and known Object as a variable. 4. All the functions which were responsible for creating priorities from following files(comments are file names) have been moved to src/lib/units/priorities.js // src/lib/units/day-of-month.js addUnitPriority('date', 9); // src/lib/units/day-of-week.js addUnitPriority('day', 11); addUnitPriority('weekday', 11); addUnitPriority('isoWeekday', 11); // src/lib/units/day-of-year.js addUnitPriority('dayOfYear', 4); // src/lib/units/hour.js addUnitPriority('hour', 13); // src/lib/units/millisecond.js addUnitPriority('millisecond', 16); // src/lib/units/minute.js addUnitPriority('minute', 14); // src/lib/units/month.js addUnitPriority('month', 8); // src/lib/units/quarter.js addUnitPriority('quarter', 7); // src/lib/units/second.js addUnitPriority('second', 15); // src/lib/units/week-year.js addUnitPriority('weekYear', 1); addUnitPriority('isoWeekYear', 1); // src/lib/units/week.js addUnitPriority('week', 5); addUnitPriority('isoWeek', 5); // src/lib/units/year.js addUnitPriority('year', 1); 5. Ran all the functions and final result has been saved as "priorities" object in src/lib/units/priorities.js. 6. Commented out all the priorities creation functions in src/lib/units/aliases.js as we have final and known Object as a variable. --- diff --git a/src/lib/units/aliases.js b/src/lib/units/aliases.js index 8127b6851..b2e74e05a 100644 --- a/src/lib/units/aliases.js +++ b/src/lib/units/aliases.js @@ -1,5 +1,59 @@ import hasOwnProp from '../utils/has-own-prop'; +var aliases = +{ + D: 'date', + dates: 'date', + date: 'date', + d: 'day', + days: 'day', + day: 'day', + e: 'weekday', + weekdays: 'weekday', + weekday: 'weekday', + E: 'isoWeekday', + isoweekdays: 'isoWeekday', + isoweekday: 'isoWeekday', + DDD: 'dayOfYear', + dayofyears: 'dayOfYear', + dayofyear: 'dayOfYear', + h: 'hour', + hours: 'hour', + hour: 'hour', + ms: 'millisecond', + milliseconds: 'millisecond', + millisecond: 'millisecond', + m: 'minute', + minutes: 'minute', + minute: 'minute', + M: 'month', + months: 'month', + month: 'month', + Q: 'quarter', + quarters: 'quarter', + quarter: 'quarter', + s: 'second', + seconds: 'second', + second: 'second', + gg: 'weekYear', + weekyears: 'weekYear', + weekyear: 'weekYear', + GG: 'isoWeekYear', + isoweekyears: 'isoWeekYear', + isoweekyear: 'isoWeekYear', + w: 'week', + weeks: 'week', + week: 'week', + W: 'isoWeek', + isoweeks: 'isoWeek', + isoweek: 'isoWeek', + y: 'year', + years: 'year', + year: 'year' + } + +/* + var aliases = {}; export function addUnitAlias(unit, shorthand) { @@ -7,6 +61,36 @@ export function addUnitAlias(unit, shorthand) { aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; } +//day-of-month.js +addUnitAlias('date', 'D'); +//day-of-week.js +addUnitAlias('day', 'd'); +addUnitAlias('weekday', 'e'); +addUnitAlias('isoWeekday', 'E'); +//day-of-year.js +addUnitAlias('dayOfYear', 'DDD'); +//hour.js +addUnitAlias('hour', 'h'); +//millisecond.js +addUnitAlias('millisecond', 'ms'); +//minute.js +addUnitAlias('minute', 'm'); +//month.js +addUnitAlias('month', 'M'); +//quarter.js +addUnitAlias('quarter', 'Q'); +//second.js +addUnitAlias('second', 's'); +//week-year.js +addUnitAlias('weekYear', 'gg'); +addUnitAlias('isoWeekYear', 'GG'); +//week.js +addUnitAlias('week', 'w'); +addUnitAlias('isoWeek', 'W'); +//year.js +addUnitAlias('year', 'y'); + +*/ export function normalizeUnits(units) { return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] diff --git a/src/lib/units/day-of-month.js b/src/lib/units/day-of-month.js index 42a8b3f84..5ea90194e 100644 --- a/src/lib/units/day-of-month.js +++ b/src/lib/units/day-of-month.js @@ -1,7 +1,5 @@ import { makeGetSet } from '../moment/get-set'; import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1to2, match2 } from '../parse/regex'; import { addParseToken } from '../parse/token'; import { DATE } from './constants'; @@ -11,13 +9,6 @@ import toInt from '../utils/to-int'; addFormatToken('D', ['DD', 2], 'Do', 'date'); -// ALIASES - -addUnitAlias('date', 'D'); - -// PRIORITY -addUnitPriority('date', 9); - // PARSING addRegexToken('D', match1to2); diff --git a/src/lib/units/day-of-week.js b/src/lib/units/day-of-week.js index 15c85c500..7d5d038aa 100644 --- a/src/lib/units/day-of-week.js +++ b/src/lib/units/day-of-week.js @@ -1,6 +1,4 @@ import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1to2, @@ -34,17 +32,6 @@ addFormatToken('dddd', 0, 0, function (format) { addFormatToken('e', 0, 0, 'weekday'); addFormatToken('E', 0, 0, 'isoWeekday'); -// ALIASES - -addUnitAlias('day', 'd'); -addUnitAlias('weekday', 'e'); -addUnitAlias('isoWeekday', 'E'); - -// PRIORITY -addUnitPriority('day', 11); -addUnitPriority('weekday', 11); -addUnitPriority('isoWeekday', 11); - // PARSING addRegexToken('d', match1to2); diff --git a/src/lib/units/day-of-year.js b/src/lib/units/day-of-year.js index 9aecb5bc1..fa216631a 100644 --- a/src/lib/units/day-of-year.js +++ b/src/lib/units/day-of-year.js @@ -1,6 +1,4 @@ import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match3, match1to3 } from '../parse/regex'; import { addParseToken } from '../parse/token'; import toInt from '../utils/to-int'; @@ -9,12 +7,6 @@ import toInt from '../utils/to-int'; addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); -// ALIASES - -addUnitAlias('dayOfYear', 'DDD'); - -// PRIORITY -addUnitPriority('dayOfYear', 4); // PARSING diff --git a/src/lib/units/hour.js b/src/lib/units/hour.js index 431121f53..b2270badd 100644 --- a/src/lib/units/hour.js +++ b/src/lib/units/hour.js @@ -1,7 +1,5 @@ import { makeGetSet } from '../moment/get-set'; import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1to2, @@ -68,13 +66,6 @@ function meridiem(token, lowercase) { meridiem('a', true); meridiem('A', false); -// ALIASES - -addUnitAlias('hour', 'h'); - -// PRIORITY -addUnitPriority('hour', 13); - // PARSING function matchMeridiem(isStrict, locale) { diff --git a/src/lib/units/millisecond.js b/src/lib/units/millisecond.js index b60e89a50..003c635cd 100644 --- a/src/lib/units/millisecond.js +++ b/src/lib/units/millisecond.js @@ -1,7 +1,5 @@ import { makeGetSet } from '../moment/get-set'; import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1, @@ -44,13 +42,6 @@ addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { return this.millisecond() * 1000000; }); -// ALIASES - -addUnitAlias('millisecond', 'ms'); - -// PRIORITY - -addUnitPriority('millisecond', 16); // PARSING diff --git a/src/lib/units/minute.js b/src/lib/units/minute.js index 036d7380b..37f40850a 100644 --- a/src/lib/units/minute.js +++ b/src/lib/units/minute.js @@ -1,7 +1,5 @@ import { makeGetSet } from '../moment/get-set'; import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1to2, match2 } from '../parse/regex'; import { addParseToken } from '../parse/token'; import { MINUTE } from './constants'; @@ -10,13 +8,6 @@ import { MINUTE } from './constants'; addFormatToken('m', ['mm', 2], 0, 'minute'); -// ALIASES - -addUnitAlias('minute', 'm'); - -// PRIORITY - -addUnitPriority('minute', 14); // PARSING diff --git a/src/lib/units/month.js b/src/lib/units/month.js index a11d46b25..309a45ca4 100644 --- a/src/lib/units/month.js +++ b/src/lib/units/month.js @@ -1,8 +1,6 @@ import { get } from '../moment/get-set'; import hasOwnProp from '../utils/has-own-prop'; import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1to2, @@ -49,13 +47,6 @@ addFormatToken('MMMM', 0, 0, function (format) { return this.localeData().months(this, format); }); -// ALIASES - -addUnitAlias('month', 'M'); - -// PRIORITY - -addUnitPriority('month', 8); // PARSING diff --git a/src/lib/units/priorities.js b/src/lib/units/priorities.js index b0b732a42..3a130ebad 100644 --- a/src/lib/units/priorities.js +++ b/src/lib/units/priorities.js @@ -1,11 +1,64 @@ import hasOwnProp from '../utils/has-own-prop'; +var priorities = { + date: 9, + day: 11, + weekday: 11, + isoWeekday: 11, + dayOfYear: 4, + hour: 13, + millisecond: 16, + minute: 14, + month: 8, + quarter: 7, + second: 15, + weekYear: 1, + isoWeekYear: 1, + week: 5, + isoWeek: 5, + year: 1 +} + +/* var priorities = {}; export function addUnitPriority(unit, priority) { priorities[unit] = priority; } + +//day-of-month.js +addUnitPriority('date', 9); +//day-of-week.js +addUnitPriority('day', 11); +addUnitPriority('weekday', 11); +addUnitPriority('isoWeekday', 11); +//day-of-year.js +addUnitPriority('dayOfYear', 4); +//hour.js +addUnitPriority('hour', 13); +//millisecond.js +addUnitPriority('millisecond', 16); +//minute.js +addUnitPriority('minute', 14); +//month.js +addUnitPriority('month', 8); +//quarter.js +addUnitPriority('quarter', 7); +//second.js +addUnitPriority('second', 15); +//week-year.js +addUnitPriority('weekYear', 1); +addUnitPriority('isoWeekYear', 1); +//week.js +addUnitPriority('week', 5); +addUnitPriority('isoWeek', 5); +//year.js +addUnitPriority('year', 1); + + +*/ + export function getPrioritizedUnits(unitsObj) { var units = [], u; diff --git a/src/lib/units/quarter.js b/src/lib/units/quarter.js index 907b57996..4638609c4 100644 --- a/src/lib/units/quarter.js +++ b/src/lib/units/quarter.js @@ -1,6 +1,4 @@ import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1 } from '../parse/regex'; import { addParseToken } from '../parse/token'; import { MONTH } from './constants'; @@ -10,14 +8,6 @@ import toInt from '../utils/to-int'; addFormatToken('Q', 0, 'Qo', 'quarter'); -// ALIASES - -addUnitAlias('quarter', 'Q'); - -// PRIORITY - -addUnitPriority('quarter', 7); - // PARSING addRegexToken('Q', match1); diff --git a/src/lib/units/second.js b/src/lib/units/second.js index eedbfc927..46587e74c 100644 --- a/src/lib/units/second.js +++ b/src/lib/units/second.js @@ -1,7 +1,5 @@ import { makeGetSet } from '../moment/get-set'; import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1to2, match2 } from '../parse/regex'; import { addParseToken } from '../parse/token'; import { SECOND } from './constants'; @@ -10,13 +8,6 @@ import { SECOND } from './constants'; addFormatToken('s', ['ss', 2], 0, 'second'); -// ALIASES - -addUnitAlias('second', 's'); - -// PRIORITY - -addUnitPriority('second', 15); // PARSING diff --git a/src/lib/units/week-year.js b/src/lib/units/week-year.js index 960c345c4..4a610c253 100644 --- a/src/lib/units/week-year.js +++ b/src/lib/units/week-year.js @@ -1,6 +1,4 @@ import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1to2, @@ -42,13 +40,6 @@ addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES -addUnitAlias('weekYear', 'gg'); -addUnitAlias('isoWeekYear', 'GG'); - -// PRIORITY - -addUnitPriority('weekYear', 1); -addUnitPriority('isoWeekYear', 1); // PARSING diff --git a/src/lib/units/week.js b/src/lib/units/week.js index e6b7b55d3..8caa14240 100644 --- a/src/lib/units/week.js +++ b/src/lib/units/week.js @@ -1,6 +1,4 @@ import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1to2, match2 } from '../parse/regex'; import { addWeekParseToken } from '../parse/token'; import toInt from '../utils/to-int'; @@ -11,15 +9,6 @@ import { weekOfYear } from './week-calendar-utils'; addFormatToken('w', ['ww', 2], 'wo', 'week'); addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); -// ALIASES - -addUnitAlias('week', 'w'); -addUnitAlias('isoWeek', 'W'); - -// PRIORITIES - -addUnitPriority('week', 5); -addUnitPriority('isoWeek', 5); // PARSING diff --git a/src/lib/units/year.js b/src/lib/units/year.js index 027d6bf9b..60c38bf1e 100644 --- a/src/lib/units/year.js +++ b/src/lib/units/year.js @@ -1,7 +1,5 @@ import { makeGetSet } from '../moment/get-set'; import { addFormatToken } from '../format/format'; -import { addUnitAlias } from './aliases'; -import { addUnitPriority } from './priorities'; import { addRegexToken, match1to2, @@ -34,14 +32,6 @@ addFormatToken(0, ['YYYY', 4], 0, 'year'); addFormatToken(0, ['YYYYY', 5], 0, 'year'); addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); -// ALIASES - -addUnitAlias('year', 'y'); - -// PRIORITIES - -addUnitPriority('year', 1); - // PARSING addRegexToken('Y', matchSigned);