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) => { }); }