node-firebird-driver 2.3.0 → 2.4.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.
@@ -7,6 +7,8 @@ export interface Client {
7
7
  connect(uri: string, options?: ConnectOptions): Promise<Attachment>;
8
8
  /** Creates a database. */
9
9
  createDatabase(uri: string, options?: CreateDatabaseOptions): Promise<Attachment>;
10
+ /** True if the client has not been disposed. */
11
+ readonly isValid: boolean;
10
12
  /** Default connect options. */
11
13
  defaultConnectOptions?: ConnectOptions;
12
14
  /** Default create database options. */
@@ -91,11 +93,27 @@ export interface Attachment {
91
93
  executeOptions?: ExecuteOptions;
92
94
  }): Promise<void>;
93
95
  /** Executes a statement that returns a single record as [col1, col2, ..., colN]. */
94
- executeReturning(transaction: Transaction, sqlStmt: string, parameters?: any[], options?: {
96
+ executeSingleton(transaction: Transaction, sqlStmt: string, parameters?: any[], options?: {
95
97
  prepareOptions?: PrepareOptions;
96
98
  executeOptions?: ExecuteOptions;
97
99
  }): Promise<any[]>;
98
100
  /** Executes a statement that returns a single record as an object. */
101
+ executeSingletonAsObject<T extends object>(transaction: Transaction, sqlStmt: string, parameters?: any[], options?: {
102
+ prepareOptions?: PrepareOptions;
103
+ executeOptions?: ExecuteOptions;
104
+ }): Promise<T>;
105
+ /**
106
+ * Executes a statement that returns a single record as [col1, col2, ..., colN].
107
+ * @deprecated since version 2.4.0 and will be removed in next major version. Replaced by executeSingleton.
108
+ */
109
+ executeReturning(transaction: Transaction, sqlStmt: string, parameters?: any[], options?: {
110
+ prepareOptions?: PrepareOptions;
111
+ executeOptions?: ExecuteOptions;
112
+ }): Promise<any[]>;
113
+ /**
114
+ * Executes a statement that returns a single record as an object.
115
+ * @deprecated since version 2.4.0 and will be removed in next major version. Replaced by executeSingletonAsObject.
116
+ */
99
117
  executeReturningAsObject<T extends object>(transaction: Transaction, sqlStmt: string, parameters?: any[], options?: {
100
118
  prepareOptions?: PrepareOptions;
101
119
  executeOptions?: ExecuteOptions;
@@ -106,6 +124,8 @@ export interface Attachment {
106
124
  executeOptions?: ExecuteQueryOptions;
107
125
  }): Promise<ResultSet>;
108
126
  queueEvents(names: string[], callBack: (counters: [string, number][]) => Promise<void>): Promise<Events>;
127
+ /** True if the attachment is connected. */
128
+ readonly isValid: boolean;
109
129
  /** Default transaction options. */
110
130
  defaultTransactionOptions?: TransactionOptions;
111
131
  /** Default query's prepare options. */
@@ -127,6 +147,8 @@ export interface Transaction {
127
147
  rollback(): Promise<void>;
128
148
  /** Rollbacks and maintains this transaction object for subsequent work. */
129
149
  rollbackRetaining(): Promise<void>;
150
+ /** True if the transaction is active. */
151
+ readonly isValid: boolean;
130
152
  }
131
153
  /** Statement interface. */
132
154
  export interface Statement {
@@ -137,8 +159,18 @@ export interface Statement {
137
159
  /** Executes a prepared statement that has no result set. */
138
160
  execute(transaction: Transaction, parameters?: any[], options?: ExecuteOptions): Promise<void>;
139
161
  /** Executes a statement that returns a single record as [col1, col2, ..., colN]. */
140
- executeReturning(transaction: Transaction, parameters?: any[], executeOptions?: ExecuteOptions): Promise<any[]>;
162
+ executeSingleton(transaction: Transaction, parameters?: any[], executeOptions?: ExecuteOptions): Promise<any[]>;
141
163
  /** Executes a statement that returns a single record as an object. */
164
+ executeSingletonAsObject<T extends object>(transaction: Transaction, parameters?: any[], executeOptions?: ExecuteOptions): Promise<T>;
165
+ /**
166
+ * Executes a statement that returns a single record as [col1, col2, ..., colN].
167
+ * @deprecated since version 2.4.0 and will be removed in next major version. Replaced by executeSingleton.
168
+ */
169
+ executeReturning(transaction: Transaction, parameters?: any[], executeOptions?: ExecuteOptions): Promise<any[]>;
170
+ /**
171
+ * Executes a statement that returns a single record as an object.
172
+ * @deprecated since version 2.4.0 and will be removed in next major version. Replaced by executeSingletonAsObject.
173
+ */
142
174
  executeReturningAsObject<T extends object>(transaction: Transaction, parameters?: any[], options?: ExecuteOptions): Promise<T>;
143
175
  /** Executes a prepared statement that has result set. */
144
176
  executeQuery(transaction: Transaction, parameters?: any[], options?: ExecuteQueryOptions): Promise<ResultSet>;
@@ -148,6 +180,9 @@ export interface Statement {
148
180
  * Use with ResultSet.fetch({ fetchSize: 1 }) and other statement with WHERE CURRENT OF <cursorName>.
149
181
  */
150
182
  setCursorName(cursorName: string): Promise<void>;
183
+ getExecPathText(): Promise<string | undefined>;
184
+ /** True if the statement has not been disposed. */
185
+ readonly isValid: boolean;
151
186
  /** Gets the query's result columns labels. Returns empty array for queries without result. */
152
187
  readonly columnLabels: Promise<string[]>;
153
188
  /** When true, query result must be obtained with method executeQuery. */
@@ -180,11 +215,15 @@ export interface ResultSet {
180
215
  * If result set has no more rows, returns an empty array.
181
216
  */
182
217
  fetchAsObject<T extends object>(options?: FetchOptions): Promise<T[]>;
218
+ /** True if the ResultSet is open. */
219
+ readonly isValid: boolean;
183
220
  /** Default result set's fetch options. */
184
221
  defaultFetchOptions?: FetchOptions;
185
222
  }
186
223
  export interface Events {
187
224
  cancel(): Promise<void>;
225
+ /** True if the events' attachment is valid. */
226
+ readonly isValid: boolean;
188
227
  }
189
228
  /** Blob class. */
190
229
  export declare class Blob {
@@ -193,6 +232,8 @@ export declare class Blob {
193
232
  /** Gets the blob's id. */
194
233
  readonly id: Uint8Array;
195
234
  constructor(attachment: Attachment, id: Uint8Array);
235
+ /** True if the blob's attachment is valid. */
236
+ get isValid(): boolean;
196
237
  }
197
238
  /** BlobStream class. */
198
239
  export declare abstract class BlobStream {
@@ -212,6 +253,8 @@ export declare abstract class BlobStream {
212
253
  abstract read(buffer: Buffer): Promise<number>;
213
254
  /** Writes data to the blob. */
214
255
  abstract write(buffer: Buffer): Promise<void>;
256
+ /** True if the blob stream is open. */
257
+ abstract get isValid(): boolean;
215
258
  }
216
259
  /** TIME WITH TIME ZONE and TIMESTAMP WITH TIME ZONE to be sent as parameter */
217
260
  export interface ZonedDate {
package/dist/lib/index.js CHANGED
@@ -16,6 +16,10 @@ class Blob {
16
16
  this.attachment = attachment;
17
17
  this.id.set(id);
18
18
  }
19
+ /** True if the blob's attachment is valid. */
20
+ get isValid() {
21
+ return this.attachment.isValid;
22
+ }
19
23
  }
20
24
  exports.Blob = Blob;
21
25
  /** BlobStream class. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;;AAmDA,gCAAgC;AAChC,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC/B,mDAA2B,CAAA;IAC3B,yDAAiC,CAAA;IACjC,6CAAqB,CAAA;AACtB,CAAC,EAJW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAI/B;AAoMD,kBAAkB;AAClB,MAAa,IAAI;IAOhB,YAAY,UAAsB,EAAE,EAAc;QAHlD,0BAA0B;QACjB,OAAE,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAG/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;CACD;AAXD,oBAWC;AAED,wBAAwB;AACxB,MAAsB,UAAU;IAO/B,YAAsB,IAAU;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CAgBD;AAzBD,gCAyBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;;AAsDA,gCAAgC;AAChC,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC/B,mDAA2B,CAAA;IAC3B,yDAAiC,CAAA;IACjC,6CAAqB,CAAA;AACtB,CAAC,EAJW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAI/B;AAqPD,kBAAkB;AAClB,MAAa,IAAI;IAOhB,YAAY,UAAsB,EAAE,EAAc;QAHlD,0BAA0B;QACjB,OAAE,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAG/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IAChC,CAAC;CACD;AAhBD,oBAgBC;AAED,wBAAwB;AACxB,MAAsB,UAAU;IAO/B,YAAsB,IAAU;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;CAmBD;AA5BD,gCA4BC"}
@@ -60,6 +60,7 @@ function runCommonTests(client) {
60
60
  }
61
61
  jest.setTimeout(10000);
62
62
  beforeAll(() => {
63
+ expect(client.isValid).toBeTruthy();
63
64
  if (isLocal() && !testConfig.tmpDir) {
64
65
  testConfig.tmpDir = tmp.mkdirSync().path.toString();
65
66
  // Important for MacOS tests with non-embedded server.
@@ -74,6 +75,7 @@ function runCommonTests(client) {
74
75
  });
75
76
  afterAll(() => __awaiter(this, void 0, void 0, function* () {
76
77
  yield client.dispose();
78
+ expect(client.isValid).toBeFalsy();
77
79
  if (isLocal())
78
80
  fs.rmdirSync(testConfig.tmpDir);
79
81
  }));
@@ -86,8 +88,12 @@ function runCommonTests(client) {
86
88
  const filename = getTempFile('Client-connect.fdb');
87
89
  const attachment1 = yield client.createDatabase(filename);
88
90
  const attachment2 = yield client.connect(filename);
91
+ expect(attachment1.isValid).toBeTruthy();
92
+ expect(attachment2.isValid).toBeTruthy();
89
93
  yield attachment2.disconnect();
90
94
  yield attachment1.dropDatabase();
95
+ expect(attachment1.isValid).toBeFalsy();
96
+ expect(attachment2.isValid).toBeFalsy();
91
97
  }));
92
98
  });
93
99
  describe('Attachment', () => {
@@ -95,21 +101,29 @@ function runCommonTests(client) {
95
101
  const attachment = yield client.createDatabase(getTempFile('Attachment-startTransaction.fdb'));
96
102
  const isolationQuery = 'select rdb$get_context(\'SYSTEM\', \'ISOLATION_LEVEL\') from rdb$database';
97
103
  const transaction1 = yield attachment.startTransaction();
98
- expect((yield attachment.executeReturning(transaction1, isolationQuery))[0]).toBe('SNAPSHOT');
104
+ expect(transaction1.isValid).toBeTruthy();
105
+ expect((yield attachment.executeSingleton(transaction1, isolationQuery))[0]).toBe('SNAPSHOT');
99
106
  yield transaction1.commit();
107
+ expect(transaction1.isValid).toBeFalsy();
100
108
  const transaction2 = yield attachment.startTransaction({ isolation: lib_1.TransactionIsolation.READ_COMMITTED });
101
- expect((yield attachment.executeReturning(transaction2, isolationQuery))[0]).toBe('READ COMMITTED');
109
+ expect(transaction2.isValid).toBeTruthy();
110
+ expect((yield attachment.executeSingleton(transaction2, isolationQuery))[0]).toBe('READ COMMITTED');
102
111
  yield transaction2.commit();
112
+ expect(transaction2.isValid).toBeFalsy();
103
113
  const transaction3 = yield attachment.startTransaction({ isolation: lib_1.TransactionIsolation.CONSISTENCY });
104
- expect((yield attachment.executeReturning(transaction3, isolationQuery))[0]).toBe('CONSISTENCY');
114
+ expect(transaction3.isValid).toBeTruthy();
115
+ expect((yield attachment.executeSingleton(transaction3, isolationQuery))[0]).toBe('CONSISTENCY');
105
116
  yield transaction3.commit();
117
+ expect(transaction3.isValid).toBeFalsy();
106
118
  yield attachment.dropDatabase();
107
119
  }));
108
120
  test('#prepare()', () => __awaiter(this, void 0, void 0, function* () {
109
121
  const attachment = yield client.createDatabase(getTempFile('Attachment-prepare.fdb'));
110
122
  const transaction = yield attachment.startTransaction();
111
123
  const statement = yield attachment.prepare(transaction, 'create table t1 (n1 integer)');
124
+ expect(statement.isValid).toBeTruthy();
112
125
  yield statement.dispose();
126
+ expect(statement.isValid).toBeFalsy();
113
127
  let error;
114
128
  try {
115
129
  yield attachment.prepare(transaction, 'create select t1 (n1 integer)');
@@ -141,7 +155,30 @@ function runCommonTests(client) {
141
155
  yield attachment.execute(transaction, 'create table t1 (n1 integer)');
142
156
  yield transaction.commitRetaining();
143
157
  const resultSet = yield attachment.executeQuery(transaction, 'select n1 from t1');
158
+ expect(resultSet.isValid).toBeTruthy();
144
159
  yield resultSet.close();
160
+ expect(resultSet.isValid).toBeFalsy();
161
+ yield transaction.commit();
162
+ yield attachment.dropDatabase();
163
+ }));
164
+ test('#executeSingleton()', () => __awaiter(this, void 0, void 0, function* () {
165
+ const attachment = yield client.createDatabase(getTempFile('Attachment-executeSingleton.fdb'));
166
+ const transaction = yield attachment.startTransaction();
167
+ yield attachment.execute(transaction, 'create table t1 (n1 integer)');
168
+ yield transaction.commitRetaining();
169
+ const result = yield attachment.executeSingleton(transaction, 'insert into t1 values (11) returning n1');
170
+ expect(result.length).toBe(1);
171
+ expect(result[0]).toBe(11);
172
+ yield transaction.commit();
173
+ yield attachment.dropDatabase();
174
+ }));
175
+ test('#executeSingletonAsObject()', () => __awaiter(this, void 0, void 0, function* () {
176
+ const attachment = yield client.createDatabase(getTempFile('Attachment-executeSingletonAsObject.fdb'));
177
+ const transaction = yield attachment.startTransaction();
178
+ yield attachment.execute(transaction, 'create table t1 (n1 integer)');
179
+ yield transaction.commitRetaining();
180
+ const output = yield attachment.executeSingletonAsObject(transaction, 'insert into t1 values (11) returning n1');
181
+ expect(output.N1).toBe(11);
145
182
  yield transaction.commit();
146
183
  yield attachment.dropDatabase();
147
184
  }));
@@ -194,6 +231,7 @@ function runCommonTests(client) {
194
231
  if (Array.from(eventsMap.values()).every(obj => obj.count >= obj.expected)) {
195
232
  if (events) {
196
233
  yield events.cancel();
234
+ expect(events.isValid).toBeFalsy();
197
235
  events = null;
198
236
  }
199
237
  }
@@ -216,10 +254,12 @@ function runCommonTests(client) {
216
254
  // Commit retaining to test internal event rescheduling
217
255
  // after each handler dispatch.
218
256
  yield transaction.commitRetaining();
257
+ expect(transaction.isValid).toBeTruthy();
219
258
  }
220
259
  }
221
260
  finally {
222
261
  yield transaction.commit();
262
+ expect(transaction.isValid).toBeFalsy();
223
263
  }
224
264
  yield Promise.all(eventsObj.map(ev => ev.promise));
225
265
  if (events)
@@ -274,7 +314,9 @@ function runCommonTests(client) {
274
314
  yield statement2.execute(transaction, [null]);
275
315
  yield statement2.execute(transaction, [10]);
276
316
  yield statement2.execute(transaction, [100]);
317
+ expect(statement2.isValid).toBeTruthy();
277
318
  yield statement2.dispose();
319
+ expect(statement2.isValid).toBeFalsy();
278
320
  const rs = yield attachment.executeQuery(transaction, `select sum(n1) || ', ' || count(n1) || ', ' || count(*) ret from t1`);
279
321
  const ret = yield rs.fetchAsObject();
280
322
  yield rs.close();
@@ -296,6 +338,20 @@ function runCommonTests(client) {
296
338
  yield transaction.commit();
297
339
  yield attachment.dropDatabase();
298
340
  }));
341
+ test('#executeSingleton()', () => __awaiter(this, void 0, void 0, function* () {
342
+ const attachment = yield client.createDatabase(getTempFile('Attachment-executeSingleton.fdb'));
343
+ const transaction = yield attachment.startTransaction();
344
+ yield attachment.execute(transaction, 'create table t1 (n1 integer)');
345
+ yield transaction.commitRetaining();
346
+ const statement = yield attachment.prepare(transaction, 'insert into t1 values (11) returning n1, n1 * 2');
347
+ const result = yield statement.executeSingleton(transaction);
348
+ expect(result.length).toBe(2);
349
+ expect(result[0]).toBe(11);
350
+ expect(result[1]).toBe(11 * 2);
351
+ yield statement.dispose();
352
+ yield transaction.commit();
353
+ yield attachment.dropDatabase();
354
+ }));
299
355
  test('#executeReturning()', () => __awaiter(this, void 0, void 0, function* () {
300
356
  const attachment = yield client.createDatabase(getTempFile('Attachment-executeReturning.fdb'));
301
357
  const transaction = yield attachment.startTransaction();
@@ -415,8 +471,11 @@ function runCommonTests(client) {
415
471
  yield transaction.commit();
416
472
  transaction = yield attachment.startTransaction();
417
473
  const blob = yield attachment.createBlob(transaction);
474
+ expect(blob.isValid).toBeTruthy();
418
475
  yield blob.write(blobBuffer);
476
+ expect(blob.isValid).toBeTruthy();
419
477
  yield blob.close();
478
+ expect(blob.isValid).toBeFalsy();
420
479
  parameters = [
421
480
  -1,
422
481
  -2,
@@ -533,6 +592,7 @@ function runCommonTests(client) {
533
592
  expect(columns[n++]).toBeNull();
534
593
  for (const i = n + 2; n < i; ++n) {
535
594
  const blob = columns[n];
595
+ expect(blob.isValid).toBeTruthy();
536
596
  const blobStream = yield attachment.openBlob(transaction, blob);
537
597
  const buffer = Buffer.alloc(yield blobStream.length);
538
598
  expect(yield blobStream.read(buffer)).toBe(buffer.length);
@@ -1 +1 @@
1
- {"version":3,"file":"tests.js","sourceRoot":"","sources":["../../src/test/tests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tests.js","sourceRoot":"","sources":["../../src/test/tests.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-firebird-driver",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "Firebird Driver Interfaces for Node.js",
5
5
  "main": "dist/lib/index.js",
6
6
  "scripts": {
@@ -29,7 +29,7 @@
29
29
  "homepage": "https://github.com/asfernandes/node-firebird-drivers#readme",
30
30
  "typings": "./dist/lib/index.d.ts",
31
31
  "dependencies": {
32
- "@types/node": "^14.10.1"
32
+ "@types/node": "^17.0.10"
33
33
  },
34
- "gitHead": "ba0d6ba3448d260e8d7dada85bde1dc76c1f56c4"
34
+ "gitHead": "3514f2b8fae52f1379db80a8149016f161603a54"
35
35
  }
@@ -95,7 +95,7 @@ export abstract class AbstractAttachment implements Attachment {
95
95
  }
96
96
 
97
97
  /** Executes a statement that returns a single record. */
98
- async executeReturning(transaction: AbstractTransaction, sqlStmt: string, parameters?: Array<any>,
98
+ async executeSingleton(transaction: AbstractTransaction, sqlStmt: string, parameters?: Array<any>,
99
99
  options?: {
100
100
  prepareOptions?: PrepareOptions,
101
101
  executeOptions?: ExecuteOptions
@@ -104,7 +104,7 @@ export abstract class AbstractAttachment implements Attachment {
104
104
 
105
105
  const statement = await this.prepare(transaction, sqlStmt, options && options.prepareOptions);
106
106
  try {
107
- return await statement.executeReturning(transaction, parameters, options && options.executeOptions);
107
+ return await statement.executeSingleton(transaction, parameters, options && options.executeOptions);
108
108
  }
109
109
  finally {
110
110
  await statement.dispose();
@@ -112,7 +112,7 @@ export abstract class AbstractAttachment implements Attachment {
112
112
  }
113
113
 
114
114
  /** Executes a statement that returns a single record in object form. */
115
- async executeReturningAsObject<T extends object>(transaction: AbstractTransaction, sqlStmt: string, parameters?: any[],
115
+ async executeSingletonAsObject<T extends object>(transaction: AbstractTransaction, sqlStmt: string, parameters?: any[],
116
116
  options?: {
117
117
  prepareOptions?: PrepareOptions,
118
118
  executeOptions?: ExecuteOptions
@@ -121,13 +121,31 @@ export abstract class AbstractAttachment implements Attachment {
121
121
 
122
122
  const statement = await this.prepare(transaction, sqlStmt, options && options.prepareOptions);
123
123
  try {
124
- return await statement.executeReturningAsObject(transaction, parameters, options && options.executeOptions);
124
+ return await statement.executeSingletonAsObject(transaction, parameters, options && options.executeOptions);
125
125
  }
126
126
  finally {
127
127
  await statement.dispose();
128
128
  }
129
129
  }
130
130
 
131
+ /** Executes a statement that returns a single record. */
132
+ async executeReturning(transaction: AbstractTransaction, sqlStmt: string, parameters?: Array<any>,
133
+ options?: {
134
+ prepareOptions?: PrepareOptions,
135
+ executeOptions?: ExecuteOptions
136
+ }): Promise<Array<any>> {
137
+ return await this.executeSingleton(transaction, sqlStmt, parameters, options);
138
+ }
139
+
140
+ /** Executes a statement that returns a single record in object form. */
141
+ async executeReturningAsObject<T extends object>(transaction: AbstractTransaction, sqlStmt: string, parameters?: any[],
142
+ options?: {
143
+ prepareOptions?: PrepareOptions,
144
+ executeOptions?: ExecuteOptions
145
+ }): Promise<T> {
146
+ return await this.executeSingletonAsObject<T>(transaction, sqlStmt, parameters, options);
147
+ }
148
+
131
149
  /** Executes a statement that has result set. */
132
150
  async executeQuery(transaction: AbstractTransaction, sqlStmt: string, parameters?: any[],
133
151
  options?: {
@@ -155,7 +173,7 @@ export abstract class AbstractAttachment implements Attachment {
155
173
  const trimmedName = name.trimRight();
156
174
 
157
175
  if (Buffer.from(trimmedName).byteLength > 255)
158
- throw new Error(`Invalid event name: ${name}.`);
176
+ throw new Error(`Invalid event name: ${name}.`);
159
177
 
160
178
  return trimmedName;
161
179
  });
@@ -194,8 +212,12 @@ export abstract class AbstractAttachment implements Attachment {
194
212
  return statement;
195
213
  }
196
214
 
215
+ get isValid(): boolean {
216
+ return !!this.client;
217
+ }
218
+
197
219
  private check() {
198
- if (!this.client)
220
+ if (!this.isValid)
199
221
  throw new Error('Attachment is already disconnected.');
200
222
  }
201
223
 
@@ -72,8 +72,12 @@ export abstract class AbstractClient implements Client {
72
72
  return attachment;
73
73
  }
74
74
 
75
+ get isValid(): boolean {
76
+ return !!this.connected;
77
+ }
78
+
75
79
  private check() {
76
- if (!this.connected)
80
+ if (!this.isValid)
77
81
  throw new Error('Client is already disposed.');
78
82
  }
79
83
 
@@ -18,8 +18,12 @@ export abstract class AbstractEvents implements Events {
18
18
  this.attachment = undefined;
19
19
  }
20
20
 
21
+ get isValid(): boolean {
22
+ return !!this.attachment;
23
+ }
24
+
21
25
  private check() {
22
- if (!this.attachment)
26
+ if (!this.isValid)
23
27
  throw new Error('Events are already cancelled.');
24
28
  }
25
29
 
@@ -93,6 +93,21 @@ export namespace blobInfo {
93
93
  export const totalLength = 6;
94
94
  }
95
95
 
96
+ /** Statement info. */
97
+ export namespace statementInfo {
98
+ export const sqlExecPathBlrText = 32;
99
+ }
100
+
101
+ /** Common info. */
102
+ export namespace commonInfo {
103
+ export const end = 1;
104
+ export const truncated = 2;
105
+ export const error = 3;
106
+ export const dataNotReady = 4;
107
+ export const length = 126;
108
+ export const flagEnd = 127;
109
+ }
110
+
96
111
  export namespace charSets {
97
112
  export const ascii = 2;
98
113
  }
@@ -79,8 +79,12 @@ export abstract class AbstractResultSet implements ResultSet {
79
79
  });
80
80
  }
81
81
 
82
+ get isValid(): boolean {
83
+ return !!this.statement;
84
+ }
85
+
82
86
  private check() {
83
- if (!this.statement)
87
+ if (!this.isValid)
84
88
  throw new Error('ResultSet is already closed.');
85
89
  }
86
90