hft-js 0.2.0 → 0.3.0

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/market.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * market.ts
4
3
  *
@@ -9,141 +8,119 @@
9
8
  *
10
9
  * https://github.com/shixiongfei/hft.js
11
10
  */
12
- var __extends = (this && this.__extends) || (function () {
13
- var extendStatics = function (d, b) {
14
- extendStatics = Object.setPrototypeOf ||
15
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
17
- return extendStatics(d, b);
18
- };
19
- return function (d, b) {
20
- if (typeof b !== "function" && b !== null)
21
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
22
- extendStatics(d, b);
23
- function __() { this.constructor = d; }
24
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
25
- };
26
- })();
27
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
28
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
29
- if (ar || !(i in from)) {
30
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
31
- ar[i] = from[i];
11
+ import ctp, {} from "napi-ctp";
12
+ import { CTPProvider } from "./provider.js";
13
+ import { isValidPrice, isValidVolume, parseSymbol } from "./utils.js";
14
+ import { calcTapeData } from "./tape.js";
15
+ export class Market extends CTPProvider {
16
+ marketApi;
17
+ recorder;
18
+ recorderSymbols;
19
+ tradingDay;
20
+ listener;
21
+ recordings;
22
+ symbols;
23
+ lastTicks;
24
+ subscribers;
25
+ constructor(flowMdPath, frontMdAddrs, options) {
26
+ super(flowMdPath, frontMdAddrs);
27
+ this.tradingDay = 0;
28
+ this.recordings = new Set();
29
+ this.symbols = new Map();
30
+ this.lastTicks = new Map();
31
+ this.subscribers = new Map();
32
+ if (options?.listener) {
33
+ this.listener = options.listener;
32
34
  }
33
35
  }
34
- return to.concat(ar || Array.prototype.slice.call(from));
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.createMarket = exports.Market = void 0;
41
- var napi_ctp_1 = __importDefault(require("napi-ctp"));
42
- var provider_js_1 = require("./provider.js");
43
- var utils_js_1 = require("./utils.js");
44
- var tape_js_1 = require("./tape.js");
45
- var Market = /** @class */ (function (_super) {
46
- __extends(Market, _super);
47
- function Market(flowMdPath, frontMdAddrs, options) {
48
- var _this = _super.call(this, flowMdPath, frontMdAddrs) || this;
49
- _this.tradingDay = 0;
50
- _this.recordings = new Set();
51
- _this.symbols = new Map();
52
- _this.lastTicks = new Map();
53
- _this.subscribers = new Map();
54
- if (options === null || options === void 0 ? void 0 : options.listener) {
55
- _this.listener = options.listener;
56
- }
57
- return _this;
58
- }
59
- Market.prototype.getRecorder = function () {
36
+ getRecorder() {
60
37
  return this;
61
- };
62
- Market.prototype.isRecorderReady = function () {
38
+ }
39
+ isRecorderReady() {
63
40
  return !!this.recorder;
64
- };
65
- Market.prototype.setRecorder = function (receiver, symbols) {
41
+ }
42
+ setRecorder(receiver, symbols) {
66
43
  this.recorder = receiver;
67
44
  this.recorderSymbols = symbols;
68
- };
69
- Market.prototype.getLastTick = function (instrumentId) {
45
+ }
46
+ getLastTick(instrumentId) {
70
47
  return this.lastTicks.get(instrumentId);
71
- };
72
- Market.prototype.open = function (lifecycle) {
73
- var _this = this;
48
+ }
49
+ open(lifecycle) {
74
50
  if (this.marketApi) {
75
51
  return true;
76
52
  }
77
- this.marketApi = napi_ctp_1.default.createMarketData(this.flowPath, this.frontAddrs);
78
- this.marketApi.on(napi_ctp_1.default.MarketDataEvent.FrontConnected, function () {
79
- _this._withRetry(function () { return _this.marketApi.reqUserLogin(); });
53
+ this.marketApi = ctp.createMarketData(this.flowPath, this.frontAddrs);
54
+ this.marketApi.on(ctp.MarketDataEvent.FrontConnected, () => {
55
+ this._withRetry(() => this.marketApi.reqUserLogin());
80
56
  });
81
- var fired = false;
82
- this.marketApi.on(napi_ctp_1.default.MarketDataEvent.RspUserLogin, function (_, options) {
83
- if (_this._isErrorResp(lifecycle, options, "login-error")) {
57
+ let fired = false;
58
+ this.marketApi.on(ctp.MarketDataEvent.RspUserLogin, (_, options) => {
59
+ if (this._isErrorResp(lifecycle, options, "login-error")) {
84
60
  return;
85
61
  }
86
- var tradingDay = parseInt(_this.marketApi.getTradingDay());
87
- if (_this.tradingDay !== tradingDay) {
88
- _this.lastTicks.clear();
89
- _this.tradingDay = tradingDay;
62
+ const tradingDay = parseInt(this.marketApi.getTradingDay());
63
+ if (this.tradingDay !== tradingDay) {
64
+ this.lastTicks.clear();
65
+ this.tradingDay = tradingDay;
90
66
  }
91
- var instrumentIds = new Set(__spreadArray(__spreadArray([], Array.from(_this.recordings), true), Object.keys(_this.subscribers), true));
67
+ const instrumentIds = new Set([
68
+ ...Array.from(this.recordings),
69
+ ...Object.keys(this.subscribers),
70
+ ]);
92
71
  if (instrumentIds.size > 0) {
93
- _this._withRetry(function () {
94
- return _this.marketApi.subscribeMarketData(Array.from(instrumentIds));
95
- });
72
+ this._withRetry(() => this.marketApi.subscribeMarketData(Array.from(instrumentIds)));
96
73
  }
97
74
  if (!fired) {
98
75
  fired = true;
99
76
  lifecycle.onOpen();
100
77
  }
101
78
  });
102
- this.marketApi.on(napi_ctp_1.default.MarketDataEvent.RspSubMarketData, function (instrument) {
103
- if (!_this.listener) {
79
+ this.marketApi.on(ctp.MarketDataEvent.RspSubMarketData, (instrument) => {
80
+ if (!this.listener) {
104
81
  return;
105
82
  }
106
- var symbol = _this.symbols.get(instrument.InstrumentID);
107
- _this.listener.onSubscribed(symbol !== null && symbol !== void 0 ? symbol : instrument.InstrumentID);
83
+ const symbol = this.symbols.get(instrument.InstrumentID);
84
+ this.listener.onSubscribed(symbol ?? instrument.InstrumentID);
108
85
  });
109
- this.marketApi.on(napi_ctp_1.default.MarketDataEvent.RspUnSubMarketData, function (instrument) {
110
- if (!_this.listener) {
86
+ this.marketApi.on(ctp.MarketDataEvent.RspUnSubMarketData, (instrument) => {
87
+ if (!this.listener) {
111
88
  return;
112
89
  }
113
- var symbol = _this.symbols.get(instrument.InstrumentID);
114
- _this.listener.onUnsubscribed(symbol !== null && symbol !== void 0 ? symbol : instrument.InstrumentID);
90
+ const symbol = this.symbols.get(instrument.InstrumentID);
91
+ this.listener.onUnsubscribed(symbol ?? instrument.InstrumentID);
115
92
  });
116
- this.marketApi.on(napi_ctp_1.default.MarketDataEvent.RtnDepthMarketData, function (depthMarketData) {
117
- var instrumentId = depthMarketData.InstrumentID;
118
- if (_this.recorder && _this.recordings.has(instrumentId)) {
119
- _this.recorder.onMarketData(depthMarketData);
93
+ this.marketApi.on(ctp.MarketDataEvent.RtnDepthMarketData, (depthMarketData) => {
94
+ const instrumentId = depthMarketData.InstrumentID;
95
+ if (this.recorder && this.recordings.has(instrumentId)) {
96
+ this.recorder.onMarketData(depthMarketData);
120
97
  }
121
- var symbol = _this.symbols.get(instrumentId);
98
+ const symbol = this.symbols.get(instrumentId);
122
99
  if (!symbol) {
123
100
  return;
124
101
  }
125
- var orderBook = {
102
+ const orderBook = {
126
103
  asks: { price: [], volume: [] },
127
104
  bids: { price: [], volume: [] },
128
105
  };
129
- if ((0, utils_js_1.isValidPrice)(depthMarketData.AskPrice1) &&
130
- (0, utils_js_1.isValidVolume)(depthMarketData.AskVolume1)) {
106
+ if (isValidPrice(depthMarketData.AskPrice1) &&
107
+ isValidVolume(depthMarketData.AskVolume1)) {
131
108
  orderBook.asks.price.push(depthMarketData.AskPrice1);
132
109
  orderBook.asks.volume.push(depthMarketData.AskVolume1);
133
- if ((0, utils_js_1.isValidPrice)(depthMarketData.AskPrice2) &&
134
- (0, utils_js_1.isValidVolume)(depthMarketData.AskVolume2)) {
110
+ if (isValidPrice(depthMarketData.AskPrice2) &&
111
+ isValidVolume(depthMarketData.AskVolume2)) {
135
112
  orderBook.asks.price.push(depthMarketData.AskPrice2);
136
113
  orderBook.asks.volume.push(depthMarketData.AskVolume2);
137
- if ((0, utils_js_1.isValidPrice)(depthMarketData.AskPrice3) &&
138
- (0, utils_js_1.isValidVolume)(depthMarketData.AskVolume3)) {
114
+ if (isValidPrice(depthMarketData.AskPrice3) &&
115
+ isValidVolume(depthMarketData.AskVolume3)) {
139
116
  orderBook.asks.price.push(depthMarketData.AskPrice3);
140
117
  orderBook.asks.volume.push(depthMarketData.AskVolume3);
141
- if ((0, utils_js_1.isValidPrice)(depthMarketData.AskPrice4) &&
142
- (0, utils_js_1.isValidVolume)(depthMarketData.AskVolume4)) {
118
+ if (isValidPrice(depthMarketData.AskPrice4) &&
119
+ isValidVolume(depthMarketData.AskVolume4)) {
143
120
  orderBook.asks.price.push(depthMarketData.AskPrice4);
144
121
  orderBook.asks.volume.push(depthMarketData.AskVolume4);
145
- if ((0, utils_js_1.isValidPrice)(depthMarketData.AskPrice5) &&
146
- (0, utils_js_1.isValidVolume)(depthMarketData.AskVolume5)) {
122
+ if (isValidPrice(depthMarketData.AskPrice5) &&
123
+ isValidVolume(depthMarketData.AskVolume5)) {
147
124
  orderBook.asks.price.push(depthMarketData.AskPrice5);
148
125
  orderBook.asks.volume.push(depthMarketData.AskVolume5);
149
126
  }
@@ -151,24 +128,24 @@ var Market = /** @class */ (function (_super) {
151
128
  }
152
129
  }
153
130
  }
154
- if ((0, utils_js_1.isValidPrice)(depthMarketData.BidPrice1) &&
155
- (0, utils_js_1.isValidVolume)(depthMarketData.BidVolume1)) {
131
+ if (isValidPrice(depthMarketData.BidPrice1) &&
132
+ isValidVolume(depthMarketData.BidVolume1)) {
156
133
  orderBook.bids.price.push(depthMarketData.BidPrice1);
157
134
  orderBook.bids.volume.push(depthMarketData.BidVolume1);
158
- if ((0, utils_js_1.isValidPrice)(depthMarketData.BidPrice2) &&
159
- (0, utils_js_1.isValidVolume)(depthMarketData.BidVolume2)) {
135
+ if (isValidPrice(depthMarketData.BidPrice2) &&
136
+ isValidVolume(depthMarketData.BidVolume2)) {
160
137
  orderBook.bids.price.push(depthMarketData.BidPrice2);
161
138
  orderBook.bids.volume.push(depthMarketData.BidVolume2);
162
- if ((0, utils_js_1.isValidPrice)(depthMarketData.BidPrice3) &&
163
- (0, utils_js_1.isValidVolume)(depthMarketData.BidVolume3)) {
139
+ if (isValidPrice(depthMarketData.BidPrice3) &&
140
+ isValidVolume(depthMarketData.BidVolume3)) {
164
141
  orderBook.bids.price.push(depthMarketData.BidPrice3);
165
142
  orderBook.bids.volume.push(depthMarketData.BidVolume3);
166
- if ((0, utils_js_1.isValidPrice)(depthMarketData.BidPrice4) &&
167
- (0, utils_js_1.isValidVolume)(depthMarketData.BidVolume4)) {
143
+ if (isValidPrice(depthMarketData.BidPrice4) &&
144
+ isValidVolume(depthMarketData.BidVolume4)) {
168
145
  orderBook.bids.price.push(depthMarketData.BidPrice4);
169
146
  orderBook.bids.volume.push(depthMarketData.BidVolume4);
170
- if ((0, utils_js_1.isValidPrice)(depthMarketData.BidPrice5) &&
171
- (0, utils_js_1.isValidVolume)(depthMarketData.BidVolume5)) {
147
+ if (isValidPrice(depthMarketData.BidPrice5) &&
148
+ isValidVolume(depthMarketData.BidVolume5)) {
172
149
  orderBook.bids.price.push(depthMarketData.BidPrice5);
173
150
  orderBook.bids.volume.push(depthMarketData.BidVolume5);
174
151
  }
@@ -176,8 +153,8 @@ var Market = /** @class */ (function (_super) {
176
153
  }
177
154
  }
178
155
  }
179
- var time = _this._parseTime(depthMarketData.UpdateTime);
180
- var tick = Object.freeze({
156
+ const time = this._parseTime(depthMarketData.UpdateTime);
157
+ const tick = Object.freeze({
181
158
  symbol: symbol,
182
159
  date: parseInt(depthMarketData.ActionDay),
183
160
  time: time + depthMarketData.UpdateMillisec / 1000,
@@ -201,117 +178,110 @@ var Market = /** @class */ (function (_super) {
201
178
  }),
202
179
  orderBook: Object.freeze(orderBook),
203
180
  });
204
- var receivers = _this.subscribers.get(instrumentId);
181
+ const lastTick = this.lastTicks.get(instrumentId);
182
+ const receivers = this.subscribers.get(instrumentId);
183
+ this.lastTicks.set(instrumentId, tick);
205
184
  if (receivers && receivers.length > 0) {
206
- var lastTick = _this.lastTicks.get(instrumentId);
207
- var tape_1 = (0, tape_js_1.calcTapeData)(tick, lastTick);
208
- receivers.forEach(function (receiver) { return receiver.onTick(tick, tape_1); });
185
+ const tape = calcTapeData(tick, lastTick);
186
+ receivers.forEach((receiver) => receiver.onTick(tick, tape));
209
187
  }
210
- _this.lastTicks.set(instrumentId, tick);
211
188
  });
212
189
  return true;
213
- };
214
- Market.prototype.close = function (lifecycle) {
190
+ }
191
+ close(lifecycle) {
215
192
  if (!this.marketApi) {
216
193
  return;
217
194
  }
218
195
  this.marketApi.close();
219
196
  this.marketApi = undefined;
220
197
  lifecycle.onClose();
221
- };
222
- Market.prototype.startRecorder = function (instrument) {
223
- var _this = this;
198
+ }
199
+ startRecorder(instrument) {
224
200
  if (!this.recorderSymbols) {
225
201
  return;
226
202
  }
227
- var symbols = this.recorderSymbols(instrument);
228
- var instrumentIds = new Set();
229
- symbols.forEach(function (symbol) {
230
- var instrumentId = (0, utils_js_1.parseSymbol)(symbol)[0];
231
- if (_this.recordings.has(instrumentId)) {
203
+ const symbols = this.recorderSymbols(instrument);
204
+ const instrumentIds = new Set();
205
+ symbols.forEach((symbol) => {
206
+ const [instrumentId] = parseSymbol(symbol);
207
+ if (this.recordings.has(instrumentId)) {
232
208
  return;
233
209
  }
234
- _this.recordings.add(instrumentId);
235
- if (!_this.subscribers.has(instrumentId)) {
236
- _this.symbols.set(instrumentId, symbol);
210
+ this.recordings.add(instrumentId);
211
+ if (!this.subscribers.has(instrumentId)) {
212
+ this.symbols.set(instrumentId, symbol);
237
213
  instrumentIds.add(instrumentId);
238
214
  }
239
215
  });
240
216
  if (instrumentIds.size > 0) {
241
- this._withRetry(function () { var _a; return (_a = _this.marketApi) === null || _a === void 0 ? void 0 : _a.subscribeMarketData(Array.from(instrumentIds)); });
217
+ this._withRetry(() => this.marketApi?.subscribeMarketData(Array.from(instrumentIds)));
242
218
  }
243
- };
244
- Market.prototype.stopRecorder = function () {
245
- var _this = this;
219
+ }
220
+ stopRecorder() {
246
221
  if (this.recordings.size === 0) {
247
222
  return;
248
223
  }
249
- var instrumentIds = new Set();
250
- this.recordings.forEach(function (instrumentId) {
251
- if (!_this.subscribers.has(instrumentId)) {
252
- _this.symbols.delete(instrumentId);
224
+ const instrumentIds = new Set();
225
+ this.recordings.forEach((instrumentId) => {
226
+ if (!this.subscribers.has(instrumentId)) {
227
+ this.symbols.delete(instrumentId);
253
228
  instrumentIds.add(instrumentId);
254
229
  }
255
230
  });
256
231
  this.recordings.clear();
257
232
  if (instrumentIds.size > 0) {
258
- this._withRetry(function () { var _a; return (_a = _this.marketApi) === null || _a === void 0 ? void 0 : _a.unsubscribeMarketData(Array.from(instrumentIds)); });
233
+ this._withRetry(() => this.marketApi?.unsubscribeMarketData(Array.from(instrumentIds)));
259
234
  }
260
- };
261
- Market.prototype.subscribe = function (symbols, receiver) {
262
- var _this = this;
263
- var instrumentIds = new Set();
264
- symbols.forEach(function (symbol) {
265
- var instrumentId = (0, utils_js_1.parseSymbol)(symbol)[0];
266
- var receivers = _this.subscribers.get(instrumentId);
235
+ }
236
+ subscribe(symbols, receiver) {
237
+ const instrumentIds = new Set();
238
+ symbols.forEach((symbol) => {
239
+ const [instrumentId] = parseSymbol(symbol);
240
+ const receivers = this.subscribers.get(instrumentId);
267
241
  if (receivers) {
268
242
  if (!receivers.includes(receiver)) {
269
243
  receivers.push(receiver);
270
244
  }
271
245
  }
272
246
  else {
273
- _this.subscribers.set(instrumentId, [receiver]);
274
- if (!_this.recordings.has(instrumentId)) {
275
- _this.symbols.set(instrumentId, symbol);
247
+ this.subscribers.set(instrumentId, [receiver]);
248
+ if (!this.recordings.has(instrumentId)) {
249
+ this.symbols.set(instrumentId, symbol);
276
250
  instrumentIds.add(instrumentId);
277
251
  }
278
252
  }
279
253
  });
280
254
  if (instrumentIds.size > 0) {
281
- this._withRetry(function () { var _a; return (_a = _this.marketApi) === null || _a === void 0 ? void 0 : _a.subscribeMarketData(Array.from(instrumentIds)); });
255
+ this._withRetry(() => this.marketApi?.subscribeMarketData(Array.from(instrumentIds)));
282
256
  }
283
- };
284
- Market.prototype.unsubscribe = function (symbols, receiver) {
285
- var _this = this;
286
- var instrumentIds = new Set();
287
- symbols.forEach(function (symbol) {
288
- var instrumentId = (0, utils_js_1.parseSymbol)(symbol)[0];
289
- var receivers = _this.subscribers.get(instrumentId);
257
+ }
258
+ unsubscribe(symbols, receiver) {
259
+ const instrumentIds = new Set();
260
+ symbols.forEach((symbol) => {
261
+ const [instrumentId] = parseSymbol(symbol);
262
+ const receivers = this.subscribers.get(instrumentId);
290
263
  if (!receivers) {
291
264
  return;
292
265
  }
293
266
  if (receivers.length > 0) {
294
- var index = receivers.indexOf(receiver);
267
+ const index = receivers.indexOf(receiver);
295
268
  if (index < 0) {
296
269
  return;
297
270
  }
298
271
  receivers.splice(index, 1);
299
272
  }
300
273
  if (receivers.length === 0) {
301
- _this.subscribers.delete(instrumentId);
302
- if (!_this.recordings.has(instrumentId)) {
303
- _this.symbols.delete(instrumentId);
274
+ this.subscribers.delete(instrumentId);
275
+ if (!this.recordings.has(instrumentId)) {
276
+ this.symbols.delete(instrumentId);
304
277
  instrumentIds.add(instrumentId);
305
278
  }
306
279
  }
307
280
  });
308
281
  if (instrumentIds.size > 0) {
309
- this._withRetry(function () { var _a; return (_a = _this.marketApi) === null || _a === void 0 ? void 0 : _a.unsubscribeMarketData(Array.from(instrumentIds)); });
282
+ this._withRetry(() => this.marketApi?.unsubscribeMarketData(Array.from(instrumentIds)));
310
283
  }
311
- };
312
- return Market;
313
- }(provider_js_1.CTPProvider));
314
- exports.Market = Market;
315
- var createMarket = function (flowMdPath, frontMdAddrs, options) { return new Market(flowMdPath, frontMdAddrs, options); };
316
- exports.createMarket = createMarket;
284
+ }
285
+ }
286
+ export const createMarket = (flowMdPath, frontMdAddrs, options) => new Market(flowMdPath, frontMdAddrs, options);
317
287
  //# sourceMappingURL=market.js.map
package/lib/market.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"market.js","sourceRoot":"","sources":["../src/market.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"market.js","sourceRoot":"","sources":["../src/market.ts"],"names":[],"mappings":"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"}
package/lib/provider.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import ctp from "napi-ctp";
2
- import { ErrorType, ILifecycleListener } from "./interfaces.js";
1
+ import { type CallbackOptions } from "napi-ctp";
2
+ import type { ErrorType, ILifecycleListener } from "./interfaces.js";
3
3
  export declare class CTPProvider {
4
4
  protected readonly flowPath: string;
5
5
  protected readonly frontAddrs: string | string[];
6
6
  constructor(flowPath: string, frontAddrs: string | string[]);
7
7
  private _sleep;
8
8
  protected _withRetry(request: () => number | undefined, ms?: number): Promise<number | undefined>;
9
- protected _isErrorResp(lifecycle: ILifecycleListener, options: ctp.CallbackOptions, error: ErrorType): boolean;
9
+ protected _isErrorResp(lifecycle: ILifecycleListener, options: CallbackOptions, error: ErrorType): boolean;
10
10
  protected _parseTime(time: string): number;
11
11
  }
package/lib/provider.js CHANGED
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /*
3
2
  * provider.ts
4
3
  *
@@ -9,100 +8,49 @@
9
8
  *
10
9
  * https://github.com/shixiongfei/hft.js
11
10
  */
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
- var __importDefault = (this && this.__importDefault) || function (mod) {
49
- return (mod && mod.__esModule) ? mod : { "default": mod };
50
- };
51
- Object.defineProperty(exports, "__esModule", { value: true });
52
- exports.CTPProvider = void 0;
53
- var node_fs_1 = __importDefault(require("node:fs"));
54
- var napi_ctp_1 = __importDefault(require("napi-ctp"));
55
- var CTPProvider = /** @class */ (function () {
56
- function CTPProvider(flowPath, frontAddrs) {
11
+ import fs from "node:fs";
12
+ import ctp, {} from "napi-ctp";
13
+ export class CTPProvider {
14
+ flowPath;
15
+ frontAddrs;
16
+ constructor(flowPath, frontAddrs) {
57
17
  this.flowPath = flowPath;
58
18
  this.frontAddrs = frontAddrs;
59
19
  try {
60
- node_fs_1.default.accessSync(this.flowPath);
20
+ fs.accessSync(this.flowPath);
61
21
  }
62
- catch (_a) {
63
- node_fs_1.default.mkdirSync(this.flowPath, { recursive: true });
22
+ catch {
23
+ fs.mkdirSync(this.flowPath, { recursive: true });
64
24
  }
65
25
  }
66
- CTPProvider.prototype._sleep = function (ms) {
67
- return new Promise(function (resolve) {
26
+ _sleep(ms) {
27
+ return new Promise((resolve) => {
68
28
  setTimeout(resolve, ms);
69
29
  });
70
- };
71
- CTPProvider.prototype._withRetry = function (request_1) {
72
- return __awaiter(this, arguments, void 0, function (request, ms) {
73
- var retval;
74
- if (ms === void 0) { ms = 100; }
75
- return __generator(this, function (_a) {
76
- switch (_a.label) {
77
- case 0:
78
- retval = request();
79
- if (retval === 0) {
80
- return [2 /*return*/, napi_ctp_1.default.getLastRequestId()];
81
- }
82
- if (!(-2 === retval || -3 === retval)) return [3 /*break*/, 2];
83
- return [4 /*yield*/, this._sleep(ms)];
84
- case 1:
85
- _a.sent();
86
- return [3 /*break*/, 3];
87
- case 2: return [2 /*return*/, retval];
88
- case 3: return [3 /*break*/, 0];
89
- case 4: return [2 /*return*/];
90
- }
91
- });
92
- });
93
- };
94
- CTPProvider.prototype._isErrorResp = function (lifecycle, options, error) {
30
+ }
31
+ async _withRetry(request, ms = 100) {
32
+ for (;;) {
33
+ const retval = request();
34
+ if (retval === 0) {
35
+ return ctp.getLastRequestId();
36
+ }
37
+ if (-2 === retval || -3 === retval) {
38
+ await this._sleep(ms);
39
+ continue;
40
+ }
41
+ return retval;
42
+ }
43
+ }
44
+ _isErrorResp(lifecycle, options, error) {
95
45
  if (!options.rspInfo) {
96
46
  return false;
97
47
  }
98
- lifecycle.onError(error, "".concat(options.rspInfo.ErrorID, ":").concat(options.rspInfo.ErrorMsg));
48
+ lifecycle.onError(error, `${options.rspInfo.ErrorID}:${options.rspInfo.ErrorMsg}`);
99
49
  return true;
100
- };
101
- CTPProvider.prototype._parseTime = function (time) {
102
- var _a = time.split(":").map(function (x) { return parseInt(x); }), hour = _a[0], minute = _a[1], second = _a[2];
103
- return hour * 10000 + minute * 100 + second;
104
- };
105
- return CTPProvider;
106
- }());
107
- exports.CTPProvider = CTPProvider;
50
+ }
51
+ _parseTime(time) {
52
+ const [hh = 0, mm = 0, ss = 0] = time.split(":").map((x) => parseInt(x));
53
+ return hh * 10000 + mm * 100 + ss;
54
+ }
55
+ }
108
56
  //# sourceMappingURL=provider.js.map