@tdengine/websocket 3.1.0 → 3.1.1

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.
Files changed (52) hide show
  1. package/lib/example/all_type_query.d.ts +2 -0
  2. package/lib/example/all_type_query.d.ts.map +1 -0
  3. package/lib/example/all_type_query.js +89 -0
  4. package/lib/example/all_type_stmt.d.ts +2 -0
  5. package/lib/example/all_type_stmt.d.ts.map +1 -0
  6. package/lib/example/all_type_stmt.js +130 -0
  7. package/lib/example/basicBatchTmq.d.ts +2 -0
  8. package/lib/example/basicBatchTmq.d.ts.map +1 -0
  9. package/lib/example/basicBatchTmq.js +129 -0
  10. package/lib/example/basicSql.js +9 -7
  11. package/lib/example/basicStmt.js +34 -20
  12. package/lib/example/basicTmq.js +22 -20
  13. package/lib/src/client/wsClient.d.ts +1 -1
  14. package/lib/src/client/wsClient.d.ts.map +1 -1
  15. package/lib/src/client/wsClient.js +5 -2
  16. package/lib/src/client/wsConnector.js +2 -2
  17. package/lib/src/client/wsResponse.d.ts +10 -2
  18. package/lib/src/client/wsResponse.d.ts.map +1 -1
  19. package/lib/src/client/wsResponse.js +30 -3
  20. package/lib/src/common/constant.d.ts +23 -1
  21. package/lib/src/common/constant.d.ts.map +1 -1
  22. package/lib/src/common/constant.js +25 -22
  23. package/lib/src/common/log.js +1 -1
  24. package/lib/src/common/taosResult.d.ts +11 -5
  25. package/lib/src/common/taosResult.d.ts.map +1 -1
  26. package/lib/src/common/taosResult.js +106 -76
  27. package/lib/src/common/utils.d.ts +2 -0
  28. package/lib/src/common/utils.d.ts.map +1 -1
  29. package/lib/src/common/utils.js +34 -1
  30. package/lib/src/sql/wsRows.d.ts.map +1 -1
  31. package/lib/src/sql/wsRows.js +21 -10
  32. package/lib/src/sql/wsSql.d.ts.map +1 -1
  33. package/lib/src/sql/wsSql.js +29 -19
  34. package/lib/src/stmt/wsParams.js +40 -40
  35. package/lib/src/tmq/constant.d.ts +15 -0
  36. package/lib/src/tmq/constant.d.ts.map +1 -1
  37. package/lib/src/tmq/constant.js +17 -1
  38. package/lib/src/tmq/tmqResponse.d.ts +20 -8
  39. package/lib/src/tmq/tmqResponse.d.ts.map +1 -1
  40. package/lib/src/tmq/tmqResponse.js +214 -89
  41. package/lib/src/tmq/wsTmq.d.ts.map +1 -1
  42. package/lib/src/tmq/wsTmq.js +24 -21
  43. package/lib/test/bulkPulling/log.test.d.ts +2 -0
  44. package/lib/test/bulkPulling/log.test.d.ts.map +1 -0
  45. package/lib/test/bulkPulling/log.test.js +44 -0
  46. package/lib/test/bulkPulling/schemaless.test.js +7 -6
  47. package/lib/test/bulkPulling/sql.test.js +38 -18
  48. package/lib/test/bulkPulling/stmt.func.test.js +71 -55
  49. package/lib/test/bulkPulling/stmt.type.test.js +1 -5
  50. package/lib/test/bulkPulling/tmq.test.js +16 -15
  51. package/lib/test/bulkPulling/wsConnectPool.test.js +9 -2
  52. package/package.json +2 -2
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const wsConnectorPool_1 = require("../../src/client/wsConnectorPool");
4
4
  const config_1 = require("../../src/common/config");
5
5
  const wsSql_1 = require("../../src/sql/wsSql");
