diff --git a/types/mssql/index.d.ts b/types/mssql/index.d.ts
index 390f487444..63cbd69dc6 100644
--- a/types/mssql/index.d.ts
+++ b/types/mssql/index.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for mssql 4.0.1
+// Type definitions for mssql 4.0.2
// Project: https://www.npmjs.com/package/mssql
// Definitions by: COLSA Corporation , Ben Farr , Vitor Buzinaro , Matt Richardson , Jørgen Elgaard Larsen , Peter Keuter
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
@@ -57,6 +57,7 @@ export declare var TVP: ISqlTypeFactoryWithTvpType;
export declare var UDT: ISqlTypeFactoryWithNoParams;
export declare var Geography: ISqlTypeFactoryWithNoParams;
export declare var Geometry: ISqlTypeFactoryWithNoParams;
+export declare var Variant: ISqlTypeFactoryWithNoParams;
export declare var TYPES: {
VarChar: ISqlTypeFactoryWithLength;
@@ -91,6 +92,7 @@ export declare var TYPES: {
UDT: ISqlTypeFactoryWithNoParams;
Geography: ISqlTypeFactoryWithNoParams;
Geometry: ISqlTypeFactoryWithNoParams;
+ Variant: ISqlTypeFactoryWithNoParams;
};
export declare var MAX: number;
@@ -109,7 +111,7 @@ export interface IColumnMetadata {
index: number;
name: string;
length: number;
- type: ISqlType;
+ type: (() => ISqlType) | ISqlType;
udt?: any;
}
}
@@ -166,6 +168,7 @@ export interface config {
connectionTimeout?: number;
requestTimeout?: number;
stream?: boolean;
+ parseJSON?: boolean;
options?: IOptions;
pool?: IPool;
}
@@ -191,25 +194,38 @@ export declare class ConnectionError implements Error {
public code: string;
}
-declare class columns {
- public add(name: string, type: any, options: any): void;
+export interface IColumnOptions {
+ nullable?: boolean;
+ primary?: boolean;
}
+export interface IColumn extends ISqlType {
+ name: string;
+ nullable: boolean;
+ primary: boolean;
+}
+
+declare class columns {
+ public add(name: string, type: (() => ISqlType) | ISqlType, options?: IColumnOptions): number;
+}
+
+type IRow = (string | number | boolean | Date | Buffer)[];
+
declare class rows {
- public add(...row: any[]): void;
+ public add(...row: IRow): number;
}
export declare class Table {
public create: boolean;
public columns: columns;
public rows: rows;
- public constructor(tableName: string);
+ public constructor(tableName?: string);
}
interface IRequestParameters {
[name: string]: {
name: string;
- type: any;
+ type: (() => ISqlType) | ISqlType;
io: number;
value: any;
length: number;
@@ -233,8 +249,8 @@ export declare class Request extends events.EventEmitter {
public execute(procedure: string): Promise>;
public execute(procedure: string, callback: (err?: any, recordsets?: IProcedureResult, returnValue?: any) => void): void;
public input(name: string, value: any): Request;
- public input(name: string, type: any, value: any): Request;
- public output(name: string, type: any, value?: any): Request;
+ public input(name: string, type: (() => ISqlType) | ISqlType, value: any): Request;
+ public output(name: string, type: (() => ISqlType) | ISqlType, value?: any): Request;
public pipe(stream: NodeJS.WritableStream): NodeJS.WritableStream;
public query(command: string): Promise>;
public query(command: string): Promise>;
@@ -280,8 +296,8 @@ export declare class PreparedStatement extends events.EventEmitter {
public parameters: IRequestParameters;
public stream: any;
public constructor(connection?: ConnectionPool);
- public input(name: string, type: ISqlType): PreparedStatement;
- public output(name: string, type: ISqlType): PreparedStatement;
+ public input(name: string, type: (() => ISqlType) | ISqlType): PreparedStatement;
+ public output(name: string, type: (() => ISqlType) | ISqlType): PreparedStatement;
public prepare(statement?: string): Promise;
public prepare(statement?: string, callback?: (err?: Error) => void): PreparedStatement;
public execute(values: Object): Promise;
diff --git a/types/mssql/mssql-tests.ts b/types/mssql/mssql-tests.ts
index c5e4535e44..854b906f98 100644
--- a/types/mssql/mssql-tests.ts
+++ b/types/mssql/mssql-tests.ts
@@ -1,6 +1,6 @@
-import sql = require('mssql');
+import * as sql from 'mssql';
-interface Entity{
+interface Entity {
value: number;
}
@@ -26,15 +26,14 @@ var connection: sql.ConnectionPool = new sql.ConnectionPool(config, function (er
console.warn("Issue with connecting to SQL Server!");
}
else {
- connection.query`SELECT ${1} as value`.then(res => { });
+ connection.query`SELECT ${1} as value`.then(res => { });
var requestQuery = new sql.Request(connection);
var getArticlesQuery = "SELECT * FROM TABLE";
requestQuery.query(getArticlesQuery, function (err, result) {
if (err) {
- console.error('Error happened calling Query: ' + err.name + " " + err.message);
-
+ console.error(`Error happened calling Query: ${err.name} ${err.message}`);
}
// checking to see if the articles returned as at least one.
else if (result.recordset.length > 0) {
@@ -45,7 +44,7 @@ var connection: sql.ConnectionPool = new sql.ConnectionPool(config, function (er
requestQuery.query(getArticlesQuery, function (err, result) {
if (err) {
- console.error('Error happened calling Query: ' + err.name + " " + err.message);
+ console.error(`Error happened calling Query: ${err.name} ${err.message}`);
}
// checking to see if the articles returned as at least one.
@@ -63,7 +62,7 @@ var connection: sql.ConnectionPool = new sql.ConnectionPool(config, function (er
requestStoredProcedure.execute('StoredProcedureName', function (err, recordsets, returnValue) {
if (err != null) {
- console.error('Error happened calling Query: ' + err.name + " " + err.message);
+ console.error(`Error happened calling Query: ${err.name} ${err.message}`);
}
else {
console.info(returnValue);
@@ -72,7 +71,7 @@ var connection: sql.ConnectionPool = new sql.ConnectionPool(config, function (er
requestStoredProcedure.execute('StoredProcedureName', function (err, recordsets, returnValue) {
if (err != null) {
- console.error('Error happened calling Query: ' + err.name + " " + err.message);
+ console.error(`Error happened calling Query: ${err.name} ${err.message}`);
}
else {
console.info(returnValue);
@@ -97,7 +96,7 @@ var connection: sql.ConnectionPool = new sql.ConnectionPool(config, function (er
requestStoredProcedure.execute('StoredProcedureName', function (err, recordsets, returnValue) {
if (err != null) {
- console.error('Error happened calling Query: ' + err.name + " " + err.message);
+ console.error(`Error happened calling Query: ${err.name} ${err.message}`);
}
else {
console.info(requestStoredProcedureWithOutput.parameters['output'].value);
@@ -106,7 +105,7 @@ var connection: sql.ConnectionPool = new sql.ConnectionPool(config, function (er
requestStoredProcedure.execute('StoredProcedureName', function (err, recordsets, returnValue) {
if (err != null) {
- console.error('Error happened calling Query: ' + err.name + " " + err.message);
+ console.error(`Error happened calling Query: ${err.name} ${err.message}`);
}
else {
console.info(requestStoredProcedureWithOutput.parameters['output'].value);
@@ -150,7 +149,7 @@ function test_promise_returns() {
request.batch('create procedure #temporary as select * from table;select 1 as value').then((recordset) => { });
request.bulk(new sql.Table("table_name")).then(() => { });
request.query('SELECT 1').then((recordset) => { });
- request.query('SELECT 1 as value').then(res => { });
+ request.query('SELECT 1 as value').then(res => { });
request.execute('procedure_name').then((recordset) => { });
}