utiller 1.0.321 → 1.0.323

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,8 +17,7 @@ var _lodash = _interopRequireDefault(require("lodash"));
17
17
  var _cryptoJs = _interopRequireDefault(require("crypto-js"));
18
18
  var _configerer = require("configerer");
19
19
  var _exceptioner = _interopRequireDefault(require("../exceptioner"));
20
- var _moment = _interopRequireDefault(require("moment"));
21
- require("moment-timezone");
20
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
22
21
  var _uuid = require("uuid");
23
22
  var _words = require("../words");
24
23
  var _nodeHtmlParser = require("node-html-parser");
@@ -223,7 +222,7 @@ var Utiller = /*#__PURE__*/function () {
223
222
  * const date = '2024-07-25';
224
223
  * console.log(convertDateToTimestamp(date)); // Outputs the timestamp for 2024-07-25*/
225
224
  (0, _defineProperty2["default"])(this, "convertDateToTimestamp", function (date) {
226
- return (0, _moment["default"])(date).valueOf(); // valueOf() returns the timestamp in milliseconds
225
+ return (0, _momentTimezone["default"])(date).valueOf(); // valueOf() returns the timestamp in milliseconds
227
226
  });
228
227
  /** // 示例函數來測試運行時間
229
228
  async function exampleFunction() {
@@ -263,7 +262,7 @@ var Utiller = /*#__PURE__*/function () {
263
262
  // 結束計時
264
263
  endTime = Date.now(); // 計算總運行時間(毫秒)
265
264
  durationInMilliseconds = endTime - startTime; // 使用 moment.duration 格式化為 hh:mm:ss.SSS
266
- duration = _moment["default"].duration(durationInMilliseconds, "milliseconds");
265
+ duration = _momentTimezone["default"].duration(durationInMilliseconds, "milliseconds");
267
266
  hours = Math.floor(duration.asHours());
268
267
  minutes = duration.minutes();
269
268
  seconds = duration.seconds();
@@ -417,7 +416,7 @@ var Utiller = /*#__PURE__*/function () {
417
416
  key: "setLocaleOfMoment",
418
417
  value: function setLocaleOfMoment() {
419
418
  var locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "en";
420
- _moment["default"].locale(locale);
419
+ _momentTimezone["default"].locale(locale);
421
420
  }
422
421
  }, {
423
422
  key: "getUuidOfV4",
@@ -1692,55 +1691,55 @@ var Utiller = /*#__PURE__*/function () {
1692
1691
  }, {
1693
1692
  key: "getTodayTimeFormat",
1694
1693
  value: function getTodayTimeFormat(ts) {
1695
- return (0, _moment["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY-MM-DD");
1694
+ return (0, _momentTimezone["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY-MM-DD");
1696
1695
  }
1697
1696
  }, {
1698
1697
  key: "getCustomFormatOfDatePresent",
1699
1698
  value: function getCustomFormatOfDatePresent(ts) {
1700
1699
  var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "YY/MM";
1701
- return (0, _moment["default"])(ts ? ts : this.getCurrentTimeStamp()).format(format);
1700
+ return (0, _momentTimezone["default"])(ts ? ts : this.getCurrentTimeStamp()).format(format);
1702
1701
  }
1703
1702
  }, {
1704
1703
  key: "getSimpleDateYYMMDDFormat",
1705
1704
  value: function getSimpleDateYYMMDDFormat(ts) {
1706
- return (0, _moment["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YY/MM/DD");
1705
+ return (0, _momentTimezone["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YY/MM/DD");
1707
1706
  }
1708
1707
  }, {
1709
1708
  key: "getSimpleTimeYYMMDDHHmmFormat",
1710
1709
  value: function getSimpleTimeYYMMDDHHmmFormat(ts) {
1711
- return (0, _moment["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YY/MM/DD HH:mm");
1710
+ return (0, _momentTimezone["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YY/MM/DD HH:mm");
1712
1711
  }
1713
1712
  }, {
1714
1713
  key: "getECPayCurrentTimeFormat",
1715
1714
  value: function getECPayCurrentTimeFormat(ts) {
1716
- return (0, _moment["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss");
1715
+ return (0, _momentTimezone["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss");
1717
1716
  }
1718
1717
  }, {
1719
1718
  key: "getCurrentTimeFormatV2",
1720
1719
  value: function getCurrentTimeFormatV2(ts) {
1721
- return (0, _moment["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss");
1720
+ return (0, _momentTimezone["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss");
1722
1721
  }
1723
1722
  }, {
1724
1723
  key: "getCurrentTimeFormatYMDHM",
1725
1724
  value: function getCurrentTimeFormatYMDHM(ts) {
1726
- return (0, _moment["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm");
1725
+ return (0, _momentTimezone["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm");
1727
1726
  }
1728
1727
  }, {
1729
1728
  key: "getCurrentTimeFormatYMDHMS",
1730
1729
  value: function getCurrentTimeFormatYMDHMS(ts) {
1731
- return (0, _moment["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss");
1730
+ return (0, _momentTimezone["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY/MM/DD HH:mm:ss");
1732
1731
  }
1733
1732
 
1734
1733
  /** 取得 YYY-MM-DD-HH-mm-ss */
1735
1734
  }, {
1736
1735
  key: "getCurrentTimeFormat",
1737
1736
  value: function getCurrentTimeFormat(ts) {
1738
- return (0, _moment["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY-MM-DD-HH-mm-ss");
1737
+ return (0, _momentTimezone["default"])(ts ? ts : this.getCurrentTimeStamp()).format("YYYY-MM-DD-HH-mm-ss");
1739
1738
  }
1740
1739
  }, {
1741
1740
  key: "getCurrentMillionSecTimeFormat",
1742
1741
  value: function getCurrentMillionSecTimeFormat(ts) {
1743
- return (0, _moment["default"])(ts ? ts : undefined).format("YYYY-MM-DD-HH-mm-ss-SSS");
1742
+ return (0, _momentTimezone["default"])(ts ? ts : undefined).format("YYYY-MM-DD-HH-mm-ss-SSS");
1744
1743
  }
1745
1744
  }, {
1746
1745
  key: "isBetweenTimeStamp",
@@ -1748,21 +1747,46 @@ var Utiller = /*#__PURE__*/function () {
1748
1747
  var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getCurrentTimeStamp();
1749
1748
  var min = arguments.length > 1 ? arguments[1] : undefined;
1750
1749
  var max = arguments.length > 2 ? arguments[2] : undefined;
1751
- return (0, _moment["default"])(target).isBetween(min, max);
1750
+ return (0, _momentTimezone["default"])(target).isBetween(min, max);
1752
1751
  }
1753
1752
  }, {
1754
1753
  key: "isBeforeTimeStamp",
1755
1754
  value: function isBeforeTimeStamp() {
1756
1755
  var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getCurrentTimeStamp();
1757
1756
  var time = arguments.length > 1 ? arguments[1] : undefined;
1758
- return (0, _moment["default"])(target).isBefore(time);
1757
+ return (0, _momentTimezone["default"])(target).isBefore(time);
1759
1758
  }
1760
1759
  }, {
1761
1760
  key: "isAfterTimeStamp",
1762
1761
  value: function isAfterTimeStamp() {
1763
1762
  var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getCurrentTimeStamp();
1764
1763
  var time = arguments.length > 1 ? arguments[1] : undefined;
1765
- return (0, _moment["default"])(target).isAfter(time);
1764
+ return (0, _momentTimezone["default"])(target).isAfter(time);
1765
+ }
1766
+
1767
+ /**
1768
+ * 根據地區語系與時區輸出 yyyy/MM/dd hh:mm 時間字串
1769
+ * @param {Date | number | string} ts - 時間戳記、日期物件或字串
1770
+ * @param {string} location - 語系地區代碼(如 'zh-TW'、'en-US')
1771
+ * @param {string} timezone - 時區(預設為 'Asia/Taipei')
1772
+ * @param {boolean} use24Hour - 是否使用 24 小時制(預設 true)
1773
+ * @returns {string}
1774
+ */
1775
+ }, {
1776
+ key: "formatTimeByLocale",
1777
+ value: function formatTimeByLocale(ts) {
1778
+ var location = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "zh-TW";
1779
+ var timezone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "Asia/Taipei";
1780
+ var use24Hour = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
1781
+ // 設定 moment 語系
1782
+ _momentTimezone["default"].locale(location);
1783
+
1784
+ // 轉換時區
1785
+ var m = (0, _momentTimezone["default"])(ts).tz(timezone);
1786
+
1787
+ // 格式化字串
1788
+ var formatStr = use24Hour ? "YYYY/MM/DD HH:mm" : "YYYY/MM/DD hh:mm A";
1789
+ return m.format(formatStr);
1766
1790
  }
1767
1791
 
1768
1792
  /** 獲得 幾天後的timestamp 的概念 {months: 2,days:3} =>
@@ -1781,7 +1805,7 @@ var Utiller = /*#__PURE__*/function () {
1781
1805
  hours: 0
1782
1806
  };
1783
1807
  var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getCurrentTimeStamp();
1784
- var base = (0, _moment["default"])(target);
1808
+ var base = (0, _momentTimezone["default"])(target);
1785
1809
  for (var each in param) {
1786
1810
  var number = param[each];
1787
1811
  var unit = each;
@@ -1807,7 +1831,7 @@ var Utiller = /*#__PURE__*/function () {
1807
1831
  key: "getTimeStampFromSpecificFormat",
1808
1832
  value: function getTimeStampFromSpecificFormat(string) {
1809
1833
  var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "YYYY/MM/DD HH:mm:ss";
1810
- return (0, _moment["default"])(string, format).valueOf();
1834
+ return (0, _momentTimezone["default"])(string, format).valueOf();
1811
1835
  }
1812
1836
  }, {
1813
1837
  key: "getTimeStampFromECPayStringFormat",
@@ -1819,42 +1843,42 @@ var Utiller = /*#__PURE__*/function () {
1819
1843
  }, {
1820
1844
  key: "getTimeFormatOfDurationToMillionSecond",
1821
1845
  value: function getTimeFormatOfDurationToMillionSecond(duration) {
1822
- return _moment["default"].utc(duration).format("HH小時mm分鐘ss秒SSS");
1846
+ return _momentTimezone["default"].utc(duration).format("HH小時mm分鐘ss秒SSS");
1823
1847
  }
1824
1848
 
1825
1849
  /** duration是兩個timestamp相減,把duration time-stamp 轉成 02:13,moment.utc 就是不會加八小時啦幹 */
1826
1850
  }, {
1827
1851
  key: "getTimeFormatOfDurationToSecond",
1828
1852
  value: function getTimeFormatOfDurationToSecond(duration) {
1829
- return _moment["default"].utc(duration).format("HH小時mm分鐘ss秒");
1853
+ return _momentTimezone["default"].utc(duration).format("HH小時mm分鐘ss秒");
1830
1854
  }
1831
1855
 
1832
1856
  /** duration是兩個timestamp相減,把duration time-stamp 轉成 02:13,moment.utc 就是不會加八小時啦幹 , 為什麼對多1天 超怪 */
1833
1857
  }, {
1834
1858
  key: "getTimeFormatOfDurationToDay",
1835
1859
  value: function getTimeFormatOfDurationToDay(duration) {
1836
- return _moment["default"].utc(duration).format("DD天HH小時mm分鐘ss秒");
1860
+ return _momentTimezone["default"].utc(duration).format("DD天HH小時mm分鐘ss秒");
1837
1861
  }
1838
1862
  }, {
1839
1863
  key: "getChineseTimeFormat",
1840
1864
  value: function getChineseTimeFormat(ts) {
1841
- _moment["default"].locale("zh-TW");
1842
- return (0, _moment["default"])(ts).format("LLLL");
1865
+ _momentTimezone["default"].locale("zh-TW");
1866
+ return (0, _momentTimezone["default"])(ts).format("LLLL");
1843
1867
  }
1844
1868
  }, {
1845
1869
  key: "getMinuteFormatOfDuration",
1846
1870
  value: function getMinuteFormatOfDuration(ds) {
1847
- return _moment["default"].duration(ds).asMinutes();
1871
+ return _momentTimezone["default"].duration(ds).asMinutes();
1848
1872
  }
1849
1873
  }, {
1850
1874
  key: "getSecondFormatOfDuration",
1851
1875
  value: function getSecondFormatOfDuration(ds) {
1852
- return _moment["default"].duration(ds).asSeconds();
1876
+ return _momentTimezone["default"].duration(ds).asSeconds();
1853
1877
  }
1854
1878
  }, {
1855
1879
  key: "getDayFormatOfDuration",
1856
1880
  value: function getDayFormatOfDuration(ds) {
1857
- return _moment["default"].duration(ds).asDays();
1881
+ return _momentTimezone["default"].duration(ds).asDays();
1858
1882
  }
1859
1883
 
1860
1884
  /** param可以是timeStamp,也可是date,或是string
@@ -1867,7 +1891,7 @@ var Utiller = /*#__PURE__*/function () {
1867
1891
  key: "getDurationOfMillionSec",
1868
1892
  value: function getDurationOfMillionSec(dateOrTimeStamp) {
1869
1893
  var currentTimestamp = this.getCurrentTimeStamp();
1870
- var targetTimeStamp = (0, _moment["default"])(dateOrTimeStamp).valueOf();
1894
+ var targetTimeStamp = (0, _momentTimezone["default"])(dateOrTimeStamp).valueOf();
1871
1895
  var queue = _lodash["default"].sortBy([{
1872
1896
  ts: currentTimestamp
1873
1897
  }, {
@@ -1877,16 +1901,16 @@ var Utiller = /*#__PURE__*/function () {
1877
1901
  }).map(function (each) {
1878
1902
  return each.ts;
1879
1903
  });
1880
- var after = (0, _moment["default"])(queue.pop());
1881
- var before = (0, _moment["default"])(queue.shift()); // another date
1882
- var duration = _moment["default"].duration(after.diff(before));
1904
+ var after = (0, _momentTimezone["default"])(queue.pop());
1905
+ var before = (0, _momentTimezone["default"])(queue.shift()); // another date
1906
+ var duration = _momentTimezone["default"].duration(after.diff(before));
1883
1907
  var ms = duration.asMilliseconds();
1884
1908
  return ms;
1885
1909
  }
1886
1910
  }, {
1887
1911
  key: "getCurrentTimeStamp",
1888
1912
  value: function getCurrentTimeStamp() {
1889
- return (0, _moment["default"])().valueOf();
1913
+ return (0, _momentTimezone["default"])().valueOf();
1890
1914
  }
1891
1915
  }, {
1892
1916
  key: "isStringContainInLines",
@@ -2067,7 +2091,7 @@ var Utiller = /*#__PURE__*/function () {
2067
2091
  }, {
2068
2092
  key: "enrichZhTw",
2069
2093
  value: function enrichZhTw() {
2070
- _moment["default"].locale("zh-tw", {
2094
+ _momentTimezone["default"].locale("zh-tw", {
2071
2095
  months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
2072
2096
  monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
2073
2097
  weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
@@ -2128,13 +2152,13 @@ var Utiller = /*#__PURE__*/function () {
2128
2152
  },
2129
2153
  nextWeek: function nextWeek() {
2130
2154
  var startOfWeek, prefix;
2131
- startOfWeek = (0, _moment["default"])().startOf("week");
2155
+ startOfWeek = (0, _momentTimezone["default"])().startOf("week");
2132
2156
  prefix = this.diff(startOfWeek, "days") >= 7 ? "[下]" : "[本]";
2133
2157
  return this.minutes() === 0 ? prefix + "dddA點整" : prefix + "dddAh點mm";
2134
2158
  },
2135
2159
  lastWeek: function lastWeek() {
2136
2160
  var startOfWeek, prefix;
2137
- startOfWeek = (0, _moment["default"])().startOf("week");
2161
+ startOfWeek = (0, _momentTimezone["default"])().startOf("week");
2138
2162
  prefix = this.unix() < startOfWeek.unix() ? "[上]" : "[本]";
2139
2163
  return this.minutes() === 0 ? prefix + "dddAh點整" : prefix + "dddAh點mm";
2140
2164
  },
@@ -2919,7 +2943,7 @@ var Utiller = /*#__PURE__*/function () {
2919
2943
  key: "isOverSpecificAge",
2920
2944
  value: function isOverSpecificAge(birthDate) {
2921
2945
  var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 18;
2922
- var age = (0, _moment["default"])().diff((0, _moment["default"])(birthDate, "YYYY-MM-DD"), "years");
2946
+ var age = (0, _momentTimezone["default"])().diff((0, _momentTimezone["default"])(birthDate, "YYYY-MM-DD"), "years");
2923
2947
  return age >= target;
2924
2948
  }
2925
2949
  }, {
@@ -2993,7 +3017,7 @@ var Utiller = /*#__PURE__*/function () {
2993
3017
  valid: false,
2994
3018
  message: "\u51FA\u751F\u65E5\u671F\u683C\u5F0F\u4E0D\u6B63\u78BA"
2995
3019
  };
2996
- var now = (0, _moment["default"])();
3020
+ var now = (0, _momentTimezone["default"])();
2997
3021
  var age = now.diff(birthday, "years");
2998
3022
  if (age < ageOfQualify) {
2999
3023
  return {
@@ -3027,8 +3051,8 @@ var Utiller = /*#__PURE__*/function () {
3027
3051
  key: "getStringOfFormatTimestampRange",
3028
3052
  value: function getStringOfFormatTimestampRange(startTimestamp, endTimestamp) {
3029
3053
  // 使用 moment 解析 timestamp
3030
- var startDate = (0, _moment["default"])(startTimestamp);
3031
- var endDate = (0, _moment["default"])(endTimestamp);
3054
+ var startDate = (0, _momentTimezone["default"])(startTimestamp);
3055
+ var endDate = (0, _momentTimezone["default"])(endTimestamp);
3032
3056
 
3033
3057
  // 格式化日期為 YY/MM/DD 格式
3034
3058
  var formatDate = function formatDate(date) {
@@ -3063,8 +3087,8 @@ var Utiller = /*#__PURE__*/function () {
3063
3087
  key: "getStringOfCalculateClassTime",
3064
3088
  value: function getStringOfCalculateClassTime(startTimestamp, endTimestamp, weeklyMinutes) {
3065
3089
  // 使用 moment 解析 timestamp
3066
- var startDate = (0, _moment["default"])(startTimestamp);
3067
- var endDate = (0, _moment["default"])(endTimestamp);
3090
+ var startDate = (0, _momentTimezone["default"])(startTimestamp);
3091
+ var endDate = (0, _momentTimezone["default"])(endTimestamp);
3068
3092
 
3069
3093
  // 計算時間範圍內的天數
3070
3094
  var totalDays = endDate.diff(startDate, "days") + 1; // 包含起始日
@@ -3096,15 +3120,15 @@ var Utiller = /*#__PURE__*/function () {
3096
3120
  value: function getNumberOfPeriodMinute(startTimestamp, endTimestamp) {
3097
3121
  // 使用 moment 解析 timestamp
3098
3122
  // 使用 moment 解析 timestamp 並只取時間的 hh:mm 部分
3099
- var startTime = (0, _moment["default"])(startTimestamp).format("HH:mm");
3100
- var endTime = (0, _moment["default"])(endTimestamp).format("HH:mm");
3123
+ var startTime = (0, _momentTimezone["default"])(startTimestamp).format("HH:mm");
3124
+ var endTime = (0, _momentTimezone["default"])(endTimestamp).format("HH:mm");
3101
3125
 
3102
3126
  // 使用 moment 重新將 hh:mm 轉換為完整的日期對象
3103
- var startDate = (0, _moment["default"])(startTime, "HH:mm");
3104
- var endDate = (0, _moment["default"])(endTime, "HH:mm");
3127
+ var startDate = (0, _momentTimezone["default"])(startTime, "HH:mm");
3128
+ var endDate = (0, _momentTimezone["default"])(endTime, "HH:mm");
3105
3129
 
3106
3130
  // 計算兩個時間之間的分鐘差距
3107
- var durationInMinutes = _moment["default"].duration(endDate.diff(startDate)).asMinutes();
3131
+ var durationInMinutes = _momentTimezone["default"].duration(endDate.diff(startDate)).asMinutes();
3108
3132
  return durationInMinutes;
3109
3133
  }
3110
3134
  }, {
@@ -3133,8 +3157,8 @@ var Utiller = /*#__PURE__*/function () {
3133
3157
  }
3134
3158
 
3135
3159
  // 使用 moment 將 timestamp 轉換為只保留 hh:mm 的格式
3136
- var startTime = (0, _moment["default"])(startTimestamp).format("HH:mm");
3137
- var endTime = (0, _moment["default"])(endTimestamp).format("HH:mm");
3160
+ var startTime = (0, _momentTimezone["default"])(startTimestamp).format("HH:mm");
3161
+ var endTime = (0, _momentTimezone["default"])(endTimestamp).format("HH:mm");
3138
3162
 
3139
3163
  // 組合結果並返回
3140
3164
  return "".concat(daysOfWeek[day], " ").concat(startTime, "-").concat(endTime);
@@ -3596,6 +3620,41 @@ var Utiller = /*#__PURE__*/function () {
3596
3620
  return predict(value);
3597
3621
  }));
3598
3622
  }
3623
+
3624
+ /**
3625
+ *
3626
+ const array = [
3627
+ { serial: 'A023' },
3628
+ { serial: 'Z001' },
3629
+ { serial: 'C002' },
3630
+ { serial: 'G123' },
3631
+ { serial: 'A001' },
3632
+ { serial: 'A999' }
3633
+ ];
3634
+ mutateBy(array, (item) => {
3635
+ const serial = item.serial;
3636
+ const match = serial.match(/^([A-Z]+)(\d+)$/i);
3637
+ const [letter, number] = match ? [match[1], parseInt(match[2], 10)] : [serial, 0];
3638
+ return [letter, number]; // 多層排序:先字母,再數字
3639
+ });
3640
+ *
3641
+ * [ { serial: 'A001' }, { serial: 'A023' }, { serial: 'A999' }, { serial: 'C002' }, { serial: 'G123' }, { serial: 'Z001' } ]
3642
+ *
3643
+ *
3644
+ * 通用的排序變異工具:依照 predict 提供的排序 key 對 array 進行原地排序(mutated)
3645
+ *
3646
+ * @param {Array} array - 要排序的陣列(會就地變異)
3647
+ * @param {Function} predict - 回傳排序 key(可以是陣列以支援多層排序)
3648
+ */
3649
+ }, {
3650
+ key: "mutateBy",
3651
+ value: function mutateBy(array) {
3652
+ var predict = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (item) {
3653
+ return item;
3654
+ };
3655
+ var sorted = _lodash["default"].sortBy(array, predict);
3656
+ array.splice.apply(array, [0, array.length].concat((0, _toConsumableArray2["default"])(sorted)));
3657
+ }
3599
3658
  }]);
3600
3659
  }();
3601
3660
  var _default = exports["default"] = Utiller;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "utiller",
3
- "version": "1.0.321",
3
+ "version": "1.0.323",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -23,7 +23,7 @@
23
23
  "fs-extra": "^9.1.0",
24
24
  "lodash": "^4.17.20",
25
25
  "moment": "^2.29.1",
26
- "moment-timezone": "^0.5.34",
26
+ "moment-timezone": "^0.5.48",
27
27
  "node-html-parser": "^7.0.1",
28
28
  "pdf-parse": "^1.1.1",
29
29
  "prompt": "^1.1.0",
@@ -11,7 +11,7 @@
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
13
  "configerer": "^1.0.11",
14
- "utiller": "^1.0.320",
14
+ "utiller": "^1.0.322",
15
15
  "linepayer": "^1.0.4",
16
16
  "databazer": "^1.0.12",
17
17
  "lodash": "^4.17.20",