You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by sh...@apache.org on 2020/07/29 16:36:15 UTC

[incubator-echarts] branch next updated: style(time): improve code style

This is an automated email from the ASF dual-hosted git repository.

shenyi pushed a commit to branch next
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git


The following commit(s) were added to refs/heads/next by this push:
     new 6eca9ac  style(time): improve code style
6eca9ac is described below

commit 6eca9ac087e092f726d7a5c7c3371b5b244a85ce
Author: pissang <bm...@gmail.com>
AuthorDate: Thu Jul 30 00:35:49 2020 +0800

    style(time): improve code style
---
 src/scale/Time.ts | 91 +++++++++++++++++++++++++++++++++----------------------
 1 file changed, 54 insertions(+), 37 deletions(-)

diff --git a/src/scale/Time.ts b/src/scale/Time.ts
index 6f7a121..b12459a 100644
--- a/src/scale/Time.ts
+++ b/src/scale/Time.ts
@@ -302,14 +302,31 @@ function getIntervalTicks(
     const ticks: TimeScaleTick[] = [];
     const unitNames = timeUnits;
     let levelId = 0;
+
+    const setFullYearMethodName = 'set' + utc + 'FullYear' as 'setFullYear' | 'setUTCFullYear';
+    const setMonthMethodName = 'set' + utc + 'Month' as 'setMonth' | 'setUTCMonth';
+    const setDateMethodName = 'set' + utc + 'Date' as 'setDate' | 'setUTCDate';
+    const setHoursMethodName = 'set' + utc + 'Hours' as 'setHours' | 'setUTCHours';
+    const setMinutesMethodName = 'set' + utc + 'Minutes' as 'setMinutes' | 'setUTCMinutes';
+    const setSecondsMethodName = 'set' + utc + 'Seconds' as 'setSeconds' | 'setUTCSeconds';
+    const setMillisecondsMethodName = 'set' + utc + 'Milliseconds' as 'setMilliseconds' | 'setUTCMilliseconds';
+
+    const getFullYearMethodName = 'get' + utc + 'FullYear' as 'getFullYear' | 'getUTCFullYear';
+    const getMonthMethodName = 'get' + utc + 'Month' as 'getMonth' | 'getUTCMonth';
+    const getDateMethodName = 'get' + utc + 'Date' as 'getDate' | 'getUTCDate';
+    const getHoursMethodName = 'get' + utc + 'Hours' as 'getHours' | 'getUTCHours';
+    const getMinutesMethodName = 'get' + utc + 'Minutes' as 'getMinutes' | 'getUTCMinutes';
+    const getSecondsMethodName = 'get' + utc + 'Seconds' as 'getSeconds' | 'getUTCSeconds';
+    const getMillisecondsMethodName = 'get' + utc + 'Milliseconds' as 'getMilliseconds' | 'getUTCMilliseconds';
+
     for (let i = 0, hasTickInLevel = false; i < unitNames.length && ticks.length < safeLimit; ++i) {
-        const date = new Date(extent[0]) as any;
+        const date = new Date(extent[0]);
 
         if (unitNames[i] === 'week' || unitNames[i] === 'half-week') {
-            date['set' + utc + 'Hours'](0);
-            date['set' + utc + 'Minutes'](0);
-            date['set' + utc + 'Seconds'](0);
-            date['set' + utc + 'Milliseconds'](0);
+            date[setHoursMethodName](0);
+            date[setMinutesMethodName](0);
+            date[setSecondsMethodName](0);
+            date[setMillisecondsMethodName](0);
 
             if (extent[0] === date.getTime()) {
                 ticks.push({
@@ -324,7 +341,7 @@ function getIntervalTicks(
                 const dates = approxInterval > ONE_DAY * 8 ? []
                     : (approxInterval > ONE_DAY * 3.5 ? [8, 16, 24] : [4, 8, 12, 16, 20, 24, 28]);
                 for (let d = 0; d < dates.length; ++d) {
-                    date['set' + utc + 'Date'](dates[d]);
+                    date[setDateMethodName](dates[d]);
                     const dateTime = (date as Date).getTime();
                     if (dateTime > extent[1]) {
                         isDateWithinExtent = false;
@@ -338,7 +355,7 @@ function getIntervalTicks(
                         hasTickInLevel = true;
                     }
                 }
-                date['set' + utc + 'Month'](date['get' + utc + 'Month']() + 1);
+                date[setMonthMethodName](date[getMonthMethodName]() + 1);
             }
         }
         else if (!isUnitValueSame(
@@ -353,27 +370,27 @@ function getIntervalTicks(
                     case 'half-year':
                     case 'quarter':
                         if (isFirst) {
-                            date['set' + utc + 'Month'](0);
-                            date['set' + utc + 'Date'](1);
-                            date['set' + utc + 'Hours'](0);
-                            date['set' + utc + 'Minutes'](0);
-                            date['set' + utc + 'Seconds'](0);
+                            date[setMonthMethodName](0);
+                            date[setDateMethodName](1);
+                            date[setHoursMethodName](0);
+                            date[setMinutesMethodName](0);
+                            date[setSecondsMethodName](0);
                         }
                         else {
                             const months = unitNames[i] === 'year'
                                 ? 12 : (unitNames[i] === 'half-year' ? 6 : 3);
                             if (unitNames[i] === 'half-year' || unitNames[i] === 'quarter') {
-                                date['set' + utc + 'Month'](date['get' + utc + 'Month']() + months);
+                                date[setMonthMethodName](date[getMonthMethodName]() + months);
                             }
                             else {
                                 const yearSpan = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));
-                                date['set' + utc + 'FullYear'](date['get' + utc + 'FullYear']() + yearSpan);
+                                date[setFullYearMethodName](date[getFullYearMethodName]() + yearSpan);
                                 if (date.getTime() > extent[1] && yearSpan > 1) {
                                     // For the last data
-                                    date['set' + utc + 'FullYear'](date['get' + utc + 'FullYear']() - yearSpan + 1);
+                                    date[setFullYearMethodName](date[getFullYearMethodName]() - yearSpan + 1);
                                     if (date.getTime() < extent[1]) {
                                         // The last data is not in year unit, make it invalid by larger than extent[1]
-                                        date['set' + utc + 'FullYear'](date['get' + utc + 'FullYear']() + yearSpan);
+                                        date[setFullYearMethodName](date[getFullYearMethodName]() + yearSpan);
                                     }
                                 }
                             }
@@ -382,13 +399,13 @@ function getIntervalTicks(
 
                     case 'month':
                         if (isFirst) {
-                            date['set' + utc + 'Date'](1);
-                            date['set' + utc + 'Hours'](0);
-                            date['set' + utc + 'Minutes'](0);
-                            date['set' + utc + 'Seconds'](0);
+                            date[setDateMethodName](1);
+                            date[setHoursMethodName](0);
+                            date[setMinutesMethodName](0);
+                            date[setSecondsMethodName](0);
                         }
                         else {
-                            date['set' + utc + 'Month'](date['get' + utc + 'Month']() + 1);
+                            date[setMonthMethodName](date[getMonthMethodName]() + 1);
                         }
                         break;
 
@@ -396,58 +413,58 @@ function getIntervalTicks(
                     case 'half-day':
                     case 'quarter-day':
                         if (isFirst) {
-                            date['set' + utc + 'Hours'](0);
-                            date['set' + utc + 'Minutes'](0);
-                            date['set' + utc + 'Seconds'](0);
+                            date[setHoursMethodName](0);
+                            date[setMinutesMethodName](0);
+                            date[setSecondsMethodName](0);
                         }
                         else if (unitNames[i] === 'half-day') {
-                            date['set' + utc + 'Hours'](date['get' + utc + 'Hours']() + 12);
+                            date[setHoursMethodName](date[getHoursMethodName]() + 12);
                         }
                         else if (unitNames[i] === 'quarter-day') {
-                            date['set' + utc + 'Hours'](date['get' + utc + 'Hours']() + 6);
+                            date[setHoursMethodName](date[getHoursMethodName]() + 6);
                         }
                         else {
-                            date['set' + utc + 'Date'](date['get' + utc + 'Date']() + 1);
+                            date[setDateMethodName](date[getDateMethodName]() + 1);
                         }
                         break;
 
                     case 'hour':
                         if (isFirst) {
-                            date['set' + utc + 'Minutes'](0);
-                            date['set' + utc + 'Seconds'](0);
+                            date[setMinutesMethodName](0);
+                            date[setSecondsMethodName](0);
                         }
                         else {
-                            date['set' + utc + 'Hours'](date['get' + utc + 'Hours']() + 1);
+                            date[setHoursMethodName](date[getHoursMethodName]() + 1);
                         }
                         break;
 
                     case 'minute':
                         if (isFirst) {
-                            date['set' + utc + 'Minutes'](0);
-                            date['set' + utc + 'Seconds'](0);
+                            date[setMinutesMethodName](0);
+                            date[setSecondsMethodName](0);
                         }
                         else {
-                            date['set' + utc + 'Minutes'](date['get' + utc + 'Minutes']() + 1);
+                            date[setMinutesMethodName](date[getMinutesMethodName]() + 1);
                         }
                         break;
 
                     case 'second':
                         if (!isFirst) {
-                            date['set' + utc + 'Seconds'](date['get' + utc + 'Seconds']() + 1);
+                            date[setSecondsMethodName](date[getSecondsMethodName]() + 1);
                         }
                         break;
 
                     case 'millisecond':
                         if (isFirst) {
-                            date['set' + utc + 'Milliseconds'](0);
+                            date[setMillisecondsMethodName](0);
                         }
                         else {
-                            date['set' + utc + 'Milliseconds'](date['get' + utc + 'Milliseconds']() + 100);
+                            date[setMillisecondsMethodName](date[getMillisecondsMethodName]() + 100);
                         }
                         break;
                 }
                 if (isFirst && unitNames[i] !== 'millisecond') {
-                    date['set' + utc + 'Milliseconds'](0);
+                    date[setMillisecondsMethodName](0);
                 }
 
                 const dateValue = (date as Date).getTime();


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org