node-firebird-driver-native 2.4.0 → 3.0.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.
- package/dist/lib/attachment.d.ts +2 -2
- package/dist/lib/attachment.js +28 -55
- package/dist/lib/attachment.js.map +1 -1
- package/dist/lib/blob.d.ts +3 -2
- package/dist/lib/blob.js +48 -65
- package/dist/lib/blob.js.map +1 -1
- package/dist/lib/client.js +18 -35
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/events.js +11 -24
- package/dist/lib/events.js.map +1 -1
- package/dist/lib/fb-util.js +5 -1
- package/dist/lib/fb-util.js.map +1 -1
- package/dist/lib/index.js +5 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/resultset.js +45 -60
- package/dist/lib/resultset.js.map +1 -1
- package/dist/lib/statement.js +59 -82
- package/dist/lib/statement.js.map +1 -1
- package/dist/lib/transaction.js +16 -35
- package/dist/lib/transaction.js.map +1 -1
- package/package.json +5 -5
- package/src/lib/attachment.ts +3 -2
- package/src/lib/blob.ts +12 -4
package/dist/lib/attachment.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { ClientImpl } from './client';
|
|
|
3
3
|
import { StatementImpl } from './statement';
|
|
4
4
|
import { TransactionImpl } from './transaction';
|
|
5
5
|
import { EventsImpl } from './events';
|
|
6
|
-
import { Blob, ConnectOptions, CreateDatabaseOptions, PrepareOptions, TransactionOptions } from 'node-firebird-driver';
|
|
6
|
+
import { Blob, ConnectOptions, CreateBlobOptions, CreateDatabaseOptions, PrepareOptions, TransactionOptions } from 'node-firebird-driver';
|
|
7
7
|
import { AbstractAttachment } from 'node-firebird-driver/dist/lib/impl';
|
|
8
8
|
import * as fb from 'node-firebird-native-api';
|
|
9
9
|
/** Attachment implementation. */
|
|
@@ -18,7 +18,7 @@ export declare class AttachmentImpl extends AbstractAttachment {
|
|
|
18
18
|
protected internalDropDatabase(): Promise<void>;
|
|
19
19
|
/** Starts a new transaction. */
|
|
20
20
|
protected internalStartTransaction(options?: TransactionOptions): Promise<TransactionImpl>;
|
|
21
|
-
protected internalCreateBlob(transaction: TransactionImpl): Promise<BlobStreamImpl>;
|
|
21
|
+
protected internalCreateBlob(transaction: TransactionImpl, options?: CreateBlobOptions): Promise<BlobStreamImpl>;
|
|
22
22
|
protected internalOpenBlob(transaction: TransactionImpl, blob: Blob): Promise<BlobStreamImpl>;
|
|
23
23
|
/** Prepares a query. */
|
|
24
24
|
protected internalPrepare(transaction: TransactionImpl, sqlStmt: string, options?: PrepareOptions): Promise<StatementImpl>;
|
package/dist/lib/attachment.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.AttachmentImpl = void 0;
|
|
13
4
|
const blob_1 = require("./blob");
|
|
@@ -18,66 +9,48 @@ const fb_util_1 = require("./fb-util");
|
|
|
18
9
|
const impl_1 = require("node-firebird-driver/dist/lib/impl");
|
|
19
10
|
/** Attachment implementation. */
|
|
20
11
|
class AttachmentImpl extends impl_1.AbstractAttachment {
|
|
21
|
-
static connect(client, uri, options) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return attachment;
|
|
28
|
-
}));
|
|
12
|
+
static async connect(client, uri, options) {
|
|
13
|
+
const attachment = new AttachmentImpl(client);
|
|
14
|
+
return await client.statusAction(async (status) => {
|
|
15
|
+
const dpb = (0, fb_util_1.createDpb)(options);
|
|
16
|
+
attachment.attachmentHandle = await client.dispatcher.attachDatabaseAsync(status, uri, dpb.length, dpb);
|
|
17
|
+
return attachment;
|
|
29
18
|
});
|
|
30
19
|
}
|
|
31
|
-
static createDatabase(client, uri, options) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return attachment;
|
|
38
|
-
}));
|
|
20
|
+
static async createDatabase(client, uri, options) {
|
|
21
|
+
const attachment = new AttachmentImpl(client);
|
|
22
|
+
return await client.statusAction(async (status) => {
|
|
23
|
+
const dpb = (0, fb_util_1.createDpb)(options);
|
|
24
|
+
attachment.attachmentHandle = await client.dispatcher.createDatabaseAsync(status, uri, dpb.length, dpb);
|
|
25
|
+
return attachment;
|
|
39
26
|
});
|
|
40
27
|
}
|
|
41
28
|
/** Disconnects this attachment. */
|
|
42
|
-
internalDisconnect() {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
this.attachmentHandle = undefined;
|
|
46
|
-
});
|
|
29
|
+
async internalDisconnect() {
|
|
30
|
+
await this.client.statusAction(status => this.attachmentHandle.detachAsync(status));
|
|
31
|
+
this.attachmentHandle = undefined;
|
|
47
32
|
}
|
|
48
33
|
/** Drops the database and release this attachment. */
|
|
49
|
-
internalDropDatabase() {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.attachmentHandle = undefined;
|
|
53
|
-
});
|
|
34
|
+
async internalDropDatabase() {
|
|
35
|
+
await this.client.statusAction(status => this.attachmentHandle.dropDatabaseAsync(status));
|
|
36
|
+
this.attachmentHandle = undefined;
|
|
54
37
|
}
|
|
55
38
|
/** Starts a new transaction. */
|
|
56
|
-
internalStartTransaction(options) {
|
|
57
|
-
return
|
|
58
|
-
return yield transaction_1.TransactionImpl.start(this, options);
|
|
59
|
-
});
|
|
39
|
+
async internalStartTransaction(options) {
|
|
40
|
+
return await transaction_1.TransactionImpl.start(this, options);
|
|
60
41
|
}
|
|
61
|
-
internalCreateBlob(transaction) {
|
|
62
|
-
return
|
|
63
|
-
return yield blob_1.BlobStreamImpl.create(this, transaction);
|
|
64
|
-
});
|
|
42
|
+
async internalCreateBlob(transaction, options) {
|
|
43
|
+
return await blob_1.BlobStreamImpl.create(this, transaction, options);
|
|
65
44
|
}
|
|
66
|
-
internalOpenBlob(transaction, blob) {
|
|
67
|
-
return
|
|
68
|
-
return yield blob_1.BlobStreamImpl.open(this, transaction, blob);
|
|
69
|
-
});
|
|
45
|
+
async internalOpenBlob(transaction, blob) {
|
|
46
|
+
return await blob_1.BlobStreamImpl.open(this, transaction, blob);
|
|
70
47
|
}
|
|
71
48
|
/** Prepares a query. */
|
|
72
|
-
internalPrepare(transaction, sqlStmt, options) {
|
|
73
|
-
return
|
|
74
|
-
return yield statement_1.StatementImpl.prepare(this, transaction, sqlStmt, options);
|
|
75
|
-
});
|
|
49
|
+
async internalPrepare(transaction, sqlStmt, options) {
|
|
50
|
+
return await statement_1.StatementImpl.prepare(this, transaction, sqlStmt, options);
|
|
76
51
|
}
|
|
77
|
-
internalQueueEvents(names, callBack) {
|
|
78
|
-
return
|
|
79
|
-
return yield events_1.EventsImpl.queue(this, names, callBack);
|
|
80
|
-
});
|
|
52
|
+
async internalQueueEvents(names, callBack) {
|
|
53
|
+
return await events_1.EventsImpl.queue(this, names, callBack);
|
|
81
54
|
}
|
|
82
55
|
}
|
|
83
56
|
exports.AttachmentImpl = AttachmentImpl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/lib/attachment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../src/lib/attachment.ts"],"names":[],"mappings":";;;AAAA,iCAAwC;AAExC,2CAA4C;AAC5C,+CAAgD;AAChD,qCAAsC;AACtC,uCAAsC;AAWtC,6DAAwE;AAKxE,iCAAiC;AACjC,MAAa,cAAe,SAAQ,yBAAkB;IAMrD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAkB,EAAE,GAAW,EAAE,OAAwB;QAC7E,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAE9C,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YAC/C,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;YAC/B,UAAU,CAAC,gBAAgB,GAAG,MAAM,MAAO,CAAC,UAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1G,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAkB,EAAE,GAAW,EAAE,OAA+B;QAC3F,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAE9C,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YAC/C,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;YAC/B,UAAU,CAAC,gBAAgB,GAAG,MAAM,MAAO,CAAC,UAAW,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC1G,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,mCAAmC;IACzB,KAAK,CAAC,kBAAkB;QACjC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACnC,CAAC;IAED,sDAAsD;IAC5C,KAAK,CAAC,oBAAoB;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACnC,CAAC;IAED,gCAAgC;IACtB,KAAK,CAAC,wBAAwB,CAAC,OAA4B;QACpE,OAAO,MAAM,6BAAe,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,WAA4B,EAAE,OAA2B;QAC3F,OAAO,MAAM,qBAAc,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,WAA4B,EAAE,IAAU;QACxE,OAAO,MAAM,qBAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,wBAAwB;IACd,KAAK,CAAC,eAAe,CAAC,WAA4B,EAAE,OAAe,EAAE,OAAwB;QACtG,OAAO,MAAM,yBAAa,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAES,KAAK,CAAC,mBAAmB,CAClC,KAAe,EAAE,QAAyD;QAE1E,OAAO,MAAM,mBAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;CACD;AA7DD,wCA6DC"}
|
package/dist/lib/blob.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { AttachmentImpl } from './attachment';
|
|
3
|
-
import { Blob } from 'node-firebird-driver';
|
|
3
|
+
import { Blob, BlobSeekWhence, CreateBlobOptions } from 'node-firebird-driver';
|
|
4
4
|
import { AbstractBlobStream } from 'node-firebird-driver/dist/lib/impl';
|
|
5
5
|
import * as fb from 'node-firebird-native-api';
|
|
6
6
|
import { TransactionImpl } from './transaction';
|
|
@@ -8,11 +8,12 @@ import { TransactionImpl } from './transaction';
|
|
|
8
8
|
export declare class BlobStreamImpl extends AbstractBlobStream {
|
|
9
9
|
attachment: AttachmentImpl;
|
|
10
10
|
blobHandle?: fb.Blob;
|
|
11
|
-
static create(attachment: AttachmentImpl, transaction: TransactionImpl): Promise<BlobStreamImpl>;
|
|
11
|
+
static create(attachment: AttachmentImpl, transaction: TransactionImpl, options?: CreateBlobOptions): Promise<BlobStreamImpl>;
|
|
12
12
|
static open(attachment: AttachmentImpl, transaction: TransactionImpl, blob: Blob): Promise<BlobStreamImpl>;
|
|
13
13
|
protected internalGetLength(): Promise<number>;
|
|
14
14
|
protected internalClose(): Promise<void>;
|
|
15
15
|
protected internalCancel(): Promise<void>;
|
|
16
|
+
protected internalSeek(offset: number, whence?: BlobSeekWhence): Promise<number>;
|
|
16
17
|
protected internalRead(buffer: Buffer): Promise<number>;
|
|
17
18
|
protected internalWrite(buffer: Buffer): Promise<void>;
|
|
18
19
|
get isValid(): boolean;
|
package/dist/lib/blob.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.BlobStreamImpl = void 0;
|
|
13
4
|
const node_firebird_driver_1 = require("node-firebird-driver");
|
|
@@ -16,73 +7,65 @@ const fb = require("node-firebird-native-api");
|
|
|
16
7
|
const MAX_SEGMENT_SIZE = 65535;
|
|
17
8
|
/** BlobStream implementation. */
|
|
18
9
|
class BlobStreamImpl extends impl_1.AbstractBlobStream {
|
|
19
|
-
static create(attachment, transaction) {
|
|
20
|
-
return
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}));
|
|
10
|
+
static async create(attachment, transaction, options) {
|
|
11
|
+
return await attachment.client.statusAction(async (status) => {
|
|
12
|
+
const blobId = new Uint8Array(8);
|
|
13
|
+
const bpb = (0, impl_1.createBpb)(options);
|
|
14
|
+
const blobHandle = await attachment.attachmentHandle.createBlobAsync(status, transaction.transactionHandle, blobId, bpb.length, bpb);
|
|
15
|
+
const blob = new node_firebird_driver_1.Blob(attachment, blobId);
|
|
16
|
+
const blobStream = new BlobStreamImpl(blob, attachment);
|
|
17
|
+
blobStream.blobHandle = blobHandle;
|
|
18
|
+
return blobStream;
|
|
29
19
|
});
|
|
30
20
|
}
|
|
31
|
-
static open(attachment, transaction, blob) {
|
|
32
|
-
return
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return blobStream;
|
|
37
|
-
}));
|
|
21
|
+
static async open(attachment, transaction, blob) {
|
|
22
|
+
return await attachment.client.statusAction(async (status) => {
|
|
23
|
+
const blobStream = new BlobStreamImpl(blob, attachment);
|
|
24
|
+
blobStream.blobHandle = await attachment.attachmentHandle.openBlobAsync(status, transaction.transactionHandle, blob.id, 0, undefined);
|
|
25
|
+
return blobStream;
|
|
38
26
|
});
|
|
39
27
|
}
|
|
40
|
-
internalGetLength() {
|
|
41
|
-
return
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return (0, impl_1.getPortableInteger)(infoRet.subarray(3), size);
|
|
50
|
-
}));
|
|
28
|
+
async internalGetLength() {
|
|
29
|
+
return await this.attachment.client.statusAction(async (status) => {
|
|
30
|
+
const infoReq = new Uint8Array([impl_1.blobInfo.totalLength]);
|
|
31
|
+
const infoRet = new Uint8Array(20);
|
|
32
|
+
await this.blobHandle.getInfoAsync(status, infoReq.byteLength, infoReq, infoRet.byteLength, infoRet);
|
|
33
|
+
if (infoRet[0] != impl_1.blobInfo.totalLength)
|
|
34
|
+
throw new Error('Unrecognized response from Blob::getInfo.');
|
|
35
|
+
const size = (0, impl_1.getPortableInteger)(infoRet.subarray(1), 2);
|
|
36
|
+
return (0, impl_1.getPortableInteger)(infoRet.subarray(3), size);
|
|
51
37
|
});
|
|
52
38
|
}
|
|
53
|
-
internalClose() {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
39
|
+
async internalClose() {
|
|
40
|
+
await this.attachment.client.statusAction(status => this.blobHandle.closeAsync(status));
|
|
41
|
+
this.blobHandle = undefined;
|
|
42
|
+
}
|
|
43
|
+
async internalCancel() {
|
|
44
|
+
await this.attachment.client.statusAction(status => this.blobHandle.cancelAsync(status));
|
|
45
|
+
this.blobHandle = undefined;
|
|
58
46
|
}
|
|
59
|
-
|
|
60
|
-
return
|
|
61
|
-
|
|
62
|
-
this.blobHandle = undefined;
|
|
47
|
+
async internalSeek(offset, whence) {
|
|
48
|
+
return await this.attachment.client.statusAction(async (status) => {
|
|
49
|
+
return await this.blobHandle.seekAsync(status, whence ?? node_firebird_driver_1.BlobSeekWhence.START, offset);
|
|
63
50
|
});
|
|
64
51
|
}
|
|
65
|
-
internalRead(buffer) {
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return segLength[0];
|
|
74
|
-
}));
|
|
52
|
+
async internalRead(buffer) {
|
|
53
|
+
return await this.attachment.client.statusAction(async (status) => {
|
|
54
|
+
const readingBytes = Math.min(buffer.length, MAX_SEGMENT_SIZE);
|
|
55
|
+
const segLength = new Uint32Array(1);
|
|
56
|
+
const result = await this.blobHandle.getSegmentAsync(status, readingBytes, buffer, segLength);
|
|
57
|
+
if (result == fb.Status.RESULT_NO_DATA)
|
|
58
|
+
return -1;
|
|
59
|
+
return segLength[0];
|
|
75
60
|
});
|
|
76
61
|
}
|
|
77
|
-
internalWrite(buffer) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
}));
|
|
62
|
+
async internalWrite(buffer) {
|
|
63
|
+
await this.attachment.client.statusAction(async (status) => {
|
|
64
|
+
while (buffer.length > 0) {
|
|
65
|
+
const writingBytes = Math.min(buffer.length, MAX_SEGMENT_SIZE);
|
|
66
|
+
await this.blobHandle.putSegmentAsync(status, writingBytes, buffer);
|
|
67
|
+
buffer = buffer.slice(writingBytes);
|
|
68
|
+
}
|
|
86
69
|
});
|
|
87
70
|
}
|
|
88
71
|
get isValid() {
|
package/dist/lib/blob.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob.js","sourceRoot":"","sources":["../../src/lib/blob.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blob.js","sourceRoot":"","sources":["../../src/lib/blob.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/client.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ClientImpl = exports.createNativeClient = exports.getDefaultLibraryFilename = void 0;
|
|
13
4
|
const attachment_1 = require("./attachment");
|
|
@@ -29,38 +20,30 @@ class ClientImpl extends impl_1.AbstractClient {
|
|
|
29
20
|
this.dispatcher = this.master.getDispatcherSync();
|
|
30
21
|
this.util = this.master.getUtilInterfaceSync();
|
|
31
22
|
}
|
|
32
|
-
statusAction(action) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
});
|
|
23
|
+
async statusAction(action) {
|
|
24
|
+
const status = this.master.getStatusSync();
|
|
25
|
+
try {
|
|
26
|
+
return await action(status);
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
status.disposeSync();
|
|
30
|
+
}
|
|
42
31
|
}
|
|
43
32
|
/** Connects to a database. */
|
|
44
|
-
internalConnect(uri, options) {
|
|
45
|
-
return
|
|
46
|
-
return yield attachment_1.AttachmentImpl.connect(this, uri, options);
|
|
47
|
-
});
|
|
33
|
+
async internalConnect(uri, options) {
|
|
34
|
+
return await attachment_1.AttachmentImpl.connect(this, uri, options);
|
|
48
35
|
}
|
|
49
36
|
/** Creates a database. */
|
|
50
|
-
internalCreateDatabase(uri, options) {
|
|
51
|
-
return
|
|
52
|
-
return yield attachment_1.AttachmentImpl.createDatabase(this, uri, options);
|
|
53
|
-
});
|
|
37
|
+
async internalCreateDatabase(uri, options) {
|
|
38
|
+
return await attachment_1.AttachmentImpl.createDatabase(this, uri, options);
|
|
54
39
|
}
|
|
55
40
|
/** Disposes this client's resources. */
|
|
56
|
-
internalDispose() {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
this.master = undefined;
|
|
63
|
-
});
|
|
41
|
+
async internalDispose() {
|
|
42
|
+
this.dispatcher.releaseSync();
|
|
43
|
+
fb.disposeMaster(this.master);
|
|
44
|
+
this.util = undefined;
|
|
45
|
+
this.dispatcher = undefined;
|
|
46
|
+
this.master = undefined;
|
|
64
47
|
}
|
|
65
48
|
}
|
|
66
49
|
exports.ClientImpl = ClientImpl;
|
package/dist/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/lib/client.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAQ9C,6DAAoE;AAEpE,+CAA+C;AAG/C,kEAAkE;AAClE,qEAAqE;AAA5D,qIAAA,yBAAyB,OAAA;AAElC,qDAAqD;AACrD,SAAgB,kBAAkB,CAAC,OAAe;IACjD,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAFD,gDAEC;AAGD,6BAA6B;AAC7B,MAAa,UAAW,SAAQ,qBAAc;IAK7C,YAAY,OAAe;QAC1B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,YAAY,CAAI,MAAyC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAO,CAAC,aAAa,EAAG,CAAC;QAC7C,IAAI;YACH,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;SAC5B;gBACO;YACP,MAAM,CAAC,WAAW,EAAE,CAAC;SACrB;IACF,CAAC;IAED,8BAA8B;IACpB,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,OAAwB;QACpE,OAAO,MAAM,2BAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,0BAA0B;IAChB,KAAK,CAAC,sBAAsB,CAAC,GAAW,EAAE,OAA+B;QAClF,OAAO,MAAM,2BAAc,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,wCAAwC;IAC9B,KAAK,CAAC,eAAe;QAC9B,IAAI,CAAC,UAAW,CAAC,WAAW,EAAE,CAAC;QAC/B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;QAE/B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACzB,CAAC;CACD;AAzCD,gCAyCC"}
|
package/dist/lib/events.js
CHANGED
|
@@ -1,36 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.EventsImpl = void 0;
|
|
13
4
|
const impl_1 = require("node-firebird-driver/dist/lib/impl");
|
|
14
5
|
const fb = require("node-firebird-native-api");
|
|
15
6
|
/** Events implementation. */
|
|
16
7
|
class EventsImpl extends impl_1.AbstractEvents {
|
|
17
|
-
static queue(attachment, names, callBack) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return events;
|
|
23
|
-
});
|
|
8
|
+
static async queue(attachment, names, callBack) {
|
|
9
|
+
const events = new EventsImpl(attachment);
|
|
10
|
+
const { client } = attachment;
|
|
11
|
+
events.eventCallback = await fb.queueEvent(client.master, attachment.attachmentHandle, names, callBack);
|
|
12
|
+
return events;
|
|
24
13
|
}
|
|
25
14
|
/** Disposes this events' resources. */
|
|
26
|
-
internalCancel() {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
});
|
|
15
|
+
async internalCancel() {
|
|
16
|
+
if (this.eventCallback) {
|
|
17
|
+
const { eventCallback } = this;
|
|
18
|
+
this.eventCallback = undefined;
|
|
19
|
+
await fb.cancelEvent(eventCallback);
|
|
20
|
+
}
|
|
34
21
|
}
|
|
35
22
|
}
|
|
36
23
|
exports.EventsImpl = EventsImpl;
|
package/dist/lib/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":";;;AAEA,6DAAoE;AAEpE,+CAA+C;AAG/C,6BAA6B;AAC7B,MAAa,UAAW,SAAQ,qBAAc;IAM7C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAA0B,EAAE,KAAe,EAAE,QAAyD;QAExH,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAE9B,MAAM,CAAC,aAAa,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAO,EAAE,UAAU,CAAC,gBAAiB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAE1G,OAAO,MAAM,CAAC;IACf,CAAC;IAED,uCAAuC;IAC7B,KAAK,CAAC,cAAc;QAC7B,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,SAAU,CAAC;YAChC,MAAM,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;SACpC;IACF,CAAC;CACD;AAxBD,gCAwBC"}
|
package/dist/lib/fb-util.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/dist/lib/fb-util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fb-util.js","sourceRoot":"","sources":["../../src/lib/fb-util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fb-util.js","sourceRoot":"","sources":["../../src/lib/fb-util.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAyE;AAAhE,4GAAA,kBAAkB,OAAA;AAAE,mHAAA,yBAAyB,OAAA;AAEtD,uDAAqC"}
|
package/dist/lib/resultset.js
CHANGED
|
@@ -1,80 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.ResultSetImpl = void 0;
|
|
13
4
|
const impl_1 = require("node-firebird-driver/dist/lib/impl");
|
|
14
5
|
const fb = require("node-firebird-native-api");
|
|
15
6
|
/** ResultSet implementation. */
|
|
16
7
|
class ResultSetImpl extends impl_1.AbstractResultSet {
|
|
17
|
-
static open(statement, transaction, parameters, options) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return resultSet;
|
|
25
|
-
}));
|
|
8
|
+
static async open(statement, transaction, parameters, options) {
|
|
9
|
+
const resultSet = new ResultSetImpl(statement, transaction);
|
|
10
|
+
return await statement.attachment.client.statusAction(async (status) => {
|
|
11
|
+
//// FIXME: options
|
|
12
|
+
await statement.dataWriter(statement.attachment, transaction, statement.inBuffer, parameters);
|
|
13
|
+
resultSet.resultSetHandle = await statement.statementHandle.openCursorAsync(status, transaction.transactionHandle, statement.inMetadata, statement.inBuffer, statement.outMetadata, 0);
|
|
14
|
+
return resultSet;
|
|
26
15
|
});
|
|
27
16
|
}
|
|
28
17
|
/** Closes this result set. */
|
|
29
|
-
internalClose() {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.resultSetHandle = undefined;
|
|
34
|
-
}));
|
|
18
|
+
async internalClose() {
|
|
19
|
+
await this.statement.attachment.client.statusAction(async (status) => {
|
|
20
|
+
await this.resultSetHandle.closeAsync(status);
|
|
21
|
+
this.resultSetHandle = undefined;
|
|
35
22
|
});
|
|
36
23
|
}
|
|
37
24
|
/** Fetchs data from this result set. */
|
|
38
|
-
internalFetch(options) {
|
|
39
|
-
return
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
25
|
+
async internalFetch(options) {
|
|
26
|
+
return await this.statement.attachment.client.statusAction(async (status) => {
|
|
27
|
+
if (this.delayedError) {
|
|
28
|
+
const error = this.delayedError;
|
|
29
|
+
this.delayedError = undefined;
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
const rows = [];
|
|
33
|
+
const buffers = [this.statement.outBuffer, new Uint8Array(this.statement.outMetadata.getMessageLengthSync(status))];
|
|
34
|
+
let buffer = 0;
|
|
35
|
+
let nextFetchPromise = this.resultSetHandle.fetchNextAsync(status, buffers[buffer]);
|
|
36
|
+
while (true) {
|
|
37
|
+
let nextFetch;
|
|
38
|
+
try {
|
|
39
|
+
nextFetch = await nextFetchPromise;
|
|
45
40
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
let nextFetchPromise = this.resultSetHandle.fetchNextAsync(status, buffers[buffer]);
|
|
50
|
-
while (true) {
|
|
51
|
-
let nextFetch;
|
|
52
|
-
try {
|
|
53
|
-
nextFetch = yield nextFetchPromise;
|
|
54
|
-
}
|
|
55
|
-
catch (e) {
|
|
56
|
-
if (rows.length == 0)
|
|
57
|
-
throw e;
|
|
58
|
-
else {
|
|
59
|
-
this.delayedError = e;
|
|
60
|
-
return { finished: false, rows };
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (nextFetch == fb.Status.RESULT_OK) {
|
|
64
|
-
const buffer1 = buffer;
|
|
65
|
-
buffer = ++buffer % 2;
|
|
66
|
-
const finish = options && options.fetchSize && rows.length + 1 >= options.fetchSize;
|
|
67
|
-
if (!finish)
|
|
68
|
-
nextFetchPromise = this.resultSetHandle.fetchNextAsync(status, buffers[buffer]);
|
|
69
|
-
rows.push(yield this.statement.dataReader(this.statement.attachment, this.transaction, buffers[buffer1]));
|
|
70
|
-
if (finish)
|
|
71
|
-
return { finished: false, rows };
|
|
72
|
-
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
if (rows.length == 0)
|
|
43
|
+
throw e;
|
|
73
44
|
else {
|
|
74
|
-
|
|
45
|
+
this.delayedError = e;
|
|
46
|
+
return { finished: false, rows };
|
|
75
47
|
}
|
|
76
48
|
}
|
|
77
|
-
|
|
49
|
+
if (nextFetch == fb.Status.RESULT_OK) {
|
|
50
|
+
const buffer1 = buffer;
|
|
51
|
+
buffer = ++buffer % 2;
|
|
52
|
+
const finish = options && options.fetchSize && rows.length + 1 >= options.fetchSize;
|
|
53
|
+
if (!finish)
|
|
54
|
+
nextFetchPromise = this.resultSetHandle.fetchNextAsync(status, buffers[buffer]);
|
|
55
|
+
rows.push(await this.statement.dataReader(this.statement.attachment, this.transaction, buffers[buffer1]));
|
|
56
|
+
if (finish)
|
|
57
|
+
return { finished: false, rows };
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return { finished: true, rows };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
78
63
|
});
|
|
79
64
|
}
|
|
80
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resultset.js","sourceRoot":"","sources":["../../src/lib/resultset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resultset.js","sourceRoot":"","sources":["../../src/lib/resultset.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/statement.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.StatementImpl = void 0;
|
|
13
4
|
const resultset_1 = require("./resultset");
|
|
@@ -17,102 +8,88 @@ const fb = require("node-firebird-native-api");
|
|
|
17
8
|
const util_1 = require("util");
|
|
18
9
|
/** Statement implementation. */
|
|
19
10
|
class StatementImpl extends impl_1.AbstractStatement {
|
|
20
|
-
static prepare(attachment, transaction, sqlStmt, options) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
statement.dataWriter = (0, fb_util_1.createDataWriter)((0, fb_util_1.createDescriptors)(status, statement.inMetadata));
|
|
32
|
-
}
|
|
33
|
-
if (statement.outMetadata) {
|
|
34
|
-
statement.outBuffer = new Uint8Array(statement.outMetadata.getMessageLengthSync(status));
|
|
35
|
-
statement.dataReader = (0, fb_util_1.createDataReader)((0, fb_util_1.createDescriptors)(status, statement.outMetadata));
|
|
36
|
-
}
|
|
37
|
-
return statement;
|
|
38
|
-
}));
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
/** Disposes this statement's resources. */
|
|
42
|
-
internalDispose() {
|
|
43
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
if (this.outMetadata) {
|
|
45
|
-
this.outMetadata.releaseSync();
|
|
46
|
-
this.outMetadata = undefined;
|
|
11
|
+
static async prepare(attachment, transaction, sqlStmt, options) {
|
|
12
|
+
const statement = new StatementImpl(attachment);
|
|
13
|
+
return await attachment.client.statusAction(async (status) => {
|
|
14
|
+
//// FIXME: options/flags, dialect
|
|
15
|
+
statement.statementHandle = await attachment.attachmentHandle.prepareAsync(status, transaction?.transactionHandle, 0, sqlStmt, 3, fb.Statement.PREPARE_PREFETCH_ALL);
|
|
16
|
+
statement.hasResultSet = (statement.statementHandle.getFlagsSync(status) & fb.Statement.FLAG_HAS_CURSOR) != 0;
|
|
17
|
+
statement.inMetadata = (0, fb_util_1.fixMetadata)(status, await statement.statementHandle.getInputMetadataAsync(status));
|
|
18
|
+
statement.outMetadata = (0, fb_util_1.fixMetadata)(status, await statement.statementHandle.getOutputMetadataAsync(status));
|
|
19
|
+
if (statement.inMetadata) {
|
|
20
|
+
statement.inBuffer = new Uint8Array(statement.inMetadata.getMessageLengthSync(status));
|
|
21
|
+
statement.dataWriter = (0, fb_util_1.createDataWriter)((0, fb_util_1.createDescriptors)(status, statement.inMetadata));
|
|
47
22
|
}
|
|
48
|
-
if (
|
|
49
|
-
|
|
50
|
-
|
|
23
|
+
if (statement.outMetadata) {
|
|
24
|
+
statement.outBuffer = new Uint8Array(statement.outMetadata.getMessageLengthSync(status));
|
|
25
|
+
statement.dataReader = (0, fb_util_1.createDataReader)((0, fb_util_1.createDescriptors)(status, statement.outMetadata));
|
|
51
26
|
}
|
|
52
|
-
|
|
53
|
-
this.statementHandle = undefined;
|
|
27
|
+
return statement;
|
|
54
28
|
});
|
|
55
29
|
}
|
|
30
|
+
/** Disposes this statement's resources. */
|
|
31
|
+
async internalDispose() {
|
|
32
|
+
if (this.outMetadata) {
|
|
33
|
+
this.outMetadata.releaseSync();
|
|
34
|
+
this.outMetadata = undefined;
|
|
35
|
+
}
|
|
36
|
+
if (this.inMetadata) {
|
|
37
|
+
this.inMetadata.releaseSync();
|
|
38
|
+
this.inMetadata = undefined;
|
|
39
|
+
}
|
|
40
|
+
await this.attachment.client.statusAction(status => this.statementHandle.freeAsync(status));
|
|
41
|
+
this.statementHandle = undefined;
|
|
42
|
+
}
|
|
56
43
|
/** Executes a prepared statement that uses the SET TRANSACTION command. Returns the new transaction. */
|
|
57
|
-
internalExecuteTransaction(transaction) {
|
|
58
|
-
|
|
59
|
-
throw new Error('Uninplemented method: executeTransaction.');
|
|
60
|
-
});
|
|
44
|
+
async internalExecuteTransaction(transaction) {
|
|
45
|
+
throw new Error('Uninplemented method: executeTransaction.');
|
|
61
46
|
}
|
|
62
47
|
/** Executes a prepared statement that has no result set. */
|
|
63
|
-
internalExecute(transaction, parameters, options) {
|
|
64
|
-
return
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return this.outMetadata ? yield this.dataReader(this.attachment, transaction, this.outBuffer) : [];
|
|
72
|
-
}));
|
|
48
|
+
async internalExecute(transaction, parameters, options) {
|
|
49
|
+
return await this.attachment.client.statusAction(async (status) => {
|
|
50
|
+
await this.dataWriter(this.attachment, transaction, this.inBuffer, parameters);
|
|
51
|
+
const newTransaction = await this.statementHandle.executeAsync(status, transaction?.transactionHandle, this.inMetadata, this.inBuffer, this.outMetadata, this.outBuffer);
|
|
52
|
+
if (newTransaction && transaction?.transactionHandle != newTransaction) {
|
|
53
|
+
//// FIXME: newTransaction.releaseSync();
|
|
54
|
+
}
|
|
55
|
+
return this.outMetadata ? await this.dataReader(this.attachment, transaction, this.outBuffer) : [];
|
|
73
56
|
});
|
|
74
57
|
}
|
|
75
58
|
/** Executes a prepared statement that has result set. */
|
|
76
|
-
internalExecuteQuery(transaction, parameters, options) {
|
|
77
|
-
return
|
|
78
|
-
return yield resultset_1.ResultSetImpl.open(this, transaction, parameters, options);
|
|
79
|
-
});
|
|
59
|
+
async internalExecuteQuery(transaction, parameters, options) {
|
|
60
|
+
return await resultset_1.ResultSetImpl.open(this, transaction, parameters, options);
|
|
80
61
|
}
|
|
81
|
-
setCursorName(cursorName) {
|
|
82
|
-
return
|
|
83
|
-
return yield this.attachment.client.statusAction((status) => __awaiter(this, void 0, void 0, function* () { return yield this.statementHandle.setCursorNameAsync(status, cursorName); }));
|
|
84
|
-
});
|
|
62
|
+
async setCursorName(cursorName) {
|
|
63
|
+
return await this.attachment.client.statusAction(async (status) => await this.statementHandle.setCursorNameAsync(status, cursorName));
|
|
85
64
|
}
|
|
86
|
-
getExecPathText() {
|
|
87
|
-
return
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
}));
|
|
65
|
+
async getExecPathText() {
|
|
66
|
+
return await this.attachment.client.statusAction(async (status) => {
|
|
67
|
+
const infoReq = new Uint8Array([impl_1.statementInfo.sqlExecPathBlrText]);
|
|
68
|
+
const infoRet = new Uint8Array(65535);
|
|
69
|
+
await this.statementHandle.getInfoAsync(status, infoReq.byteLength, infoReq, infoRet.byteLength, infoRet);
|
|
70
|
+
if (infoRet[0] == impl_1.commonInfo.end)
|
|
71
|
+
return undefined;
|
|
72
|
+
else {
|
|
73
|
+
if (infoRet[0] != impl_1.statementInfo.sqlExecPathBlrText)
|
|
74
|
+
throw new Error('Error retrieving statement execution path.');
|
|
75
|
+
const size = (0, impl_1.getPortableInteger)(infoRet.subarray(1), 2);
|
|
76
|
+
return new util_1.TextDecoder().decode(infoRet.subarray(3, 3 + size));
|
|
77
|
+
}
|
|
101
78
|
});
|
|
102
79
|
}
|
|
103
80
|
get columnLabels() {
|
|
104
|
-
const asyncFunc = () =>
|
|
81
|
+
const asyncFunc = async () => {
|
|
105
82
|
if (!this.outMetadata)
|
|
106
83
|
return [];
|
|
107
|
-
return
|
|
84
|
+
return await this.attachment.client.statusAction(async (status) => {
|
|
108
85
|
const metaData = this.outMetadata;
|
|
109
86
|
const count = metaData.getCountSync(status);
|
|
110
87
|
const array = [];
|
|
111
88
|
for (let i = 0; i < count; ++i)
|
|
112
89
|
array.push(metaData.getAliasSync(status, i));
|
|
113
90
|
return array;
|
|
114
|
-
})
|
|
115
|
-
}
|
|
91
|
+
});
|
|
92
|
+
};
|
|
116
93
|
return asyncFunc();
|
|
117
94
|
}
|
|
118
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statement.js","sourceRoot":"","sources":["../../src/lib/statement.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"statement.js","sourceRoot":"","sources":["../../src/lib/statement.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/transaction.js
CHANGED
|
@@ -1,54 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.TransactionImpl = void 0;
|
|
13
4
|
const fb_util_1 = require("./fb-util");
|
|
14
5
|
const impl_1 = require("node-firebird-driver/dist/lib/impl");
|
|
15
6
|
/** Transaction implementation. */
|
|
16
7
|
class TransactionImpl extends impl_1.AbstractTransaction {
|
|
17
|
-
static start(attachment, options) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return transaction;
|
|
24
|
-
}));
|
|
8
|
+
static async start(attachment, options) {
|
|
9
|
+
const transaction = new TransactionImpl(attachment);
|
|
10
|
+
return await attachment.client.statusAction(async (status) => {
|
|
11
|
+
const tpb = (0, fb_util_1.createTpb)(options);
|
|
12
|
+
transaction.transactionHandle = await attachment.attachmentHandle.startTransactionAsync(status, tpb.length, tpb);
|
|
13
|
+
return transaction;
|
|
25
14
|
});
|
|
26
15
|
}
|
|
27
16
|
/** Commits and release this transaction object. */
|
|
28
|
-
internalCommit() {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
this.transactionHandle = undefined;
|
|
32
|
-
});
|
|
17
|
+
async internalCommit() {
|
|
18
|
+
await this.attachment.client.statusAction(status => this.transactionHandle.commitAsync(status));
|
|
19
|
+
this.transactionHandle = undefined;
|
|
33
20
|
}
|
|
34
21
|
/** Commits and maintains this transaction object for subsequent work. */
|
|
35
|
-
internalCommitRetaining() {
|
|
36
|
-
return
|
|
37
|
-
return yield this.attachment.client.statusAction(status => this.transactionHandle.commitRetainingAsync(status));
|
|
38
|
-
});
|
|
22
|
+
async internalCommitRetaining() {
|
|
23
|
+
return await this.attachment.client.statusAction(status => this.transactionHandle.commitRetainingAsync(status));
|
|
39
24
|
}
|
|
40
25
|
/** Rollbacks and release this transaction object. */
|
|
41
|
-
internalRollback() {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
this.transactionHandle = undefined;
|
|
45
|
-
});
|
|
26
|
+
async internalRollback() {
|
|
27
|
+
await this.attachment.client.statusAction(status => this.transactionHandle.rollbackAsync(status));
|
|
28
|
+
this.transactionHandle = undefined;
|
|
46
29
|
}
|
|
47
30
|
/** Rollbacks and maintains this transaction object for subsequent work. */
|
|
48
|
-
internalRollbackRetaining() {
|
|
49
|
-
return
|
|
50
|
-
return yield this.attachment.client.statusAction(status => this.transactionHandle.rollbackRetainingAsync(status));
|
|
51
|
-
});
|
|
31
|
+
async internalRollbackRetaining() {
|
|
32
|
+
return await this.attachment.client.statusAction(status => this.transactionHandle.rollbackRetainingAsync(status));
|
|
52
33
|
}
|
|
53
34
|
}
|
|
54
35
|
exports.TransactionImpl = TransactionImpl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/lib/transaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/lib/transaction.ts"],"names":[],"mappings":";;;AACA,uCAAsC;AAGtC,6DAAyE;AAKzE,kCAAkC;AAClC,MAAa,eAAgB,SAAQ,0BAAmB;IAMvD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAA0B,EAAE,OAA4B;QAC1E,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;QAEpD,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;YAC1D,MAAM,GAAG,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;YAC/B,WAAW,CAAC,iBAAiB,GAAG,MAAM,UAAW,CAAC,gBAAiB,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACnH,OAAO,WAAW,CAAC;QACpB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,mDAAmD;IACzC,KAAK,CAAC,cAAc;QAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QACjG,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACpC,CAAC;IAED,yEAAyE;IAC/D,KAAK,CAAC,uBAAuB;QACtC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;IAClH,CAAC;IAED,qDAAqD;IAC3C,KAAK,CAAC,gBAAgB;QAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;QACnG,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACpC,CAAC;IAED,2EAA2E;IACjE,KAAK,CAAC,yBAAyB;QACxC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAkB,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;IACpH,CAAC;CACD;AArCD,0CAqCC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-firebird-driver-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.1",
|
|
4
4
|
"description": "Firebird Native Driver for Node.js",
|
|
5
5
|
"main": "dist/lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
]
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@types/node": "^
|
|
52
|
-
"node-firebird-driver": "^
|
|
53
|
-
"node-firebird-native-api": "^
|
|
51
|
+
"@types/node": "^18.11.15",
|
|
52
|
+
"node-firebird-driver": "^3.0.1",
|
|
53
|
+
"node-firebird-native-api": "^3.0.0"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "33c672ce105ff0cd00b5cfda910b6d750eb91749"
|
|
56
56
|
}
|
package/src/lib/attachment.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { createDpb } from './fb-util';
|
|
|
8
8
|
import {
|
|
9
9
|
Blob,
|
|
10
10
|
ConnectOptions,
|
|
11
|
+
CreateBlobOptions,
|
|
11
12
|
CreateDatabaseOptions,
|
|
12
13
|
PrepareOptions,
|
|
13
14
|
TransactionOptions
|
|
@@ -62,8 +63,8 @@ export class AttachmentImpl extends AbstractAttachment {
|
|
|
62
63
|
return await TransactionImpl.start(this, options);
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
protected async internalCreateBlob(transaction: TransactionImpl): Promise<BlobStreamImpl> {
|
|
66
|
-
return await BlobStreamImpl.create(this, transaction);
|
|
66
|
+
protected async internalCreateBlob(transaction: TransactionImpl, options?: CreateBlobOptions): Promise<BlobStreamImpl> {
|
|
67
|
+
return await BlobStreamImpl.create(this, transaction, options);
|
|
67
68
|
}
|
|
68
69
|
|
|
69
70
|
protected async internalOpenBlob(transaction: TransactionImpl, blob: Blob): Promise<BlobStreamImpl> {
|
package/src/lib/blob.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AttachmentImpl } from './attachment';
|
|
2
2
|
|
|
3
|
-
import { Blob } from 'node-firebird-driver';
|
|
4
|
-
import { AbstractBlobStream, blobInfo, getPortableInteger } from 'node-firebird-driver/dist/lib/impl';
|
|
3
|
+
import { Blob, BlobSeekWhence, CreateBlobOptions } from 'node-firebird-driver';
|
|
4
|
+
import { AbstractBlobStream, blobInfo, createBpb, getPortableInteger } from 'node-firebird-driver/dist/lib/impl';
|
|
5
5
|
|
|
6
6
|
import * as fb from 'node-firebird-native-api';
|
|
7
7
|
import { TransactionImpl } from './transaction';
|
|
@@ -17,11 +17,13 @@ export class BlobStreamImpl extends AbstractBlobStream {
|
|
|
17
17
|
|
|
18
18
|
blobHandle?: fb.Blob;
|
|
19
19
|
|
|
20
|
-
static async create(attachment: AttachmentImpl, transaction: TransactionImpl): Promise<BlobStreamImpl> {
|
|
20
|
+
static async create(attachment: AttachmentImpl, transaction: TransactionImpl, options?: CreateBlobOptions): Promise<BlobStreamImpl> {
|
|
21
21
|
return await attachment.client.statusAction(async status => {
|
|
22
22
|
const blobId = new Uint8Array(8);
|
|
23
|
+
const bpb = createBpb(options);
|
|
24
|
+
|
|
23
25
|
const blobHandle = await attachment.attachmentHandle!.createBlobAsync(
|
|
24
|
-
status, transaction.transactionHandle, blobId,
|
|
26
|
+
status, transaction.transactionHandle, blobId, bpb.length, bpb);
|
|
25
27
|
|
|
26
28
|
const blob = new Blob(attachment, blobId);
|
|
27
29
|
|
|
@@ -65,6 +67,12 @@ export class BlobStreamImpl extends AbstractBlobStream {
|
|
|
65
67
|
this.blobHandle = undefined;
|
|
66
68
|
}
|
|
67
69
|
|
|
70
|
+
protected async internalSeek(offset: number, whence?: BlobSeekWhence): Promise<number> {
|
|
71
|
+
return await this.attachment.client.statusAction(async status => {
|
|
72
|
+
return await this.blobHandle!.seekAsync(status, whence ?? BlobSeekWhence.START, offset);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
68
76
|
protected async internalRead(buffer: Buffer): Promise<number> {
|
|
69
77
|
return await this.attachment.client.statusAction(async status => {
|
|
70
78
|
const readingBytes = Math.min(buffer.length, MAX_SEGMENT_SIZE);
|