6
+ let dns = 'ws://localhost:6041';
6
7
  beforeAll(async () => {
7
- let dns = 'ws://localhost:6041';
8
8
  let conf = new config_1.WSConfig(dns);
9
9
  conf.setUser('root');
10
10
  conf.setPwd('taosdata');
@@ -27,10 +27,11 @@ describe('TDWebSocket.Stmt()', () => {
27
27
  [0.32, 0.33, 0.34],
28
28
  ];
29
29
  test('normal connect', async () => {
30
- let dsn = 'ws://root:taosdata@localhost:6041';
31
- let wsConf = new config_1.WSConfig(dsn);
32
- wsConf.setDb('power');
33
- let connector = await wsSql_1.WsSql.open(wsConf);
30
+ let conf = new config_1.WSConfig(dns);
31
+ conf.setUser('root');
32
+ conf.setPwd('taosdata');
33
+ conf.setDb('power');
34
+ let connector = await wsSql_1.WsSql.open(conf);
34
35
  let stmt = await connector.stmtInit();
35
36
  expect(stmt).toBeTruthy();
36
37
  expect(connector.state()).toBeGreaterThan(0);
@@ -41,10 +42,11 @@ describe('TDWebSocket.Stmt()', () => {
41
42
  expect.assertions(1);
42
43
  let connector = null;
43
44
  try {
44
- let dsn = 'ws://root:taosdata@localhost:6041';
45
- let wsConf = new config_1.WSConfig(dsn);
46
- wsConf.setDb('jest');
47
- connector = await wsSql_1.WsSql.open(wsConf);
45
+ let conf = new config_1.WSConfig(dns);
46
+ conf.setUser('root');
47
+ conf.setPwd('taosdata');
48
+ conf.setDb('jest');
49
+ connector = await wsSql_1.WsSql.open(conf);
48
50
  let stmt = await connector.stmtInit();
49
51
  await stmt.close();
50
52
  }
@@ -59,10 +61,11 @@ describe('TDWebSocket.Stmt()', () => {
59
61
  }
60
62
  });
61
63
  test('normal Prepare', async () => {
62
- let dsn = 'ws://root:taosdata@localhost:6041';
63
- let wsConf = new config_1.WSConfig(dsn);
64
- wsConf.setDb('power');
65
- let connector = await wsSql_1.WsSql.open(wsConf);
64
+ let conf = new config_1.WSConfig(dns);
65
+ conf.setUser('root');
66
+ conf.setPwd('taosdata');
67
+ conf.setDb('power');
68
+ let connector = await wsSql_1.WsSql.open(conf);
66
69
  let stmt = await connector.stmtInit();
67
70
  expect(stmt).toBeTruthy();
68
71
  expect(connector.state()).toBeGreaterThan(0);
@@ -76,10 +79,11 @@ describe('TDWebSocket.Stmt()', () => {
76
79
  await connector.close();
77
80
  });
78
81
  test('set tag error', async () => {
79
- let dsn = 'ws://root:taosdata@localhost:6041';
80
- let wsConf = new config_1.WSConfig(dsn);
81
- wsConf.setDb('power');
82
- let connector = await wsSql_1.WsSql.open(wsConf);
82
+ let conf = new config_1.WSConfig(dns);
83
+ conf.setUser('root');
84
+ conf.setPwd('taosdata');
85
+ conf.setDb('power');
86
+ let connector = await wsSql_1.WsSql.open(conf);
83
87
  let stmt = await connector.stmtInit();
84
88
  expect(stmt).toBeTruthy();
85
89
  expect(connector.state()).toBeGreaterThan(0);
@@ -97,10 +101,11 @@ describe('TDWebSocket.Stmt()', () => {
97
101
  await connector.close();
98
102
  });
99
103
  test('error Prepare table', async () => {
100
- let dsn = 'ws://root:taosdata@localhost:6041';
101
- let wsConf = new config_1.WSConfig(dsn);
102
- wsConf.setDb('power');
103
- let connector = await wsSql_1.WsSql.open(wsConf);
104
+ let conf = new config_1.WSConfig(dns);
105
+ conf.setUser('root');
106
+ conf.setPwd('taosdata');
107
+ conf.setDb('power');
108
+ let connector = await wsSql_1.WsSql.open(conf);
104
109
  let stmt = await connector.stmtInit();
105
110
  expect(stmt).toBeTruthy();
106
111
  expect(connector.state()).toBeGreaterThan(0);
@@ -116,10 +121,11 @@ describe('TDWebSocket.Stmt()', () => {
116
121
  await connector.close();
117
122
  });
118
123
  test('error Prepare tag', async () => {
119
- let dsn = 'ws://root:taosdata@localhost:6041';
120
- let wsConf = new config_1.WSConfig(dsn);
121
- wsConf.setDb('power');
122
- let connector = await wsSql_1.WsSql.open(wsConf);
124
+ let conf = new config_1.WSConfig(dns);
125
+ conf.setUser('root');
126
+ conf.setPwd('taosdata');
127
+ conf.setDb('power');
128
+ let connector = await wsSql_1.WsSql.open(conf);
123
129
  let stmt = await connector.stmtInit();
124
130
  expect(stmt).toBeTruthy();
125
131
  expect(connector.state()).toBeGreaterThan(0);
@@ -135,12 +141,11 @@ describe('TDWebSocket.Stmt()', () => {
135
141
  await connector.close();
136
142
  });
137
143
  test('normal BindParam', async () => {
138
- let dsn = 'ws://root:taosdata@localhost:6041';
139
- let wsConf = new config_1.WSConfig(dsn);
140
- wsConf.setDb('power');
141
- // let connector = WsStmtConnect.NewConnector(wsConf)
142
- // let stmt = await connector.Init()
143
- let connector = await wsSql_1.WsSql.open(wsConf);
144
+ let conf = new config_1.WSConfig(dns);
145
+ conf.setUser('root');
146
+ conf.setPwd('taosdata');
147
+ conf.setDb('power');
148
+ let connector = await wsSql_1.WsSql.open(conf);
144
149
  let stmt = await connector.stmtInit();
145
150
  expect(stmt).toBeTruthy();
146
151
  await stmt.prepare('INSERT INTO ? USING power.meters (location, groupId) TAGS (?, ?) VALUES (?, ?, ?, ?)');
@@ -172,10 +177,11 @@ describe('TDWebSocket.Stmt()', () => {
172
177
  await connector.close();
173
178
  });
174
179
  test('error BindParam', async () => {
175
- let dsn = 'ws://root:taosdata@localhost:6041';
176
- let wsConf = new config_1.WSConfig(dsn);
177
- wsConf.setDb('power');
178
- let connector = await wsSql_1.WsSql.open(wsConf);
180
+ let conf = new config_1.WSConfig(dns);
181
+ conf.setUser('root');
182
+ conf.setPwd('taosdata');
183
+ conf.setDb('power');
184
+ let connector = await wsSql_1.WsSql.open(conf);
179
185
  let stmt = await connector.stmtInit();
180
186
  expect(stmt).toBeTruthy();
181
187
  expect(connector.state()).toBeGreaterThan(0);
@@ -209,10 +215,11 @@ describe('TDWebSocket.Stmt()', () => {
209
215
  await connector.close();
210
216
  });
211
217
  test('no Batch', async () => {
212
- let dsn = 'ws://root:taosdata@localhost:6041';
213
- let wsConf = new config_1.WSConfig(dsn);
214
- wsConf.setDb('power');
215
- let connector = await wsSql_1.WsSql.open(wsConf);
218
+ let conf = new config_1.WSConfig(dns);
219
+ conf.setUser('root');
220
+ conf.setPwd('taosdata');
221
+ conf.setDb('power');
222
+ let connector = await wsSql_1.WsSql.open(conf);
216
223
  let stmt = await connector.stmtInit();
217
224
  expect(stmt).toBeTruthy();
218
225
  expect(connector.state()).toBeGreaterThan(0);
@@ -245,10 +252,11 @@ describe('TDWebSocket.Stmt()', () => {
245
252
  await connector.close();
246
253
  });
247
254
  test('Batch after BindParam', async () => {
248
- let dsn = 'ws://root:taosdata@localhost:6041';
249
- let wsConf = new config_1.WSConfig(dsn);
250
- wsConf.setDb('power');
251
- let connector = await wsSql_1.WsSql.open(wsConf);
255
+ let conf = new config_1.WSConfig(dns);
256
+ conf.setUser('root');
257
+ conf.setPwd('taosdata');
258
+ conf.setDb('power');
259
+ let connector = await wsSql_1.WsSql.open(conf);
252
260
  let stmt = await connector.stmtInit();
253
261
  expect(stmt).toBeTruthy();
254
262
  expect(connector.state()).toBeGreaterThan(0);
@@ -277,6 +285,11 @@ describe('TDWebSocket.Stmt()', () => {
277
285
  dataParams.setFloat(multi1[3]);
278
286
  await stmt.bind(dataParams);
279
287
  await stmt.batch();
288
+ await stmt.setTableName('d1002');
289
+ params = stmt.newStmtParam();
290
+ params.setVarchar(['SanFrancisco']);
291
+ params.setInt([5]);
292
+ await stmt.setTags(params);
280
293
  dataParams = stmt.newStmtParam();
281
294
  dataParams.setTimestamp(multi2[0]);
282
295
  dataParams.setFloat(multi2[1]);
@@ -290,10 +303,11 @@ describe('TDWebSocket.Stmt()', () => {
290
303
  await connector.close();
291
304
  });
292
305
  test('no set tag', async () => {
293
- let dsn = 'ws://root:taosdata@localhost:6041';
294
- let wsConf = new config_1.WSConfig(dsn);
295
- wsConf.setDb('power');
296
- let connector = await wsSql_1.WsSql.open(wsConf);
306
+ let conf = new config_1.WSConfig(dns);
307
+ conf.setUser('root');
308
+ conf.setPwd('taosdata');
309
+ conf.setDb('power');
310
+ let connector = await wsSql_1.WsSql.open(conf);
297
311
  let stmt = await connector.stmtInit();
298
312
  expect(stmt).toBeTruthy();
299
313
  expect(connector.state()).toBeGreaterThan(0);
@@ -318,10 +332,11 @@ describe('TDWebSocket.Stmt()', () => {
318
332
  await connector.close();
319
333
  });
320
334
  test('normal binary BindParam', async () => {
321
- let dsn = 'ws://root:taosdata@localhost:6041';
322
- let wsConf = new config_1.WSConfig(dsn);
323
- wsConf.setDb('power');
324
- let connector = await wsSql_1.WsSql.open(wsConf);
335
+ let conf = new config_1.WSConfig(dns);
336
+ conf.setUser('root');
337
+ conf.setPwd('taosdata');
338
+ conf.setDb('power');
339
+ let connector = await wsSql_1.WsSql.open(conf);
325
340
  let stmt = await connector.stmtInit();
326
341
  expect(stmt).toBeTruthy();
327
342
  expect(connector.state()).toBeGreaterThan(0);
@@ -345,10 +360,11 @@ describe('TDWebSocket.Stmt()', () => {
345
360
  await connector.close();
346
361
  });
347
362
  test('normal json BindParam', async () => {
348
- let dsn = 'ws://root:taosdata@localhost:6041';
349
- let wsConf = new config_1.WSConfig(dsn);
350
- wsConf.setDb('power');
351
- let connector = await wsSql_1.WsSql.open(wsConf);
363
+ let conf = new config_1.WSConfig(dns);
364
+ conf.setUser('root');
365
+ conf.setPwd('taosdata');
366
+ conf.setDb('power');
367
+ let connector = await wsSql_1.WsSql.open(conf);
352
368
  let stmt = await connector.stmtInit();
353
369
  expect(stmt).toBeTruthy();
354
370
  expect(connector.state()).toBeGreaterThan(0);
@@ -70,8 +70,8 @@ const selectTable = `select * from ${table}`;
70
70
  const selectTableCN = `select * from ${tableCN}`;
71
71
  const selectJsonTable = `select * from ${jsonTable}`;
72
72
  const selectJsonTableCN = `select * from ${jsonTableCN}`;
73
+ let dsn = 'ws://root:taosdata@localhost:6041';
73
74
  beforeAll(async () => {
74
- let dsn = 'ws://root:taosdata@localhost:6041';
75
75
  let conf = new config_1.WSConfig(dsn);
76
76
  let ws = await wsSql_1.WsSql.open(conf);
77
77
  await ws.exec(dropDB);
@@ -84,7 +84,6 @@ beforeAll(async () => {
84
84
  describe('TDWebSocket.Stmt()', () => {
85
85
  jest.setTimeout(20 * 1000);
86
86
  test('normal BindParam', async () => {
87
- let dsn = 'ws://root:taosdata@localhost:6041';
88
87
  let wsConf = new config_1.WSConfig(dsn);
89
88
  wsConf.setDb(db);
90
89
  let connector = await wsSql_1.WsSql.open(wsConf);
@@ -136,7 +135,6 @@ describe('TDWebSocket.Stmt()', () => {
136
135
  await connector.close();
137
136
  });
138
137
  test('normal CN BindParam', async () => {
139
- let dsn = 'ws://root:taosdata@localhost:6041';
140
138
  let wsConf = new config_1.WSConfig(dsn);
141
139
  wsConf.setDb(db);
142
140
  let connector = await wsSql_1.WsSql.open(wsConf);
@@ -188,7 +186,6 @@ describe('TDWebSocket.Stmt()', () => {
188
186
  await connector.close();
189
187
  });
190
188
  test('normal json tag BindParam', async () => {
191
- let dsn = 'ws://root:taosdata@localhost:6041';
192
189
  let wsConf = new config_1.WSConfig(dsn);
193
190
  wsConf.setDb(db);
194
191
  let connector = await wsSql_1.WsSql.open(wsConf);
@@ -228,7 +225,6 @@ describe('TDWebSocket.Stmt()', () => {
228
225
  await connector.close();
229
226
  });
230
227
  test('normal json cn tag BindParam', async () => {
231
- let dsn = 'ws://root:taosdata@localhost:6041';
232
228
  let wsConf = new config_1.WSConfig(dsn);
233
229
  wsConf.setDb(db);
234
230
  let connector = await wsSql_1.WsSql.open(wsConf);
@@ -15,8 +15,9 @@ const topics = ['topic_ws_bean'];
15
15
  let createTopic = `create topic if not exists ${topics[0]} as select * from ${db}.${stable}`;
16
16
  let dropTopic = `DROP TOPIC IF EXISTS ${topics[0]};`;
17
17
  // let dropTopic2 = `DROP TOPIC IF EXISTS ${topic2};`
18
+ let dsn = 'ws://root:taosdata@localhost:6041';
19
+ let tmqDsn = 'ws://localhost:6041';
18
20
  beforeAll(async () => {
19
- let dsn = 'ws://root:taosdata@localhost:6041';
20
21
  let conf = new config_1.WSConfig(dsn);
21
22
  const createDB = `create database if not exists ${db} keep 3650`;
22
23
  const dropDB = `drop database if exists ${db}`;
@@ -59,7 +60,7 @@ describe('TDWebSocket.Tmq()', () => {
59
60
  [constant_1.TMQConstants.CONNECT_PASS, "taosdata"],
60
61
  [constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest"],
61
62
  [constant_1.TMQConstants.CLIENT_ID, 'test_tmq_client'],
62
- [constant_1.TMQConstants.WS_URL, 'ws://localhost:6041'],
63
+ [constant_1.TMQConstants.WS_URL, tmqDsn],
63
64
  [constant_1.TMQConstants.ENABLE_AUTO_COMMIT, 'true'],
64
65
  [constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, '1000']
65
66
  ]);
@@ -77,7 +78,7 @@ describe('TDWebSocket.Tmq()', () => {
77
78
  [constant_1.TMQConstants.CONNECT_PASS, "test"],
78
79
  [constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest1"],
79
80
  [constant_1.TMQConstants.CLIENT_ID, 'test_tmq_client'],
80
- [constant_1.TMQConstants.WS_URL, 'ws://localhost:6041'],
81
+ [constant_1.TMQConstants.WS_URL, tmqDsn],
81
82
  [constant_1.TMQConstants.ENABLE_AUTO_COMMIT, 'true'],
82
83
  [constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, '1000']
83
84
  ]);
@@ -100,7 +101,7 @@ describe('TDWebSocket.Tmq()', () => {
100
101
  await consumer.subscribe(topics);
101
102
  let assignment = await consumer.assignment();
102
103
  console.log(assignment);
103
- let counts = [0, 0];
104
+ let counts = 0;
104
105
  let useTime = [];
105
106
  for (let i = 0; i < 5; i++) {
106
107
  let startTime = new Date().getTime();
@@ -108,13 +109,14 @@ describe('TDWebSocket.Tmq()', () => {
108
109
  let currTime = new Date().getTime();
109
110
  useTime.push(Math.abs(currTime - startTime));
110
111
  for (let [key, value] of res) {
112
+ console.log(key, value.getMeta());
111
113
  let data = value.getData();
112
- if (data) {
113
- counts[0] += data.length;
114
+ if (data == null || data.length == 0) {
115
+ break;
116
+ }
117
+ for (let record of data) {
118
+ console.log("-----===>>", record);
114
119
  }
115
- }
116
- if (res.size == 0) {
117
- break;
118
120
  }
119
121
  // await Sleep(100)
120
122
  }
@@ -125,13 +127,12 @@ describe('TDWebSocket.Tmq()', () => {
125
127
  let currTime = new Date().getTime();
126
128
  useTime.push(Math.abs(currTime - startTime));
127
129
  for (let [key, value] of res) {
130
+ console.log(key, value.getMeta());
128
131
  let data = value.getData();
129
- if (data) {
130
- counts[1] += data.length;
132
+ if (data == null || data.length == 0) {
133
+ break;
131
134
  }
132
- }
133
- if (res.size == 0) {
134
- break;
135
+ counts += data.length;
135
136
  }
136
137
  // await Sleep(100)
137
138
  }
@@ -143,7 +144,7 @@ describe('TDWebSocket.Tmq()', () => {
143
144
  await consumer.close();
144
145
  console.log("------------->", useTime);
145
146
  console.log("------------->", counts);
146
- expect(counts).toEqual([10, 10]);
147
+ expect(counts).toEqual(10);
147
148
  });
148
149
  test('Topic not exist', async () => {
149
150
  let consumer = await wsTmq_1.WsConsumer.newConsumer(configMap);
@@ -6,6 +6,7 @@ const reqid_1 = require("../../src/common/reqid");
6
6
  const wsSql_1 = require("../../src/sql/wsSql");
7
7
  const constant_1 = require("../../src/tmq/constant");
8
8
  const wsTmq_1 = require("../../src/tmq/wsTmq");
9
+ let dsn = 'ws://root:taosdata@localhost:6041';
9
10
  let tags = ['California.SanFrancisco', 3];
10
11
  let multi = [
11
12
  [1709183268567, 1709183268568, 1709183268569],
@@ -78,7 +79,14 @@ async function tmqConnect() {
78
79
  await consumer.subscribe(topics);
79
80
  let res = await consumer.poll(500);
80
81
  for (let [key, value] of res) {
81
- console.log(key, value);
82
+ console.log(key, value.getMeta());
83
+ let data = value.getData();
84
+ if (data == null || data.length == 0) {
85
+ break;
86
+ }
87
+ for (let record of data) {
88
+ console.log(record);
89
+ }
82
90
  }
83
91
  await consumer.commit();
84
92
  let assignment = await consumer.assignment();
@@ -97,7 +105,6 @@ async function tmqConnect() {
97
105
  }
98
106
  }
99
107
  beforeAll(async () => {
100
- let dsn = 'ws://root:taosdata@localhost:6041';
101
108
  let conf = new config_1.WSConfig(dsn);
102
109
  let ws = await wsSql_1.WsSql.open(conf);
103
110
  await ws.exec(createTopic, reqid_1.ReqId.getReqID());
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@tdengine/websocket",
3
- "version": "3.1.0",
3
+ "version": "3.1.1",
4
4
  "description": "TDengine Connector for nodejs and browser using WebSocket.",
5
5
  "source": "index.ts",
6
6
  "main": "lib/index.js",
7
- "module": "lib/module/index.mjs",
7
+ "module": "lib/index.js",
8
8
  "types": "lib/index.d.ts",
9
9
  "directories": {
10
10
  "example": "example",