utiller 1.0.333 → 1.0.334
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 +32 -27
- package/package.json +1 -1
- package/template/sample.package.json +1 -1
package/lib/utiller/index.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
+
var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
|
|
9
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
11
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
@@ -3787,28 +3788,8 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
3787
3788
|
.value();
|
|
3788
3789
|
}
|
|
3789
3790
|
}, {
|
|
3790
|
-
key: "
|
|
3791
|
+
key: "generateUidCombinations",
|
|
3791
3792
|
value:
|
|
3792
|
-
/**
|
|
3793
|
-
* const array1 = ['黑色', '綠色', '金色']
|
|
3794
|
-
* const array2 = ['S', 'M', 'L']
|
|
3795
|
-
* const array3 = ['短袖', '長袖']
|
|
3796
|
-
* const result = generateGenericCombinations([array1, array2, array3])
|
|
3797
|
-
* console.log(result)
|
|
3798
|
-
* ['黑色 | S | 短袖', '黑色 | S | 長袖', '黑色 | M | 短袖', '黑色 | M | 長袖', '黑色 | L | 短袖',
|
|
3799
|
-
'綠色 | S | 短袖', '綠色 | S | 長袖', '金色 | L | 長袖' '黑色 | L | 長袖' ]
|
|
3800
|
-
* */
|
|
3801
|
-
function generateGenericCombinations(arrays) {
|
|
3802
|
-
var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : " | ";
|
|
3803
|
-
return arrays.reduce(function (acc, curr) {
|
|
3804
|
-
return _lodash["default"].flatMap(acc, function (a) {
|
|
3805
|
-
return curr.map(function (b) {
|
|
3806
|
-
return (Array.isArray(a) ? a.join(separator) : a) + separator + b;
|
|
3807
|
-
});
|
|
3808
|
-
});
|
|
3809
|
-
}, arrays[0]);
|
|
3810
|
-
}
|
|
3811
|
-
|
|
3812
3793
|
/** ------------------------------------------------------------------------------------- 起始UID-COMBINATION
|
|
3813
3794
|
* 建立組合清單及 UID 映射清單
|
|
3814
3795
|
*
|
|
@@ -3832,18 +3813,42 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
3832
3813
|
* console.log('✅ 還原結果:', getOriginalFromUid(sampleUid, lookupTable))
|
|
3833
3814
|
*
|
|
3834
3815
|
*/
|
|
3835
|
-
|
|
3836
|
-
|
|
3837
|
-
|
|
3816
|
+
/**
|
|
3817
|
+
* 產生所有排列組合並轉成 Firestore-safe UID
|
|
3818
|
+
* @param {string[][]} arrays - 字串陣列的陣列,例如 [['黑色', '綠色'], ['S', 'M']]
|
|
3819
|
+
* @param {string} separator - 分隔符號,預設為 ' | '
|
|
3820
|
+
* @returns {Array<{[uid: string]: string}>} - 每個 UID 對應一組原始組合的對照表陣列
|
|
3821
|
+
*/
|
|
3822
|
+
function generateUidCombinations(arrays) {
|
|
3838
3823
|
var _this4 = this;
|
|
3839
3824
|
var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : " | ";
|
|
3840
|
-
|
|
3825
|
+
if (!arrays.length) return [];
|
|
3826
|
+
|
|
3827
|
+
// 過濾每個子陣列中的 null、undefined、空字串
|
|
3828
|
+
var sanitizedArrays = arrays.map(function (group) {
|
|
3829
|
+
return group.filter(function (item) {
|
|
3830
|
+
return item !== null && item !== undefined && item !== "";
|
|
3831
|
+
});
|
|
3832
|
+
});
|
|
3833
|
+
|
|
3834
|
+
// 若有空陣列,代表某一層無可用資料,無法生成組合
|
|
3835
|
+
if (sanitizedArrays.some(function (group) {
|
|
3836
|
+
return group.length === 0;
|
|
3837
|
+
})) return [];
|
|
3838
|
+
|
|
3839
|
+
// 把第一組當作初始值,從第二組開始遞迴產生所有組合
|
|
3840
|
+
var _sanitizedArrays = (0, _toArray2["default"])(sanitizedArrays),
|
|
3841
|
+
first = _sanitizedArrays[0],
|
|
3842
|
+
rest = _sanitizedArrays.slice(1);
|
|
3843
|
+
var combinations = rest.reduce(function (acc, curr) {
|
|
3841
3844
|
return _lodash["default"].flatMap(acc, function (a) {
|
|
3842
3845
|
return curr.map(function (b) {
|
|
3843
3846
|
return (Array.isArray(a) ? a.join(separator) : a) + separator + b;
|
|
3844
3847
|
});
|
|
3845
3848
|
});
|
|
3846
|
-
},
|
|
3849
|
+
}, first);
|
|
3850
|
+
|
|
3851
|
+
// 每組組合轉成 UID 對照物件
|
|
3847
3852
|
return combinations.map(function (str) {
|
|
3848
3853
|
var uid = _this4.encodeToUid(str);
|
|
3849
3854
|
return (0, _defineProperty2["default"])({}, uid, str);
|
|
@@ -3866,7 +3871,7 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
3866
3871
|
}
|
|
3867
3872
|
|
|
3868
3873
|
/**
|
|
3869
|
-
* 根據 UID
|
|
3874
|
+
* 根據 UID 還原原始組合(透過對照表或解碼備援)
|
|
3870
3875
|
*/
|
|
3871
3876
|
}, {
|
|
3872
3877
|
key: "getOriginalFromUid",
|
package/package.json
CHANGED