@cubejs-backend/mssql-driver 1.3.5 → 1.3.6

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.
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @copyright Cube Dev, Inc.
3
+ * @license Apache-2.0
4
+ * @fileoverview The `MSSqlDriver` and related types declaration.
5
+ */
6
+ import { config as MsSQLConfig } from 'mssql';
7
+ import { BaseDriver, DriverInterface, StreamOptions, DownloadQueryResultsOptions, TableStructure, DriverCapabilities, DownloadQueryResultsResult } from '@cubejs-backend/base-driver';
8
+ import { QueryStream } from './QueryStream';
9
+ export type MSSqlDriverConfiguration = Omit<MsSQLConfig, 'server'> & {
10
+ readOnly?: boolean;
11
+ server?: string;
12
+ };
13
+ /**
14
+ * MS SQL driver class.
15
+ */
16
+ export declare class MSSqlDriver extends BaseDriver implements DriverInterface {
17
+ private readonly connectionPool;
18
+ private readonly initialConnectPromise;
19
+ private readonly config;
20
+ /**
21
+ * Returns default concurrency value.
22
+ */
23
+ static getDefaultConcurrency(): number;
24
+ /**
25
+ * Class constructor.
26
+ */
27
+ constructor(config?: MSSqlDriverConfiguration & {
28
+ /**
29
+ * Data source name.
30
+ */
31
+ dataSource?: string;
32
+ /**
33
+ * Max pool size value for the [cube]<-->[db] pool.
34
+ */
35
+ maxPoolSize?: number;
36
+ /**
37
+ * Time to wait for a response from a connection after validation
38
+ * request before determining it as not valid. Default - 10000 ms.
39
+ */
40
+ testConnectionTimeout?: number;
41
+ server?: string;
42
+ });
43
+ /**
44
+ * Returns the configurable driver options
45
+ * Note: It returns the unprefixed option names.
46
+ * In case of using multi sources options need to be prefixed manually.
47
+ */
48
+ static driverEnvVariables(): string[];
49
+ testConnection(): Promise<void>;
50
+ /**
51
+ * Executes query in streaming mode.
52
+ *
53
+ * @param {string} query
54
+ * @param {Array} values
55
+ * @param {{ highWaterMark: number? }} options
56
+ * @return {Promise<StreamTableDataWithTypes>}
57
+ */
58
+ stream(query: string, values: unknown[], { highWaterMark }: StreamOptions): Promise<{
59
+ rowStream: QueryStream;
60
+ types: TableStructure;
61
+ release: () => Promise<void>;
62
+ }>;
63
+ /**
64
+ * @param {{
65
+ * [name: string]: {
66
+ * index: number,
67
+ * name: string,
68
+ * type: *,
69
+ * nullable: boolean,
70
+ * caseSensitive: boolean,
71
+ * identity: boolean,
72
+ * readOnly: boolean,
73
+ * length: number?,
74
+ * scale: number?,
75
+ * precision: number?
76
+ * }
77
+ * }} fields
78
+ */
79
+ private mapFields;
80
+ query(query: string, values: unknown[]): Promise<any>;
81
+ param(paramIndex: number): string;
82
+ tableColumnTypes(table: string): Promise<TableStructure>;
83
+ getTablesQuery(schemaName: string): Promise<any>;
84
+ createSchemaIfNotExists(schemaName: string): Promise<void>;
85
+ informationSchemaQuery(): string;
86
+ downloadQueryResults(query: string, values: unknown[], options: DownloadQueryResultsOptions): Promise<DownloadQueryResultsResult>;
87
+ protected fromGenericType(columnType: string): string;
88
+ protected toGenericType(columnType: string): string;
89
+ readOnly(): boolean;
90
+ wrapQueryWithLimit(query: {
91
+ query: string;
92
+ limit: number;
93
+ }): void;
94
+ capabilities(): DriverCapabilities;
95
+ }
96
+ //# sourceMappingURL=MSSqlDriver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSSqlDriver.d.ts","sourceRoot":"","sources":["../../src/MSSqlDriver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAY,EAAkB,MAAM,IAAI,WAAW,EAAE,MAAM,OAAO,CAAC;AAKnE,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAoB5C,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAgBF;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAW,YAAW,eAAe;IACpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0B;IAEhE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAElD;;OAEG;WACW,qBAAqB;IAInC;;OAEG;gBACgB,MAAM,GAAE,wBAAwB,GAAG;QAClD;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB;;;WAGG;QACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IAyCR;;;;OAIG;WACW,kBAAkB;IAWnB,cAAc;IAK3B;;;;;;;OAOG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,aAAa;;;;;IA+BtF;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,SAAS;IAsEJ,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAe5C,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI3B,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAgB9D,cAAc,CAAC,UAAU,EAAE,MAAM;IAO3B,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhE,sBAAsB,IAAI,MAAM;IAY1B,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAiB9I,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIrD,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI5C,QAAQ,IAAI,OAAO;IAInB,kBAAkB,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC;IAIzD,YAAY,IAAI,kBAAkB;CAK1C"}
@@ -0,0 +1,336 @@
1
+ "use strict";
2
+ /**
3
+ * @copyright Cube Dev, Inc.
4
+ * @license Apache-2.0
5
+ * @fileoverview The `MSSqlDriver` and related types declaration.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || function (mod) {
24
+ if (mod && mod.__esModule) return mod;
25
+ var result = {};
26
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
27
+ __setModuleDefault(result, mod);
28
+ return result;
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.MSSqlDriver = void 0;
32
+ const mssql_1 = __importStar(require("mssql"));
33
+ const shared_1 = require("@cubejs-backend/shared");
34
+ const base_driver_1 = require("@cubejs-backend/base-driver");
35
+ const QueryStream_1 = require("./QueryStream");
36
+ // ********* Value converters ***************** //
37
+ const numericTypes = [
38
+ mssql_1.default.TYPES.Int,
39
+ mssql_1.default.TYPES.BigInt,
40
+ mssql_1.default.TYPES.SmallInt,
41
+ mssql_1.default.TYPES.TinyInt,
42
+ mssql_1.default.TYPES.Decimal,
43
+ mssql_1.default.TYPES.Numeric,
44
+ mssql_1.default.TYPES.Float,
45
+ mssql_1.default.TYPES.Real,
46
+ mssql_1.default.TYPES.Money,
47
+ mssql_1.default.TYPES.SmallMoney
48
+ ];
49
+ for (const type of numericTypes) {
50
+ mssql_1.default.valueHandler.set(type, (value) => (value != null ? String(value) : value));
51
+ }
52
+ const GenericTypeToMSSql = {
53
+ boolean: 'bit',
54
+ string: 'nvarchar(max)',
55
+ text: 'nvarchar(max)',
56
+ timestamp: 'datetime2',
57
+ uuid: 'uniqueidentifier'
58
+ };
59
+ const MSSqlToGenericType = {
60
+ bit: 'boolean',
61
+ uniqueidentifier: 'uuid',
62
+ datetime2: 'timestamp'
63
+ };
64
+ /**
65
+ * MS SQL driver class.
66
+ */
67
+ class MSSqlDriver extends base_driver_1.BaseDriver {
68
+ connectionPool;
69
+ initialConnectPromise;
70
+ config;
71
+ /**
72
+ * Returns default concurrency value.
73
+ */
74
+ static getDefaultConcurrency() {
75
+ return 2;
76
+ }
77
+ /**
78
+ * Class constructor.
79
+ */
80
+ constructor(config = {}) {
81
+ super({
82
+ testConnectionTimeout: config.testConnectionTimeout,
83
+ });
84
+ const dataSource = config.dataSource ||
85
+ (0, shared_1.assertDataSource)('default');
86
+ /**
87
+ * @type {import('mssql').config}
88
+ */
89
+ this.config = {
90
+ readOnly: true,
91
+ server: (0, shared_1.getEnv)('dbHost', { dataSource }),
92
+ database: (0, shared_1.getEnv)('dbName', { dataSource }),
93
+ port: (0, shared_1.getEnv)('dbPort', { dataSource }),
94
+ user: (0, shared_1.getEnv)('dbUser', { dataSource }),
95
+ password: (0, shared_1.getEnv)('dbPass', { dataSource }),
96
+ domain: (0, shared_1.getEnv)('dbDomain', { dataSource }),
97
+ requestTimeout: (0, shared_1.getEnv)('dbQueryTimeout') * 1000,
98
+ options: {
99
+ encrypt: (0, shared_1.getEnv)('dbSsl', { dataSource }),
100
+ useUTC: false
101
+ },
102
+ pool: {
103
+ max: config.maxPoolSize ||
104
+ (0, shared_1.getEnv)('dbMaxPoolSize', { dataSource }) ||
105
+ 8,
106
+ min: 0,
107
+ idleTimeoutMillis: 30 * 1000,
108
+ acquireTimeoutMillis: 20 * 1000
109
+ },
110
+ ...config
111
+ };
112
+ const { readOnly, ...poolConfig } = this.config;
113
+ this.connectionPool = new mssql_1.ConnectionPool(poolConfig);
114
+ this.initialConnectPromise = this.connectionPool.connect();
115
+ }
116
+ /**
117
+ * Returns the configurable driver options
118
+ * Note: It returns the unprefixed option names.
119
+ * In case of using multi sources options need to be prefixed manually.
120
+ */
121
+ static driverEnvVariables() {
122
+ return [
123
+ 'CUBEJS_DB_HOST',
124
+ 'CUBEJS_DB_NAME',
125
+ 'CUBEJS_DB_PORT',
126
+ 'CUBEJS_DB_USER',
127
+ 'CUBEJS_DB_PASS',
128
+ 'CUBEJS_DB_DOMAIN',
129
+ ];
130
+ }
131
+ async testConnection() {
132
+ const conn = await this.initialConnectPromise.then((pool) => pool.request());
133
+ await conn.query('SELECT 1 as number');
134
+ }
135
+ /**
136
+ * Executes query in streaming mode.
137
+ *
138
+ * @param {string} query
139
+ * @param {Array} values
140
+ * @param {{ highWaterMark: number? }} options
141
+ * @return {Promise<StreamTableDataWithTypes>}
142
+ */
143
+ async stream(query, values, { highWaterMark }) {
144
+ const pool = await this.initialConnectPromise;
145
+ const request = pool.request();
146
+ request.stream = true;
147
+ (values || []).forEach((v, i) => {
148
+ request.input(`_${i + 1}`, v);
149
+ });
150
+ request.query(query);
151
+ const stream = new QueryStream_1.QueryStream(request, highWaterMark);
152
+ const fields = await new Promise((resolve, reject) => {
153
+ request.on('recordset', (columns) => {
154
+ resolve(this.mapFields(columns));
155
+ });
156
+ request.on('error', (err) => {
157
+ reject(err);
158
+ });
159
+ stream.on('error', (err) => {
160
+ reject(err);
161
+ });
162
+ });
163
+ return {
164
+ rowStream: stream,
165
+ types: fields,
166
+ release: async () => {
167
+ request.cancel();
168
+ },
169
+ };
170
+ }
171
+ /**
172
+ * @param {{
173
+ * [name: string]: {
174
+ * index: number,
175
+ * name: string,
176
+ * type: *,
177
+ * nullable: boolean,
178
+ * caseSensitive: boolean,
179
+ * identity: boolean,
180
+ * readOnly: boolean,
181
+ * length: number?,
182
+ * scale: number?,
183
+ * precision: number?
184
+ * }
185
+ * }} fields
186
+ */
187
+ mapFields(fields) {
188
+ return Object.keys(fields).map((field) => {
189
+ let type;
190
+ switch (fields[field].type) {
191
+ case mssql_1.default.Bit:
192
+ type = 'boolean';
193
+ break;
194
+ // integers
195
+ case mssql_1.default.Int:
196
+ case mssql_1.default.SmallInt:
197
+ case mssql_1.default.TinyInt:
198
+ case mssql_1.default.BigInt:
199
+ type = 'int';
200
+ break;
201
+ // float
202
+ case mssql_1.default.Money:
203
+ case mssql_1.default.SmallMoney:
204
+ case mssql_1.default.Numeric:
205
+ case mssql_1.default.Decimal:
206
+ type = 'decimal';
207
+ break;
208
+ // double
209
+ case mssql_1.default.Real:
210
+ case mssql_1.default.Float:
211
+ type = 'double';
212
+ break;
213
+ // strings
214
+ case mssql_1.default.Char:
215
+ case mssql_1.default.NChar:
216
+ case mssql_1.default.Text:
217
+ case mssql_1.default.NText:
218
+ case mssql_1.default.VarChar:
219
+ case mssql_1.default.NVarChar:
220
+ case mssql_1.default.Xml:
221
+ type = 'text';
222
+ break;
223
+ // date and time
224
+ case mssql_1.default.Time:
225
+ type = 'time';
226
+ break;
227
+ case mssql_1.default.Date:
228
+ type = 'timestamp';
229
+ break;
230
+ case mssql_1.default.DateTime:
231
+ case mssql_1.default.DateTime2:
232
+ case mssql_1.default.SmallDateTime:
233
+ case mssql_1.default.DateTimeOffset:
234
+ type = 'timestamp';
235
+ break;
236
+ // others
237
+ case mssql_1.default.UniqueIdentifier:
238
+ case mssql_1.default.Variant:
239
+ case mssql_1.default.Binary:
240
+ case mssql_1.default.VarBinary:
241
+ case mssql_1.default.Image:
242
+ case mssql_1.default.UDT:
243
+ case mssql_1.default.Geography:
244
+ case mssql_1.default.Geometry:
245
+ case mssql_1.default.TVP:
246
+ type = 'string';
247
+ break;
248
+ // unknown
249
+ default:
250
+ type = 'string';
251
+ break;
252
+ }
253
+ return { name: fields[field].name, type: this.toGenericType(type) };
254
+ });
255
+ }
256
+ async query(query, values) {
257
+ let cancelFn = null;
258
+ const promise = this.initialConnectPromise.then((pool) => {
259
+ const request = pool.request();
260
+ (values || []).forEach((v, i) => request.input(`_${i + 1}`, v));
261
+ // TODO time zone UTC set in driver ?
262
+ cancelFn = () => request.cancel();
263
+ return request.query(query).then(res => res.recordset);
264
+ });
265
+ promise.cancel = () => cancelFn && cancelFn();
266
+ return promise;
267
+ }
268
+ param(paramIndex) {
269
+ return `@_${paramIndex + 1}`;
270
+ }
271
+ async tableColumnTypes(table) {
272
+ const [schema, name] = table.split('.');
273
+ const columns = await this.query(`SELECT column_name as ${this.quoteIdentifier('column_name')},
274
+ table_name as ${this.quoteIdentifier('table_name')},
275
+ table_schema as ${this.quoteIdentifier('table_schema')},
276
+ data_type as ${this.quoteIdentifier('data_type')}
277
+ FROM INFORMATION_SCHEMA.COLUMNS
278
+ WHERE table_name = ${this.param(0)} AND table_schema = ${this.param(1)}`, [name, schema]);
279
+ return columns.map(c => ({ name: c.column_name, type: this.toGenericType(c.data_type) }));
280
+ }
281
+ getTablesQuery(schemaName) {
282
+ return this.query(`SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = ${this.param(0)}`, [schemaName]);
283
+ }
284
+ async createSchemaIfNotExists(schemaName) {
285
+ return this.query(`SELECT schema_name FROM INFORMATION_SCHEMA.SCHEMATA WHERE schema_name = ${this.param(0)}`, [schemaName]).then((schemas) => {
286
+ if (schemas.length === 0) {
287
+ return this.query(`CREATE SCHEMA ${schemaName}`, []);
288
+ }
289
+ return null;
290
+ });
291
+ }
292
+ informationSchemaQuery() {
293
+ // fix The multipart identifier "columns.data_type" could not be bound
294
+ return `
295
+ SELECT column_name as ${this.quoteIdentifier('column_name')},
296
+ table_name as ${this.quoteIdentifier('table_name')},
297
+ table_schema as ${this.quoteIdentifier('table_schema')},
298
+ data_type as ${this.quoteIdentifier('data_type')}
299
+ FROM INFORMATION_SCHEMA.COLUMNS
300
+ WHERE table_schema NOT IN ('information_schema', 'sys')
301
+ `;
302
+ }
303
+ async downloadQueryResults(query, values, options) {
304
+ if (options?.streamImport) {
305
+ return this.stream(query, values, options);
306
+ }
307
+ const result = await this.query(query, values);
308
+ const types = Object.keys(result.columns).map((key) => ({
309
+ name: result.columns[key].name,
310
+ type: this.toGenericType(result.columns[key].type.declaration),
311
+ }));
312
+ return {
313
+ rows: result,
314
+ types,
315
+ };
316
+ }
317
+ fromGenericType(columnType) {
318
+ return GenericTypeToMSSql[columnType] || super.fromGenericType(columnType);
319
+ }
320
+ toGenericType(columnType) {
321
+ return MSSqlToGenericType[columnType] || super.toGenericType(columnType);
322
+ }
323
+ readOnly() {
324
+ return !!this.config.readOnly;
325
+ }
326
+ wrapQueryWithLimit(query) {
327
+ query.query = `SELECT TOP ${query.limit} * FROM (${query.query}) AS t`;
328
+ }
329
+ capabilities() {
330
+ return {
331
+ incrementalSchemaLoading: true,
332
+ };
333
+ }
334
+ }
335
+ exports.MSSqlDriver = MSSqlDriver;
336
+ //# sourceMappingURL=MSSqlDriver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MSSqlDriver.js","sourceRoot":"","sources":["../../src/MSSqlDriver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /// <reference types="node" />
2
+ import { Readable } from 'stream';
3
+ import sql from 'mssql';
4
+ /**
5
+ * MS-SQL query stream class.
6
+ */
7
+ export declare class QueryStream extends Readable {
8
+ private request;
9
+ private toRead;
10
+ /**
11
+ * @constructor
12
+ */
13
+ constructor(request: sql.Request, highWaterMark: number);
14
+ /**
15
+ * @override
16
+ */
17
+ _read(toRead: number): void;
18
+ private transformRow;
19
+ /**
20
+ * @override
21
+ */
22
+ _destroy(error: any, callback: CallableFunction): void;
23
+ }
24
+ //# sourceMappingURL=QueryStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryStream.d.ts","sourceRoot":"","sources":["../../src/QueryStream.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,GAAG,MAAM,OAAO,CAAC;AAKxB;;GAEG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,MAAM,CAAa;IAE3B;;OAEG;gBACgB,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM;IAsB9D;;OAEG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM;IAK3B,OAAO,CAAC,YAAY;IAQpB;;OAEG;IACI,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB;CAKvD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryStream = void 0;
4
+ const stream_1 = require("stream");
5
+ const shared_1 = require("@cubejs-backend/shared");
6
+ /**
7
+ * MS-SQL query stream class.
8
+ */
9
+ class QueryStream extends stream_1.Readable {
10
+ request;
11
+ toRead = 0;
12
+ /**
13
+ * @constructor
14
+ */
15
+ constructor(request, highWaterMark) {
16
+ super({
17
+ objectMode: true,
18
+ highWaterMark: highWaterMark || (0, shared_1.getEnv)('dbQueryStreamHighWaterMark'),
19
+ });
20
+ this.request = request;
21
+ this.request.on('row', row => {
22
+ this.transformRow(row);
23
+ const canAdd = this.push(row);
24
+ if (this.toRead-- <= 0 || !canAdd) {
25
+ this.request?.pause();
26
+ }
27
+ });
28
+ this.request.on('done', () => {
29
+ this.push(null);
30
+ });
31
+ this.request.on('error', (err) => {
32
+ this.destroy(err);
33
+ });
34
+ }
35
+ /**
36
+ * @override
37
+ */
38
+ _read(toRead) {
39
+ this.toRead += toRead;
40
+ this.request?.resume();
41
+ }
42
+ transformRow(row) {
43
+ for (const [key, value] of Object.entries(row)) {
44
+ if (value instanceof Date) {
45
+ row[key] = value.toJSON();
46
+ }
47
+ }
48
+ }
49
+ /**
50
+ * @override
51
+ */
52
+ _destroy(error, callback) {
53
+ this.request?.cancel();
54
+ this.request = null;
55
+ callback(error);
56
+ }
57
+ }
58
+ exports.QueryStream = QueryStream;
59
+ //# sourceMappingURL=QueryStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryStream.js","sourceRoot":"","sources":["../../src/QueryStream.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAElC,mDAEgC;AAEhC;;GAEG;AACH,MAAa,WAAY,SAAQ,iBAAQ;IAC/B,OAAO,CAAqB;IAE5B,MAAM,GAAW,CAAC,CAAC;IAE3B;;OAEG;IACH,YAAmB,OAAoB,EAAE,aAAqB;QAC5D,KAAK,CAAC;YACJ,UAAU,EAAE,IAAI;YAChB,aAAa,EACX,aAAa,IAAI,IAAA,eAAM,EAAC,4BAA4B,CAAC;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;YAC3B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACjC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;aACvB;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAc;QACzB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;IAEO,YAAY,CAAC,GAAwB;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC9C,IAAI,KAAK,YAAY,IAAI,EAAE;gBACzB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;aAC3B;SACF;IACH,CAAC;IAED;;OAEG;IACI,QAAQ,CAAC,KAAU,EAAE,QAA0B;QACpD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;CACF;AAtDD,kCAsDC"}
@@ -0,0 +1,4 @@
1
+ import { MSSqlDriver } from './MSSqlDriver';
2
+ export * from './MSSqlDriver';
3
+ export default MSSqlDriver;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,cAAc,eAAe,CAAC;AAE9B,eAAe,WAAW,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
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);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const MSSqlDriver_1 = require("./MSSqlDriver");
18
+ __exportStar(require("./MSSqlDriver"), exports);
19
+ exports.default = MSSqlDriver_1.MSSqlDriver;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4C;AAE5C,gDAA8B;AAE9B,kBAAe,yBAAW,CAAC"}
package/index.js ADDED
@@ -0,0 +1,11 @@
1
+ const fromExports = require('./dist/src');
2
+ const { MSSqlDriver } = require('./dist/src/MSSqlDriver');
3
+
4
+ const toExport = MSSqlDriver;
5
+
6
+ // eslint-disable-next-line no-restricted-syntax
7
+ for (const [key, module] of Object.entries(fromExports)) {
8
+ toExport[key] = module;
9
+ }
10
+
11
+ module.exports = toExport;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@cubejs-backend/mssql-driver",
3
3
  "description": "Cube.js MS SQL database driver",
