@pisell/pisellos 2.3.74 → 2.3.76
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/dist/core/index.js +6 -10
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +0 -1
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.js +2 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +75 -91
- package/dist/modules/Order/types.d.ts +3 -1
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Rules/index.js +1 -4
- package/dist/modules/Schedule/index.js +0 -1
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +97 -129
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/order/index.js +2 -4
- package/dist/server/modules/products/index.js +24 -42
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +3 -4
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +100 -72
- package/dist/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/dist/solution/BaseSales/utils/cartPromotion.js +15 -6
- package/dist/solution/BookingByStep/index.js +7 -59
- package/dist/solution/BookingByStep/utils/capacity.js +1 -11
- package/dist/solution/BookingByStep/utils/resources.js +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
- package/dist/solution/BookingTicket/index.js +0 -2
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -7
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
- package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.js +177 -252
- package/dist/solution/Checkout/utils/index.js +4 -16
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/ScanOrder/index.js +50 -60
- package/dist/solution/ShopDiscount/index.js +2 -7
- package/dist/solution/VenueBooking/index.js +45 -55
- package/dist/utils/task.js +15 -18
- package/dist/utils/watch.js +0 -1
- package/lib/apis/picoding.js +2 -0
- package/lib/core/index.js +134 -134
- package/lib/effects/index.js +46 -57
- package/lib/index.js +82 -49
- package/lib/model/index.js +14 -21
- package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
- package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
- package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
- package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
- package/lib/model/strategy/adapter/index.js +100 -64
- package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
- package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
- package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
- package/lib/model/strategy/adapter/itemRule/index.js +83 -57
- package/lib/model/strategy/adapter/itemRule/type.js +97 -36
- package/lib/model/strategy/adapter/promotion/adapter.js +91 -69
- package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
- package/lib/model/strategy/adapter/promotion/examples.js +222 -234
- package/lib/model/strategy/adapter/promotion/index.js +1 -0
- package/lib/model/strategy/adapter/promotion/type.js +243 -36
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
- package/lib/model/strategy/adapter/walletPass/example.js +217 -190
- package/lib/model/strategy/adapter/walletPass/index.js +75 -51
- package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
- package/lib/model/strategy/adapter/walletPass/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/utils.js +588 -378
- package/lib/model/strategy/engine.js +270 -168
- package/lib/model/strategy/index.js +49 -34
- package/lib/model/strategy/strategy-example.js +243 -239
- package/lib/model/strategy/type.js +100 -40
- package/lib/modules/Account/index.js +39 -53
- package/lib/modules/Account/types.js +20 -33
- package/lib/modules/AccountList/index.js +116 -154
- package/lib/modules/AccountList/types.js +30 -31
- package/lib/modules/AccountList/utils.js +18 -30
- package/lib/modules/BaseModule.js +23 -42
- package/lib/modules/BookingContext/index.js +158 -136
- package/lib/modules/BookingContext/types.js +46 -32
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
- package/lib/modules/BookingContext/utils/flexible.js +38 -55
- package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
- package/lib/modules/BookingContext/utils/index.js +124 -41
- package/lib/modules/BookingContext/utils/noResource.js +58 -70
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
- package/lib/modules/BookingContext/utils/productExtend.js +202 -155
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
- package/lib/modules/BookingContext/utils/resources.js +209 -167
- package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
- package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
- package/lib/modules/Cart/index.js +170 -124
- package/lib/modules/Cart/types.js +46 -51
- package/lib/modules/Cart/utils/cartAccount.js +40 -39
- package/lib/modules/Cart/utils/cartDate.js +56 -61
- package/lib/modules/Cart/utils/cartDiscount.js +28 -33
- package/lib/modules/Cart/utils/cartNote.js +27 -32
- package/lib/modules/Cart/utils/cartProduct.js +321 -251
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +70 -78
- package/lib/modules/Cart/utils/changePrice.js +22 -50
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +235 -172
- package/lib/modules/Customer/types.js +38 -35
- package/lib/modules/Date/index.js +116 -115
- package/lib/modules/Date/types.js +16 -28
- package/lib/modules/Date/utils.js +174 -123
- package/lib/modules/Discount/index.js +122 -127
- package/lib/modules/Discount/types.js +9 -31
- package/lib/modules/Guests/index.js +30 -56
- package/lib/modules/Guests/types.js +23 -33
- package/lib/modules/Holder/index.js +209 -189
- package/lib/modules/Holder/types.js +4 -16
- package/lib/modules/Holder/utils.js +20 -49
- package/lib/modules/OpenData/index.js +70 -76
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +1733 -2121
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.d.ts +3 -1
- package/lib/modules/Order/types.js +88 -35
- package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
- package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
- package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
- package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
- package/lib/modules/Order/utils.js +814 -647
- package/lib/modules/Payment/cash.js +20 -33
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
- package/lib/modules/Payment/eftpos.js +16 -30
- package/lib/modules/Payment/index.js +532 -399
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +230 -108
- package/lib/modules/Payment/utils.js +52 -51
- package/lib/modules/Payment/walletpass.js +485 -660
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +113 -123
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +81 -118
- package/lib/modules/Quotation/types.js +4 -16
- package/lib/modules/Resource/index.js +27 -59
- package/lib/modules/Resource/types.js +22 -32
- package/lib/modules/Resource/utils.js +30 -38
- package/lib/modules/ResourcePlanner/index.js +25 -23
- package/lib/modules/ResourcePlanner/localClock.js +54 -119
- package/lib/modules/ResourcePlanner/planner.js +589 -770
- package/lib/modules/ResourcePlanner/types.js +10 -29
- package/lib/modules/Rules/index.js +1218 -959
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +85 -90
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +355 -430
- package/lib/modules/ScanOrderLogger/index.js +59 -79
- package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
- package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
- package/lib/modules/ScanOrderLogger/types.js +4 -16
- package/lib/modules/Schedule/getDateIsInSchedule.js +334 -163
- package/lib/modules/Schedule/index.js +100 -114
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.js +4 -16
- package/lib/modules/Schedule/utils.js +433 -291
- package/lib/modules/Step/index.js +40 -52
- package/lib/modules/Step/tyeps.js +4 -16
- package/lib/modules/Summary/index.js +66 -71
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +773 -418
- package/lib/modules/SurchargeList/index.js +46 -60
- package/lib/modules/SurchargeList/types.js +4 -16
- package/lib/modules/index.js +245 -63
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.js +137 -126
- package/lib/plugins/shopStore.js +4 -16
- package/lib/plugins/user.js +4 -16
- package/lib/plugins/window.js +171 -179
- package/lib/server/index.js +3050 -2665
- package/lib/server/modules/floor-plan/index.js +118 -134
- package/lib/server/modules/floor-plan/types.js +15 -30
- package/lib/server/modules/index.js +106 -68
- package/lib/server/modules/menu/index.js +142 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +784 -1002
- package/lib/server/modules/order/types.js +122 -33
- package/lib/server/modules/order/utils/filterBookings.js +219 -194
- package/lib/server/modules/order/utils/filterOrders.js +118 -92
- package/lib/server/modules/payment/index.js +59 -83
- package/lib/server/modules/payment/types.js +4 -16
- package/lib/server/modules/products/index.js +583 -471
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.js +137 -172
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +220 -186
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +135 -123
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +196 -139
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/small-ticket.js +479 -456
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.js +1220 -1412
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.d.ts +5 -0
- package/lib/solution/BaseSales/utils/cartPromotion.js +652 -498
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
- package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
- package/lib/solution/BaseSales/utils.js +158 -143
- package/lib/solution/BookingByStep/index.js +1527 -1340
- package/lib/solution/BookingByStep/types.js +40 -99
- package/lib/solution/BookingByStep/utils/capacity.js +192 -160
- package/lib/solution/BookingByStep/utils/products.js +42 -52
- package/lib/solution/BookingByStep/utils/resources.js +527 -330
- package/lib/solution/BookingByStep/utils/stock.js +65 -44
- package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
- package/lib/solution/BookingTicket/index.js +607 -522
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
- package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
- package/lib/solution/BookingTicket/utils/cartView.js +114 -99
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
- package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.js +1451 -1158
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +228 -156
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +493 -460
- package/lib/solution/RegisterAndLogin/index.js +633 -630
- package/lib/solution/RegisterAndLogin/types.js +189 -76
- package/lib/solution/RegisterAndLogin/utils.js +183 -125
- package/lib/solution/Sales/index.js +328 -324
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +832 -864
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.js +409 -374
- package/lib/solution/ShopDiscount/index.js +226 -232
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +300 -172
- package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
- package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
- package/lib/solution/UnifiedBookingSales/types.js +10 -32
- package/lib/solution/VenueBooking/index.js +811 -879
- package/lib/solution/VenueBooking/types.js +19 -39
- package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
- package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +124 -41
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/payment-number.js +26 -46
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
package/lib/plugins/request.js
CHANGED
|
@@ -1,98 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(request_exports, {
|
|
22
|
-
RequestError: () => RequestError,
|
|
23
|
-
RequestModeENUM: () => RequestModeENUM,
|
|
24
|
-
default: () => request_default
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
25
5
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
6
|
+
exports.default = exports.RequestModeENUM = exports.RequestError = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* RequestPlugin 接口定义
|
|
9
|
+
*/
|
|
10
|
+
let RequestModeENUM = exports.RequestModeENUM = /*#__PURE__*/function (RequestModeENUM) {
|
|
11
|
+
RequestModeENUM["LOCAL"] = "local";
|
|
12
|
+
RequestModeENUM["REMOTE"] = "remote";
|
|
13
|
+
RequestModeENUM["LOCAL_REMOTE"] = "local_remote";
|
|
14
|
+
RequestModeENUM["REMOTE_LOCAL"] = "remote_local";
|
|
15
|
+
RequestModeENUM["OS_SERVER"] = "os_server";
|
|
16
|
+
return RequestModeENUM;
|
|
17
|
+
}({}); // 请求模式
|
|
18
|
+
/**
|
|
19
|
+
* 请求配置
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* 响应接口
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* 请求错误
|
|
26
|
+
*/
|
|
27
|
+
class RequestError extends Error {
|
|
28
|
+
response;
|
|
29
|
+
request;
|
|
30
|
+
config;
|
|
36
31
|
constructor(message, config, request, response) {
|
|
37
32
|
super(message);
|
|
38
|
-
this.name =
|
|
33
|
+
this.name = 'RequestError';
|
|
39
34
|
this.config = config;
|
|
40
35
|
this.request = request;
|
|
41
36
|
this.response = response;
|
|
42
37
|
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* RequestPlugin 实现
|
|
42
|
+
*/
|
|
43
|
+
exports.RequestError = RequestError;
|
|
44
|
+
class RequestPluginImpl {
|
|
45
|
+
name = 'request';
|
|
46
|
+
version = '1.0.0';
|
|
47
|
+
core = null;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 默认请求选项
|
|
51
|
+
*/
|
|
52
|
+
defaultOptions = {
|
|
53
|
+
method: 'GET',
|
|
54
|
+
headers: {
|
|
55
|
+
'Content-Type': 'application/json'
|
|
56
|
+
},
|
|
57
|
+
timeout: 30000,
|
|
58
|
+
responseType: 'json'
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 全局拦截器
|
|
63
|
+
*/
|
|
64
|
+
interceptors = {
|
|
65
|
+
request: [],
|
|
66
|
+
response: [],
|
|
67
|
+
error: []
|
|
68
|
+
};
|
|
69
|
+
|
|
69
70
|
// 初始化方法
|
|
70
71
|
initialize() {
|
|
71
72
|
this.core = globalThis.pisellOS;
|
|
72
|
-
console.log("[RequestPlugin] 初始化完成");
|
|
73
73
|
}
|
|
74
|
+
|
|
74
75
|
// 销毁方法
|
|
75
|
-
destroy() {
|
|
76
|
-
|
|
77
|
-
}
|
|
76
|
+
destroy() {}
|
|
77
|
+
|
|
78
78
|
/**
|
|
79
79
|
* 添加请求拦截器
|
|
80
80
|
*/
|
|
81
81
|
addRequestInterceptor(interceptor) {
|
|
82
82
|
this.interceptors.request.push(interceptor);
|
|
83
83
|
}
|
|
84
|
+
|
|
84
85
|
/**
|
|
85
86
|
* 添加响应拦截器
|
|
86
87
|
*/
|
|
87
88
|
addResponseInterceptor(interceptor) {
|
|
88
89
|
this.interceptors.response.push(interceptor);
|
|
89
90
|
}
|
|
91
|
+
|
|
90
92
|
/**
|
|
91
93
|
* 添加错误拦截器
|
|
92
94
|
*/
|
|
93
95
|
addErrorInterceptor(interceptor) {
|
|
94
96
|
this.interceptors.error.push(interceptor);
|
|
95
97
|
}
|
|
98
|
+
|
|
96
99
|
/**
|
|
97
100
|
* GET 请求
|
|
98
101
|
*/
|
|
@@ -100,9 +103,10 @@ var RequestPluginImpl = class {
|
|
|
100
103
|
return this.request({
|
|
101
104
|
...options,
|
|
102
105
|
url,
|
|
103
|
-
method:
|
|
106
|
+
method: 'GET'
|
|
104
107
|
});
|
|
105
108
|
}
|
|
109
|
+
|
|
106
110
|
/**
|
|
107
111
|
* POST 请求
|
|
108
112
|
*/
|
|
@@ -110,10 +114,11 @@ var RequestPluginImpl = class {
|
|
|
110
114
|
return this.request({
|
|
111
115
|
...options,
|
|
112
116
|
url,
|
|
113
|
-
method:
|
|
117
|
+
method: 'POST',
|
|
114
118
|
data
|
|
115
119
|
});
|
|
116
120
|
}
|
|
121
|
+
|
|
117
122
|
/**
|
|
118
123
|
* PUT 请求
|
|
119
124
|
*/
|
|
@@ -121,10 +126,11 @@ var RequestPluginImpl = class {
|
|
|
121
126
|
return this.request({
|
|
122
127
|
...options,
|
|
123
128
|
url,
|
|
124
|
-
method:
|
|
129
|
+
method: 'PUT',
|
|
125
130
|
data
|
|
126
131
|
});
|
|
127
132
|
}
|
|
133
|
+
|
|
128
134
|
/**
|
|
129
135
|
* DELETE 请求
|
|
130
136
|
*/
|
|
@@ -132,13 +138,15 @@ var RequestPluginImpl = class {
|
|
|
132
138
|
return this.request({
|
|
133
139
|
...options,
|
|
134
140
|
url,
|
|
135
|
-
method:
|
|
141
|
+
method: 'DELETE'
|
|
136
142
|
});
|
|
137
143
|
}
|
|
144
|
+
|
|
138
145
|
/**
|
|
139
146
|
* 通用请求方法
|
|
140
147
|
*/
|
|
141
148
|
async request(options) {
|
|
149
|
+
// 合并默认选项
|
|
142
150
|
let config = {
|
|
143
151
|
...this.defaultOptions,
|
|
144
152
|
...options,
|
|
@@ -147,54 +155,52 @@ var RequestPluginImpl = class {
|
|
|
147
155
|
...options.headers
|
|
148
156
|
}
|
|
149
157
|
};
|
|
150
|
-
if (!config.headers[
|
|
151
|
-
const windowPlugin = this.core.getPlugin(
|
|
158
|
+
if (!config.headers['authorization'] && this.core) {
|
|
159
|
+
const windowPlugin = this.core.getPlugin('window');
|
|
152
160
|
if (windowPlugin) {
|
|
153
|
-
config.headers[
|
|
161
|
+
config.headers['authorization'] = windowPlugin.localStorage.getItem('token') || '';
|
|
154
162
|
}
|
|
155
163
|
}
|
|
164
|
+
|
|
165
|
+
// 应用请求拦截器
|
|
156
166
|
for (const interceptor of this.interceptors.request) {
|
|
157
167
|
try {
|
|
158
168
|
config = await Promise.resolve(interceptor(config));
|
|
159
169
|
} catch (error) {
|
|
160
|
-
const requestError = error instanceof RequestError ? error : new RequestError(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
);
|
|
170
|
+
const requestError = error instanceof RequestError ? error : new RequestError(error instanceof Error ? error.message : '请求拦截器错误', config);
|
|
171
|
+
|
|
172
|
+
// 应用错误拦截器
|
|
164
173
|
let processedError = requestError;
|
|
165
174
|
for (const errorInterceptor of this.interceptors.error) {
|
|
166
175
|
try {
|
|
167
|
-
processedError = await Promise.resolve(
|
|
168
|
-
errorInterceptor(processedError)
|
|
169
|
-
);
|
|
176
|
+
processedError = await Promise.resolve(errorInterceptor(processedError));
|
|
170
177
|
} catch (e) {
|
|
178
|
+
// 忽略错误拦截器中的错误
|
|
171
179
|
}
|
|
172
180
|
}
|
|
173
181
|
throw processedError;
|
|
174
182
|
}
|
|
175
183
|
}
|
|
184
|
+
|
|
185
|
+
// 执行请求
|
|
176
186
|
try {
|
|
177
187
|
const response = await this.performRequest(config);
|
|
188
|
+
|
|
189
|
+
// 应用响应拦截器
|
|
178
190
|
let processedResponse = response;
|
|
179
191
|
for (const interceptor of this.interceptors.response) {
|
|
180
192
|
try {
|
|
181
|
-
processedResponse = await Promise.resolve(
|
|
182
|
-
interceptor(processedResponse)
|
|
183
|
-
);
|
|
193
|
+
processedResponse = await Promise.resolve(interceptor(processedResponse));
|
|
184
194
|
} catch (error) {
|
|
185
|
-
const requestError = error instanceof RequestError ? error : new RequestError(
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
null,
|
|
189
|
-
response
|
|
190
|
-
);
|
|
195
|
+
const requestError = error instanceof RequestError ? error : new RequestError(error instanceof Error ? error.message : '响应拦截器错误', config, null, response);
|
|
196
|
+
|
|
197
|
+
// 应用错误拦截器
|
|
191
198
|
let processedError = requestError;
|
|
192
199
|
for (const errorInterceptor of this.interceptors.error) {
|
|
193
200
|
try {
|
|
194
|
-
processedError = await Promise.resolve(
|
|
195
|
-
errorInterceptor(processedError)
|
|
196
|
-
);
|
|
201
|
+
processedError = await Promise.resolve(errorInterceptor(processedError));
|
|
197
202
|
} catch (e) {
|
|
203
|
+
// 忽略错误拦截器中的错误
|
|
198
204
|
}
|
|
199
205
|
}
|
|
200
206
|
throw processedError;
|
|
@@ -202,22 +208,21 @@ var RequestPluginImpl = class {
|
|
|
202
208
|
}
|
|
203
209
|
return processedResponse.data;
|
|
204
210
|
} catch (error) {
|
|
205
|
-
const requestError = error instanceof RequestError ? error : new RequestError(
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
);
|
|
211
|
+
const requestError = error instanceof RequestError ? error : new RequestError(error instanceof Error ? error.message : '请求错误', config);
|
|
212
|
+
|
|
213
|
+
// 应用错误拦截器
|
|
209
214
|
let processedError = requestError;
|
|
210
215
|
for (const errorInterceptor of this.interceptors.error) {
|
|
211
216
|
try {
|
|
212
|
-
processedError = await Promise.resolve(
|
|
213
|
-
errorInterceptor(processedError)
|
|
214
|
-
);
|
|
217
|
+
processedError = await Promise.resolve(errorInterceptor(processedError));
|
|
215
218
|
} catch (e) {
|
|
219
|
+
// 忽略错误拦截器中的错误
|
|
216
220
|
}
|
|
217
221
|
}
|
|
218
222
|
throw processedError;
|
|
219
223
|
}
|
|
220
224
|
}
|
|
225
|
+
|
|
221
226
|
/**
|
|
222
227
|
* 执行实际的请求
|
|
223
228
|
* 这里实现了一个基于 fetch API 的请求
|
|
@@ -234,32 +239,39 @@ var RequestPluginImpl = class {
|
|
|
234
239
|
withCredentials
|
|
235
240
|
} = config;
|
|
236
241
|
if (!url) {
|
|
237
|
-
throw new RequestError(
|
|
242
|
+
throw new RequestError('URL不能为空', config);
|
|
238
243
|
}
|
|
244
|
+
|
|
245
|
+
// 处理 URL 参数
|
|
239
246
|
let fullUrl = url;
|
|
240
247
|
if (params && Object.keys(params).length > 0) {
|
|
241
|
-
const queryString = Object.entries(params).map(
|
|
242
|
-
|
|
243
|
-
).join("&");
|
|
244
|
-
fullUrl += (url.includes("?") ? "&" : "?") + queryString;
|
|
248
|
+
const queryString = Object.entries(params).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`).join('&');
|
|
249
|
+
fullUrl += (url.includes('?') ? '&' : '?') + queryString;
|
|
245
250
|
}
|
|
251
|
+
|
|
252
|
+
// 准备请求选项
|
|
246
253
|
const fetchOptions = {
|
|
247
254
|
method,
|
|
248
255
|
headers: {
|
|
249
256
|
...headers
|
|
250
257
|
},
|
|
251
|
-
credentials: withCredentials ?
|
|
258
|
+
credentials: withCredentials ? 'include' : 'same-origin'
|
|
252
259
|
};
|
|
253
|
-
|
|
260
|
+
|
|
261
|
+
// 处理请求体
|
|
262
|
+
if (data !== undefined && method !== 'GET' && method !== 'HEAD') {
|
|
254
263
|
if (data instanceof FormData) {
|
|
255
264
|
fetchOptions.body = data;
|
|
256
|
-
|
|
257
|
-
|
|
265
|
+
// 当使用 FormData 时,删除 Content-Type,让浏览器自动设置
|
|
266
|
+
delete fetchOptions.headers['Content-Type'];
|
|
267
|
+
} else if (typeof data === 'object') {
|
|
258
268
|
fetchOptions.body = JSON.stringify(data);
|
|
259
269
|
} else {
|
|
260
270
|
fetchOptions.body = data;
|
|
261
271
|
}
|
|
262
272
|
}
|
|
273
|
+
|
|
274
|
+
// 处理超时
|
|
263
275
|
let timeoutId;
|
|
264
276
|
const timeoutPromise = new Promise((_, reject) => {
|
|
265
277
|
if (timeout) {
|
|
@@ -269,34 +281,40 @@ var RequestPluginImpl = class {
|
|
|
269
281
|
}
|
|
270
282
|
});
|
|
271
283
|
try {
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
);
|
|
284
|
+
// 发起请求,并竞争超时
|
|
285
|
+
const fetchPromise = typeof fetch !== 'undefined' ? fetch(fullUrl, fetchOptions) : Promise.reject(new RequestError('当前环境不支持 fetch API', config));
|
|
275
286
|
const response = await Promise.race([fetchPromise, timeoutPromise]);
|
|
287
|
+
|
|
288
|
+
// 解析响应头
|
|
276
289
|
const responseHeaders = {};
|
|
277
290
|
response.headers.forEach((value, key) => {
|
|
278
291
|
responseHeaders[key] = value;
|
|
279
292
|
});
|
|
293
|
+
|
|
294
|
+
// 解析响应内容
|
|
280
295
|
let responseData;
|
|
281
|
-
if (responseType ===
|
|
296
|
+
if (responseType === 'json') {
|
|
282
297
|
try {
|
|
283
298
|
responseData = await response.json();
|
|
284
299
|
} catch (e) {
|
|
285
300
|
responseData = await response.text();
|
|
286
301
|
}
|
|
287
|
-
} else if (responseType ===
|
|
302
|
+
} else if (responseType === 'text') {
|
|
288
303
|
responseData = await response.text();
|
|
289
|
-
} else if (responseType ===
|
|
304
|
+
} else if (responseType === 'arraybuffer') {
|
|
290
305
|
responseData = await response.arrayBuffer();
|
|
291
|
-
} else if (responseType ===
|
|
306
|
+
} else if (responseType === 'blob') {
|
|
292
307
|
responseData = await response.blob();
|
|
293
308
|
} else {
|
|
309
|
+
// 默认尝试 JSON
|
|
294
310
|
try {
|
|
295
311
|
responseData = await response.json();
|
|
296
312
|
} catch (e) {
|
|
297
313
|
responseData = await response.text();
|
|
298
314
|
}
|
|
299
315
|
}
|
|
316
|
+
|
|
317
|
+
// 构建响应对象
|
|
300
318
|
const result = {
|
|
301
319
|
data: responseData,
|
|
302
320
|
status: response.status,
|
|
@@ -304,25 +322,18 @@ var RequestPluginImpl = class {
|
|
|
304
322
|
headers: responseHeaders,
|
|
305
323
|
config
|
|
306
324
|
};
|
|
325
|
+
|
|
326
|
+
// 处理非成功状态码
|
|
307
327
|
if (!response.ok) {
|
|
308
|
-
throw new RequestError(
|
|
309
|
-
`请求失败,状态码: ${response.status}`,
|
|
310
|
-
config,
|
|
311
|
-
fetchOptions,
|
|
312
|
-
result
|
|
313
|
-
);
|
|
328
|
+
throw new RequestError(`请求失败,状态码: ${response.status}`, config, fetchOptions, result);
|
|
314
329
|
}
|
|
315
330
|
return result;
|
|
316
331
|
} finally {
|
|
332
|
+
// 清除超时计时器
|
|
317
333
|
if (timeoutId) {
|
|
318
334
|
clearTimeout(timeoutId);
|
|
319
335
|
}
|
|
320
336
|
}
|
|
321
337
|
}
|
|
322
|
-
}
|
|
323
|
-
var
|
|
324
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
325
|
-
0 && (module.exports = {
|
|
326
|
-
RequestError,
|
|
327
|
-
RequestModeENUM
|
|
328
|
-
});
|
|
338
|
+
}
|
|
339
|
+
var _default = exports.default = new RequestPluginImpl();
|
package/lib/plugins/shopStore.js
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from))
|
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
}
|
|
11
|
-
return to;
|
|
12
|
-
};
|
|
13
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
14
2
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
package/lib/plugins/user.js
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from))
|
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
}
|
|
11
|
-
return to;
|
|
12
|
-
};
|
|
13
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
14
2
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|