]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Refactoring & Cleanup
authorNirpendra Patel <patelnirpendra1994@gmail.com>
Thu, 6 Oct 2022 09:46:44 +0000 (15:16 +0530)
committerIskren Chernev <me@iskren.info>
Sat, 16 Dec 2023 22:21:33 +0000 (00:21 +0200)
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.

14 files changed:
src/lib/units/aliases.js
src/lib/units/day-of-month.js
src/lib/units/day-of-week.js
src/lib/units/day-of-year.js
src/lib/units/hour.js
src/lib/units/millisecond.js
src/lib/units/minute.js
src/lib/units/month.js
src/lib/units/priorities.js
src/lib/units/quarter.js
src/lib/units/second.js
src/lib/units/week-year.js
src/lib/units/week.js
src/lib/units/year.js

index 8127b68519124485ff76fc2272871611e0435f8b..b2e74e05aa2436bcebf35194b7f951e13c84fb5a 100644 (file)
@@ -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()]
index 42a8b3f84fc0d70d746aafb73ff38fde1eb8a3b6..5ea90194ed3c4397dbbd8cbbb329b3864e5bc740 100644 (file)
@@ -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);
index 15c85c5008cab4173c8900767c8a09051433f5d3..7d5d038aa9352dcf26af0a61906a7af915bb9798 100644 (file)
@@ -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);
index 9aecb5bc1ea71c8cf309ff81b0439ac75f4ae6e8..fa216631a952ab8b0b879903be07bffe739654e6 100644 (file)
@@ -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
 
index 431121f53b50e14dde5a3a7194181644b271f4e9..b2270badd4e95214c7fed8a532f794d34467998f 100644 (file)
@@ -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) {
index b60e89a502e5980db642e83bf4fce009d64985c5..003c635cd322ee777c73c98d7786c9068ae63f3c 100644 (file)
@@ -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
 
index 036d7380b40071eddefa953fefc00ed20040d291..37f40850a9e080eeda244dd30dfe7007ff391634 100644 (file)
@@ -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
 
index a11d46b25f63d73b543ae71f84df64908eaacf80..309a45ca4a1b4fcd25a31afa3f721c2a6873c04e 100644 (file)
@@ -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
 
index b0b732a42915294b4d9d01df66438ab74c5be82c..3a130ebadbaf584c930572dbf276a69295a78318 100644 (file)
@@ -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;
index 907b57996fc7e4f9b98b9137f5772b1e40f03395..4638609c4eb00258ad1b804f6cc0923dc0767ca1 100644 (file)
@@ -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);
index eedbfc9274539b4839a1faf0f26e8a559f683033..46587e74c552878c23e749f7915043fce171fdb1 100644 (file)
@@ -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
 
index 960c345c41acb1eeae0bd8e06d8ee462adfbe799..4a610c25393693715b3e7dc34b786df7cb482a08 100644 (file)
@@ -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
 
index e6b7b55d32e943e970f162027476cb645ceabcb1..8caa14240411139b53ca6bfd5653178522a0aaa4 100644 (file)
@@ -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
 
index 027d6bf9bd0244d6fd903051ce1e1df9a28676a1..60c38bf1e7476dd6ef4023b39c112b970e285c06 100644 (file)
@@ -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);