4
4
  "author": "Cube Dev, Inc.",
5
- "version": "1.3.5",
5
+ "version": "1.3.6",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "https://github.com/cube-js/cube.git",
@@ -11,21 +11,37 @@
11
11
  "engines": {
12
12
  "node": "^14.0.0 || ^16.0.0 || >=17.0.0"
13
13
  },
14
- "main": "driver/MSSqlDriver.js",
14
+ "files": [
15
+ "dist/src",
16
+ "index.js"
17
+ ],
18
+ "main": "index.js",
19
+ "typings": "dist/src/index.d.ts",
20
+ "scripts": {
21
+ "build": "rm -rf dist && npm run tsc",
22
+ "tsc": "tsc",
23
+ "watch": "tsc -w",
24
+ "lint": "eslint src/* --ext .ts,.js",
25
+ "lint:fix": "eslint --fix src/* --ext .ts,.js"
26
+ },
15
27
  "dependencies": {
16
- "@cubejs-backend/base-driver": "1.3.5",
17
- "mssql": "^10.0.2"
28
+ "@cubejs-backend/base-driver": "1.3.6",
29
+ "@cubejs-backend/shared": "1.3.6",
30
+ "mssql": "^11.0.1"
18
31
  },
19
32
  "devDependencies": {
20
- "@types/mssql": "^9.1.5",
33
+ "@types/mssql": "^9.1.7",
21
34
  "@types/node": "^20"
22
35
  },
23
36
  "jest": {
24
37
  "testEnvironment": "node"
25
38
  },
39
+ "eslintConfig": {
40
+ "extends": "../cubejs-linter"
41
+ },
26
42
  "license": "Apache-2.0",
27
43
  "publishConfig": {
28
44
  "access": "public"
29
45
  },
30
- "gitHead": "2e8126d1778666aff6b357df1c1f1072f2855aec"
46
+ "gitHead": "1701f21fd2bce4d6c70b05992cc64d4b4ab596db"
31
47
  }