utiller 1.0.277 → 1.0.279
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.
- package/lib/utiller/index.js +55 -2
- package/lib/utiller/nodeutiller.js +334 -305
- package/package.json +1 -1
- package/template/sample.package.json +1 -1
package/lib/utiller/index.js
CHANGED
|
@@ -9,6 +9,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
9
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
10
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
13
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
14
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -41,6 +42,33 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
41
42
|
var _this = this;
|
|
42
43
|
(0, _classCallCheck2["default"])(this, Utiller);
|
|
43
44
|
(0, _defineProperty2["default"])(this, "mapOfIdNTimeoutId", {});
|
|
45
|
+
/**
|
|
46
|
+
* 從物件中依條件過濾出符合條件的 key-value pair
|
|
47
|
+
* @param {Object} object - 原始物件
|
|
48
|
+
* @param {Function} predict - 過濾條件函式,預設為 each.used === true
|
|
49
|
+
* @returns {Object} - 符合條件的新物件
|
|
50
|
+
*
|
|
51
|
+
* const objects = {
|
|
52
|
+
* a: { used: true },
|
|
53
|
+
* b: { used: false },
|
|
54
|
+
* c: { used: true }
|
|
55
|
+
* };
|
|
56
|
+
*
|
|
57
|
+
* const usedObjects = getObjectBy(objects);
|
|
58
|
+
*
|
|
59
|
+
* console.log(usedObjects);
|
|
60
|
+
* // 👉 { a: { used: true }, c: { used: true } }
|
|
61
|
+
*/
|
|
62
|
+
(0, _defineProperty2["default"])(this, "getObjectBy", function (object) {
|
|
63
|
+
var predict = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (each) {
|
|
64
|
+
return each.used === true;
|
|
65
|
+
};
|
|
66
|
+
return Object.fromEntries(_lodash["default"].filter(_lodash["default"].entries(object), function (_ref) {
|
|
67
|
+
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
|
|
68
|
+
value = _ref2[1];
|
|
69
|
+
return predict(value);
|
|
70
|
+
}));
|
|
71
|
+
});
|
|
44
72
|
(0, _defineProperty2["default"])(this, "getEnvironment", function () {
|
|
45
73
|
return _this.env;
|
|
46
74
|
});
|
|
@@ -231,7 +259,7 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
231
259
|
});
|
|
232
260
|
*/
|
|
233
261
|
(0, _defineProperty2["default"])(this, "measureExecutionTime", /*#__PURE__*/function () {
|
|
234
|
-
var
|
|
262
|
+
var _ref5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(fn) {
|
|
235
263
|
var startTime,
|
|
236
264
|
_len2,
|
|
237
265
|
param,
|
|
@@ -273,7 +301,7 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
273
301
|
}, _callee3);
|
|
274
302
|
}));
|
|
275
303
|
return function (_x) {
|
|
276
|
-
return
|
|
304
|
+
return _ref5.apply(this, arguments);
|
|
277
305
|
};
|
|
278
306
|
}());
|
|
279
307
|
(0, _defineProperty2["default"])(this, "formatPriceWithCurrency", function (number, locale) {
|
|
@@ -303,6 +331,31 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
303
331
|
minimumFractionDigits: 0 // 確保不顯示小數
|
|
304
332
|
}).format(number);
|
|
305
333
|
});
|
|
334
|
+
/**
|
|
335
|
+
* 從絕對路徑中取出 "src/" 之後的部分(包含前置 /)
|
|
336
|
+
* @param {string} fullPath - 完整的絕對檔案路徑
|
|
337
|
+
* @returns {string} - 以 / 開頭、從 src/ 之後開始的相對路徑
|
|
338
|
+
*/
|
|
339
|
+
(0, _defineProperty2["default"])(this, "getPathAfterSrc", function (fullPath) {
|
|
340
|
+
return _this.getPathAfterSpecificFolder(fullPath);
|
|
341
|
+
});
|
|
342
|
+
/**
|
|
343
|
+
* 從絕對路徑中取出 "src/" 之後的部分(包含前置 /)
|
|
344
|
+
* @param {string} fullPath - 完整的絕對檔案路徑
|
|
345
|
+
* @param {string} folder - 針對/folder/之後作為split起點
|
|
346
|
+
* @returns {string} - 以 / 開頭、從 src/ 之後開始的相對路徑
|
|
347
|
+
*/
|
|
348
|
+
(0, _defineProperty2["default"])(this, "getPathAfterSpecificFolder", function (fullPath) {
|
|
349
|
+
var folder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "src";
|
|
350
|
+
var parts = _lodash["default"].split(fullPath, path.sep);
|
|
351
|
+
var indexOfSrc = _lodash["default"].findLastIndex(parts, function (part) {
|
|
352
|
+
return part === folder;
|
|
353
|
+
});
|
|
354
|
+
if (indexOfSrc === -1) return ""; // 找不到 src,回傳空字串
|
|
355
|
+
|
|
356
|
+
var relativeParts = _lodash["default"].slice(parts, indexOfSrc + 1);
|
|
357
|
+
return _lodash["default"].join(relativeParts, "/");
|
|
358
|
+
});
|
|
306
359
|
this.init();
|
|
307
360
|
this.env = "dev";
|
|
308
361
|
}
|