From bec5648ef70e2518aa7f9a700a476494de11bded Mon Sep 17 00:00:00 2001 From: kpisaksen Date: Fri, 11 Sep 2015 19:05:59 +0200 Subject: [PATCH 01/22] Include Arrays in use method Express 4.x API reference for app.use includes the use of Arrays. This update adds this to the definition file. --- express/express.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/express/express.d.ts b/express/express.d.ts index b54f6e2fb..2847cd967 100644 --- a/express/express.d.ts +++ b/express/express.d.ts @@ -106,6 +106,8 @@ declare module "express" { use(handler: ErrorRequestHandler): T; use(path: string, ...handler: RequestHandler[]): T; use(path: string, handler: ErrorRequestHandler): T; + use(path: string[], ...handler: RequestHandler[]): T; + use(path: string[], handler: ErrorRequestHandler[]): T; } export function Router(options?: any): Router; From 4b2c1c12689354a218c542143be066bcb53bb218 Mon Sep 17 00:00:00 2001 From: Matti Lehtinen Date: Sat, 12 Sep 2015 14:25:43 +0300 Subject: [PATCH 02/22] Amazon-product-api typings --- .../amazon-product-api-tests.ts | 84 +++++++++++++++++++ amazon-product-api/amazon-product-api.d.ts | 27 ++++++ 2 files changed, 111 insertions(+) create mode 100644 amazon-product-api/amazon-product-api-tests.ts create mode 100644 amazon-product-api/amazon-product-api.d.ts diff --git a/amazon-product-api/amazon-product-api-tests.ts b/amazon-product-api/amazon-product-api-tests.ts new file mode 100644 index 000000000..b98e15710 --- /dev/null +++ b/amazon-product-api/amazon-product-api-tests.ts @@ -0,0 +1,84 @@ +/// +/// + +import amazon = require('amazon-product-api'); + +var client = amazon.createClient({ + awsId: process.env.AWS_ACCESS_KEY_ID, + awsSecret: process.env.AWS_SECRET, + awsTag: process.env.AWS_ASSOCIATE_TAG +}); + + +// Item Search + +var searchQuery = { + director: 'Quentin Tarantino', + actor: 'Samuel L. Jackson', + searchIndex: 'DVD', + audienceRating: 'R', + responseGroup: 'ItemAttributes,Offers,Images' +}; + +client.itemSearch(searchQuery).then((results) => { + console.log(getResultCount(results) + " search results"); +}).catch(function(err){ + console.log(err); +}); + +client.itemSearch(searchQuery, (err, results) => { + if(err) { + console.log(err); + return; + } + console.log(getResultCount(results) + " search results"); +}); + + +// Item Lookup + +var lookupQuery = { + itemId: 'B00008OE6I', + idType: 'ASIN', + responseGroup: 'OfferFull', + Condition: 'All' +}; + +client.itemLookup(lookupQuery).then((results) => { + console.log(getResultCount(results) + " lookup results"); +}).catch(function(err){ + console.log(err); +}); + +client.itemLookup(lookupQuery, (err, results) => { + if(err) { + console.log(err); + return; + } + console.log(getResultCount(results) + " lookup results"); +}); + +// Browse Node Lookup + +var nodeLookupQuery = { + browseNodeId: '2625373011' +}; + +client.browseNodeLookup(nodeLookupQuery).then((results) => { + console.log(getResultCount(results) + " node lookup results"); +}).catch(function(err){ + console.log(err); +}); + +client.browseNodeLookup(nodeLookupQuery, (err, results) => { + if(err) { + console.log(err); + return; + } + + console.log(getResultCount(results) + " node lookup results"); +}); + +function getResultCount(results: Object[]) { + return results != undefined ? results.length : 0; +} \ No newline at end of file diff --git a/amazon-product-api/amazon-product-api.d.ts b/amazon-product-api/amazon-product-api.d.ts new file mode 100644 index 000000000..fc84dcc09 --- /dev/null +++ b/amazon-product-api/amazon-product-api.d.ts @@ -0,0 +1,27 @@ +// Type definitions for amazon-product-api +// Project: https://github.com/t3chnoboy/amazon-product-api +// Definitions by: Matti Lehtinen +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module "amazon-product-api" { + + interface ICredentials { + awsId: string, + awsSecret: string, + awsTag: string + } + + interface IAmazonProductQueryCallback { + (err: string, results: Object[]): void; + } + + interface IAmazonProductClient { + itemSearch(query: any, callback?: IAmazonProductQueryCallback) : Promise; + itemLookup(query: any, callback?: IAmazonProductQueryCallback) : Promise; + browseNodeLookup(query: any, callback?: IAmazonProductQueryCallback) : Promise; + } + + export function createClient(credentials:ICredentials) : IAmazonProductClient; +} From 280b0abd481387e1ed5f410813b36a407018e67c Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 17:16:15 +0100 Subject: [PATCH 03/22] Fix table.row.add method table.row.add takes a variable amount of arguments --- mssql/mssql-tests.ts | 14 ++++++++++++++ mssql/mssql.d.ts | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/mssql/mssql-tests.ts b/mssql/mssql-tests.ts index 453b2b4e3..29dcd3421 100644 --- a/mssql/mssql-tests.ts +++ b/mssql/mssql-tests.ts @@ -76,3 +76,17 @@ var connection: sql.Connection = new sql.Connection(config, function (err: any) }); } }); + +function test_table() { + var table = new sql.Table('#temp_table'); + + table.create = true; + + table.columns.add('name', sql.VarChar(sql.MAX), { nullable: false }); + table.columns.add('type', sql.Int, { nullable: false }); + table.columns.add('amount', sql.Decimal(7, 2), { nullable: false }); + + table.rows.add('name', 42, 3.50); + table.rows.add('name2', 7, 3.14); +} + diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index 880eb716c..519a6edeb 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -78,7 +78,7 @@ declare module "mssql" { } class rows { - public add(row: any): void; + public add(...row: any[]): void; } export class Table { From ffe1b8a10b0e3445f37684187fdf103c3e143fef Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 17:42:11 +0100 Subject: [PATCH 04/22] Add missing module variables --- mssql/mssql.d.ts | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index 519a6edeb..7a7d79f6d 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -39,15 +39,35 @@ declare module "mssql" { export var Geometry: any; export interface options { + + export var MAX: number; + export var fix: boolean; + export var Promise: any; + + export var map: { js: any, sql: any }[]; + export var DRIVERS: string[]; + + export var ISOLATION_LEVEL: { + READ_UNCOMMITTED: number + READ_COMMITTED: number + REPEATABLE_READ: number + SERIALIZABLE: number + SNAPSHOT: number + } + + export interface IOptions { encrypt: boolean; } - export interface pool { + + export interface IPool { min: number; max: number; idleTimeoutMillis: number; } + export var pool: IPool; + export interface config { driver?: string; user?: string; @@ -59,9 +79,8 @@ declare module "mssql" { connectionTimeout?: number; requestTimeout?: number; stream?: boolean; - options?: options; - pool?: pool; - + options?: IOptions; + pool?: IPool; } export class Connection { From a0e8f7986a0b006aa91289c29e3ac7baf0063f4a Mon Sep 17 00:00:00 2001 From: Imanuel Ulbricht Date: Sun, 13 Sep 2015 21:52:57 +0200 Subject: [PATCH 05/22] Update express.d.ts added baseUrl and app property to express.Request. --- express/express.d.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/express/express.d.ts b/express/express.d.ts index b54f6e2fb..9fb807e87 100644 --- a/express/express.d.ts +++ b/express/express.d.ts @@ -410,6 +410,10 @@ declare module "express" { originalUrl: string; url: string; + + baseUrl: string; + + app: Application; } interface MediaType { From 5ac3ef67bac39d4f69abed92450357fd5de1302b Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 21:36:04 +0100 Subject: [PATCH 06/22] Return Promises Methods return a promises if the callback is omitted. --- mssql/mssql-tests.ts | 23 ++++++++++++++++ mssql/mssql.d.ts | 64 +++++++++++++++++++++++++++----------------- 2 files changed, 63 insertions(+), 24 deletions(-) diff --git a/mssql/mssql-tests.ts b/mssql/mssql-tests.ts index 29dcd3421..d4cf834b0 100644 --- a/mssql/mssql-tests.ts +++ b/mssql/mssql-tests.ts @@ -90,3 +90,26 @@ function test_table() { table.rows.add('name2', 7, 3.14); } + +function test_promise_returns() { + // Methods return a promises if the callback is omitted. + var connection: sql.Connection = new sql.Connection(config); + connection.connect().then(() => { }); + connection.close().then(() => { }); + + var preparedStatment = new sql.PreparedStatement(connection); + preparedStatment.prepare("SELECT @myValue").then(() => { }); + preparedStatment.execute({ myValue: 1 }).then((recordSet) => { }); + preparedStatment.unprepare().then(() => { }); + + var transaction = new sql.Transaction(connection); + transaction.begin().then(() => { }); + transaction.commit().then(() => { }); + transaction.rollback().then(() => { }); + + var request = new sql.Request(); + request.batch('create procedure #temporary as select * from table').then((recordset) => { }); + request.bulk(new sql.Table("table_name")).then(() => { }); + request.query('SELECT 1').then((recordset) => { }); + request.execute('procedure_name').then((recordset) => { }); +} diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index 7a7d79f6d..f5bdd72c5 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -3,6 +3,8 @@ // Definitions by: COLSA Corporation // Definitions: https://github.com/borisyankov/DefinitelyTyped +/// + declare module "mssql" { export var Date: any; @@ -47,12 +49,15 @@ declare module "mssql" { export var map: { js: any, sql: any }[]; export var DRIVERS: string[]; + type recordSet = any; + type IIsolationLevel = number; + export var ISOLATION_LEVEL: { - READ_UNCOMMITTED: number - READ_COMMITTED: number - REPEATABLE_READ: number - SERIALIZABLE: number - SNAPSHOT: number + READ_UNCOMMITTED: IIsolationLevel + READ_COMMITTED: IIsolationLevel + REPEATABLE_READ: IIsolationLevel + SERIALIZABLE: IIsolationLevel + SNAPSHOT: IIsolationLevel } export interface IOptions { @@ -87,9 +92,11 @@ declare module "mssql" { public constructor(config: config, callback?: (err?: any) => void); - public connect(callback?: (err?: any) => void): void; + public connect(): Promise; + public connect(callback: (err: any) => void): void; - public close(): void; + public close(): Promise; + public close(callback: (err: any) => void): void; } class columns { @@ -110,32 +117,41 @@ declare module "mssql" { export class Request { public constructor(connection?: Connection); - public execute(procedure: string, callback?: (err?: any, recordsets?: any, returnValue?: any) => void): void; - public input(name: string, value: any): void; - public input(name: string, type: any, value: any): void; - public output(name: string, type: any, value?: any): void; public pipe(stream: any): void; - public query(command: string, callback?: (err?: any, recordset?: any) => void): void; - public batch(batch: string, callback?: (err?: any, recordset?: any) => void): void; - public bulk(table: Table, callback?: (err?: any, rowCount?: any) => void): void; - public cancel(): void; - public parameters: any; + execute(procedure: string): Promise; + execute(procedure: string, callback: (err?: any, recordsets?: any, returnValue?: any) => void): void; + input(name: string, value: any): void; + input(name: string, type: any, value: any): void; + output(name: string, type: any, value?: any): void; + query(command: string): Promise; + query(command: string, callback: (err?: any, recordset?: any) => void): void; + batch(batch: string): Promise; + batch(batch: string, callback: (err?: any, recordset?: any) => void): void; + bulk(table: Table): Promise; + bulk(table: Table, callback: (err: any, rowCount: any) => void): void; + cancel(): void; + parameters: any; } export class Transaction { - public constructor(connection?: Connection); - public begin(isolationLevel?: any, callback?: (err?: any) => void): void; - public begin(callback?: (err?: any) => void): void; - public commit(callback?: (err?: any) => void): void; - public rollback(callback?: (err?: any) => void): void; + public constructor(connection: Connection); + public begin(isolationLevel?: IIsolationLevel): Promise; + public begin(isolationLevel?: IIsolationLevel, callback?: (err?: any) => void): void; + public commit(): Promise; + public commit(callback: (err?: any) => void): void; + public rollback(): Promise; + public rollback(callback: (err?: any) => void): void; } export class PreparedStatement { public constructor(connection?: Connection); public input(name: string, type: any): void; public output(name: string, type: any): void; - public prepare(statement: string, callback?: (err?: any) => void): void; - public execute(values: any, callback?: (err?: any) => void): void; - public unprepare(callback?: (err?: any) => void): void; + public prepare(statement?: string): Promise; + public prepare(statement?: string, callback?: (err?: any) => void): void; + public execute(values: Object): Promise; + public execute(values: Object, callback: (err: any, recordSet: recordSet) => void): void; + public unprepare(): Promise; + public unprepare(callback: (err?: any) => void): void; } } From 1ae80ee1efa039bdb58687377da2ccd1792d0846 Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 21:49:01 +0100 Subject: [PATCH 07/22] Different arguments for new Request Request can be constructed with a connection, preparedStatment, transaction or no arguments --- mssql/mssql-tests.ts | 13 +++++++++++++ mssql/mssql.d.ts | 30 ++++++++++++++++-------------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/mssql/mssql-tests.ts b/mssql/mssql-tests.ts index d4cf834b0..3f4adcd41 100644 --- a/mssql/mssql-tests.ts +++ b/mssql/mssql-tests.ts @@ -113,3 +113,16 @@ function test_promise_returns() { request.query('SELECT 1').then((recordset) => { }); request.execute('procedure_name').then((recordset) => { }); } + + +function test_request_constructor() { + // Request can be constructed with a connection, preparedStatment, transaction or no arguments + var connection: sql.Connection = new sql.Connection(config); + var preparedStatment = new sql.PreparedStatement(connection); + var transaction = new sql.Transaction(connection); + + var request1 = new sql.Request(connection); + var request2 = new sql.Request(preparedStatment); + var request3 = new sql.Request(transaction); + var request4 = new sql.Request(); +} diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index f5bdd72c5..e0e58237c 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -117,20 +117,22 @@ declare module "mssql" { export class Request { public constructor(connection?: Connection); - public pipe(stream: any): void; - execute(procedure: string): Promise; - execute(procedure: string, callback: (err?: any, recordsets?: any, returnValue?: any) => void): void; - input(name: string, value: any): void; - input(name: string, type: any, value: any): void; - output(name: string, type: any, value?: any): void; - query(command: string): Promise; - query(command: string, callback: (err?: any, recordset?: any) => void): void; - batch(batch: string): Promise; - batch(batch: string, callback: (err?: any, recordset?: any) => void): void; - bulk(table: Table): Promise; - bulk(table: Table, callback: (err: any, rowCount: any) => void): void; - cancel(): void; - parameters: any; + public constructor(transaction: Transaction); + public constructor(preparedStatement: PreparedStatement); + public execute(procedure: string): Promise; + public execute(procedure: string, callback: (err?: any, recordsets?: any, returnValue?: any) => void): void; + public input(name: string, value: any): void; + public input(name: string, type: any, value: any): void; + public output(name: string, type: any, value?: any): void; + public pipe(stream: NodeJS.WritableStream): void; + public query(command: string): Promise; + public query(command: string, callback: (err?: any, recordset?: any) => void): void; + public batch(batch: string): Promise; + public batch(batch: string, callback: (err?: any, recordset?: any) => void): void; + public bulk(table: Table): Promise; + public bulk(table: Table, callback: (err: any, rowCount: any) => void): void; + public cancel(): void; + public parameters: any; } export class Transaction { From 1368ed3f942f45df7866ad128441716982d2cc34 Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 22:56:17 +0100 Subject: [PATCH 08/22] Classes extend EventEmitter Classes Connection, Request, Transaction and PreparedStatement all extend Node's EventEmitter --- mssql/mssql-tests.ts | 16 ++++++++++++++++ mssql/mssql.d.ts | 11 +++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/mssql/mssql-tests.ts b/mssql/mssql-tests.ts index 3f4adcd41..6fa546e66 100644 --- a/mssql/mssql-tests.ts +++ b/mssql/mssql-tests.ts @@ -126,3 +126,19 @@ function test_request_constructor() { var request3 = new sql.Request(transaction); var request4 = new sql.Request(); } + +function test_classes_extend_eventemitter() { + var connection: sql.Connection = new sql.Connection(config); + var transaction = new sql.Transaction(); + var request = new sql.Request(); + var preparedStatment = new sql.PreparedStatement(); + + connection.on('connect', () => { }); + transaction.on('begin', () => { }); + transaction.on('commit', () => { }); + transaction.on('rollback', () => { }); + request.on('done', () => { }); + request.on('error', () => { }); + + preparedStatment.on('error', () => { }) +} \ No newline at end of file diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index e0e58237c..4f2ee1ff7 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -3,6 +3,7 @@ // Definitions by: COLSA Corporation // Definitions: https://github.com/borisyankov/DefinitelyTyped +/// /// declare module "mssql" { @@ -41,6 +42,8 @@ declare module "mssql" { export var Geometry: any; export interface options { + import events = require('events'); + export var MAX: number; export var fix: boolean; @@ -88,7 +91,7 @@ declare module "mssql" { pool?: IPool; } - export class Connection { + export class Connection extends events.EventEmitter { public constructor(config: config, callback?: (err?: any) => void); @@ -115,7 +118,7 @@ declare module "mssql" { } - export class Request { + export class Request extends events.EventEmitter { public constructor(connection?: Connection); public constructor(transaction: Transaction); public constructor(preparedStatement: PreparedStatement); @@ -135,7 +138,7 @@ declare module "mssql" { public parameters: any; } - export class Transaction { + export class Transaction extends events.EventEmitter { public constructor(connection: Connection); public begin(isolationLevel?: IIsolationLevel): Promise; public begin(isolationLevel?: IIsolationLevel, callback?: (err?: any) => void): void; @@ -145,7 +148,7 @@ declare module "mssql" { public rollback(callback: (err?: any) => void): void; } - export class PreparedStatement { + export class PreparedStatement extends events.EventEmitter { public constructor(connection?: Connection); public input(name: string, type: any): void; public output(name: string, type: any): void; From 8502c06745034846db5a45f46cc4af18268f98fd Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 23:08:41 +0100 Subject: [PATCH 09/22] Minor fixes --- mssql/mssql.d.ts | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index 4f2ee1ff7..6ad299c77 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -7,6 +7,7 @@ /// declare module "mssql" { + import events = require('events'); export var Date: any; export var DateTime: any; @@ -15,22 +16,22 @@ declare module "mssql" { export var SmallDateTime: any; export var Time: any; export var Char: any; - export var VarChar:any; + export var VarChar: any; export var NChar: any; export var NVarChar: any; - export var Text:any; - export var NText:any; + export var Text: any; + export var NText: any; export var Xml: any; - export var TinyInt:any; - export var SmallInt:any; + export var TinyInt: any; + export var SmallInt: any; export var Int: any; - export var BigInt:any; - export var Decimal:any; - export var Float:any; - export var Real:any; - export var SmallMoney:any; - export var Money:any; - export var Numeric:any; + export var BigInt: any; + export var Decimal: any; + export var Float: any; + export var Real: any; + export var SmallMoney: any; + export var Money: any; + export var Numeric: any; export var Bit: any; export var Binary: any; export var VarBinary: any; @@ -41,10 +42,6 @@ declare module "mssql" { export var Geography: any; export var Geometry: any; - export interface options { - import events = require('events'); - - export var MAX: number; export var fix: boolean; export var Promise: any; @@ -92,12 +89,9 @@ declare module "mssql" { } export class Connection extends events.EventEmitter { - public constructor(config: config, callback?: (err?: any) => void); - public connect(): Promise; public connect(callback: (err: any) => void): void; - public close(): Promise; public close(callback: (err: any) => void): void; } @@ -115,7 +109,6 @@ declare module "mssql" { public columns: columns; public rows: rows; public constructor(tableName: string); - } export class Request extends events.EventEmitter { @@ -139,7 +132,7 @@ declare module "mssql" { } export class Transaction extends events.EventEmitter { - public constructor(connection: Connection); + public constructor(connection?: Connection); public begin(isolationLevel?: IIsolationLevel): Promise; public begin(isolationLevel?: IIsolationLevel, callback?: (err?: any) => void): void; public commit(): Promise; From 93820e0d624e929869070834d5708e2d069825c7 Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 23:09:49 +0100 Subject: [PATCH 10/22] Add version and credit --- mssql/mssql.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index 6ad299c77..f19c1fa84 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -1,6 +1,6 @@ -// Type definitions for mssql +// Type definitions for mssql v2.2.0 // Project: https://www.npmjs.com/package/mssql -// Definitions by: COLSA Corporation +// Definitions by: COLSA Corporation , Ben Farr // Definitions: https://github.com/borisyankov/DefinitelyTyped /// From ae22764e146cf48ac342a66216ab0a1fb0cc3536 Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 23:20:15 +0100 Subject: [PATCH 11/22] Define SQL types Also Duplicated in to .TYPES --- mssql/mssql.d.ts | 111 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 79 insertions(+), 32 deletions(-) diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index f19c1fa84..e67bd3028 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -9,38 +9,85 @@ declare module "mssql" { import events = require('events'); - export var Date: any; - export var DateTime: any; - export var DateTime2: any; - export var DateTimeOffset: any; - export var SmallDateTime: any; - export var Time: any; - export var Char: any; - export var VarChar: any; - export var NChar: any; - export var NVarChar: any; - export var Text: any; - export var NText: any; - export var Xml: any; - export var TinyInt: any; - export var SmallInt: any; - export var Int: any; - export var BigInt: any; - export var Decimal: any; - export var Float: any; - export var Real: any; - export var SmallMoney: any; - export var Money: any; - export var Numeric: any; - export var Bit: any; - export var Binary: any; - export var VarBinary: any; - export var TVP: any; - export var UniqueIdentifier: any; - export var Image: any; - export var UDT: any; - export var Geography: any; - export var Geometry: any; + type sqlTypeWithNoParams = { type: sqlTypeFactoryWithNoParams } + type sqlTypeWithLength = { type: sqlTypeFactoryWithLength, length: number } + type sqlTypeWithScale = { type: sqlTypeFactoryWithScale, scale: number } + type sqlTypeWithPrecisionScale = { type: sqlTypeFactoryWithPrecisionScale, precision: number, scale: number } + type sqlTypeWithTvpType = { type: sqlTypeFactoryWithTvpType, tvpType: any } + + type sqlTypeFactoryWithNoParams = () => sqlTypeWithNoParams; + type sqlTypeFactoryWithLength = (length?: number) => sqlTypeWithLength; + type sqlTypeFactoryWithScale = (scale?: number) => sqlTypeWithScale; + type sqlTypeFactoryWithPrecisionScale = (precision?: number, scale?: number) => sqlTypeWithPrecisionScale; + type sqlTypeFactoryWithTvpType = (tvpType: any) => sqlTypeWithTvpType; + + export var VarChar: sqlTypeFactoryWithLength; + export var NVarChar: sqlTypeFactoryWithLength; + export var Text: sqlTypeFactoryWithNoParams; + export var Int: sqlTypeFactoryWithNoParams; + export var BigInt: sqlTypeFactoryWithNoParams; + export var TinyInt: sqlTypeFactoryWithNoParams; + export var SmallInt: sqlTypeFactoryWithNoParams; + export var Bit: sqlTypeFactoryWithNoParams; + export var Float: sqlTypeFactoryWithNoParams; + export var Numeric: sqlTypeFactoryWithPrecisionScale; + export var Decimal: sqlTypeFactoryWithPrecisionScale; + export var Real: sqlTypeFactoryWithNoParams; + export var Date: sqlTypeFactoryWithNoParams; + export var DateTime: sqlTypeFactoryWithNoParams; + export var DateTime2: sqlTypeFactoryWithScale; + export var DateTimeOffset: sqlTypeFactoryWithScale; + export var SmallDateTime: sqlTypeFactoryWithNoParams; + export var Time: sqlTypeFactoryWithScale; + export var UniqueIdentifier: sqlTypeFactoryWithNoParams; + export var SmallMoney: sqlTypeFactoryWithNoParams; + export var Money: sqlTypeFactoryWithNoParams; + export var Binary: sqlTypeFactoryWithNoParams; + export var VarBinary: sqlTypeFactoryWithLength; + export var Image: sqlTypeFactoryWithNoParams; + export var Xml: sqlTypeFactoryWithNoParams; + export var Char: sqlTypeFactoryWithLength; + export var NChar: sqlTypeFactoryWithLength; + export var NText: sqlTypeFactoryWithNoParams; + export var TVP: sqlTypeFactoryWithTvpType; + export var UDT: sqlTypeFactoryWithNoParams; + export var Geography: sqlTypeFactoryWithNoParams; + export var Geometry: sqlTypeFactoryWithNoParams; + + export var TYPES: { + VarChar: sqlTypeFactoryWithLength; + NVarChar: sqlTypeFactoryWithLength; + Text: sqlTypeFactoryWithNoParams; + Int: sqlTypeFactoryWithNoParams; + BigInt: sqlTypeFactoryWithNoParams; + TinyInt: sqlTypeFactoryWithNoParams; + SmallInt: sqlTypeFactoryWithNoParams; + Bit: sqlTypeFactoryWithNoParams; + Float: sqlTypeFactoryWithNoParams; + Numeric: sqlTypeFactoryWithPrecisionScale; + Decimal: sqlTypeFactoryWithPrecisionScale; + Real: sqlTypeFactoryWithNoParams; + Date: sqlTypeFactoryWithNoParams; + DateTime: sqlTypeFactoryWithNoParams; + DateTime2: sqlTypeFactoryWithScale; + DateTimeOffset: sqlTypeFactoryWithScale; + SmallDateTime: sqlTypeFactoryWithNoParams; + Time: sqlTypeFactoryWithScale; + UniqueIdentifier: sqlTypeFactoryWithNoParams; + SmallMoney: sqlTypeFactoryWithNoParams; + Money: sqlTypeFactoryWithNoParams; + Binary: sqlTypeFactoryWithNoParams; + VarBinary: sqlTypeFactoryWithLength; + Image: sqlTypeFactoryWithNoParams; + Xml: sqlTypeFactoryWithNoParams; + Char: sqlTypeFactoryWithLength; + NChar: sqlTypeFactoryWithLength; + NText: sqlTypeFactoryWithNoParams; + TVP: sqlTypeFactoryWithTvpType; + UDT: sqlTypeFactoryWithNoParams; + Geography: sqlTypeFactoryWithNoParams; + Geometry: sqlTypeFactoryWithNoParams; + }; export var MAX: number; export var fix: boolean; From bda476885a90e8a7c33e046f6a32b576e244f465 Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 23:57:56 +0100 Subject: [PATCH 12/22] export Error classes --- mssql/mssql.d.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index e67bd3028..58e039765 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -143,6 +143,13 @@ declare module "mssql" { public close(callback: (err: any) => void): void; } + export class ConnectionError implements Error { + constructor(message: string, code?: any) + public name: string; + public message: string; + public code: string; + } + class columns { public add(name: string, type: any, options: any): void; } @@ -178,6 +185,13 @@ declare module "mssql" { public parameters: any; } + export class RequestError implements Error { + constructor(message: string, code?: any) + public name: string; + public message: string; + public code: string; + } + export class Transaction extends events.EventEmitter { public constructor(connection?: Connection); public begin(isolationLevel?: IIsolationLevel): Promise; @@ -188,6 +202,13 @@ declare module "mssql" { public rollback(callback: (err?: any) => void): void; } + export class TransactionError implements Error { + constructor(message: string, code?: any) + public name: string; + public message: string; + public code: string; + } + export class PreparedStatement extends events.EventEmitter { public constructor(connection?: Connection); public input(name: string, type: any): void; @@ -199,4 +220,11 @@ declare module "mssql" { public unprepare(): Promise; public unprepare(callback: (err?: any) => void): void; } + + export class PreparedStatementError implements Error { + constructor(message: string, code?: any) + public name: string; + public message: string; + public code: string; + } } From 8c36347a98e2b9ce06eb05ee2943c74d00d85758 Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Sun, 13 Sep 2015 23:59:24 +0100 Subject: [PATCH 13/22] add register method to property 'map' array --- mssql/mssql.d.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index 58e039765..934d225f4 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -93,7 +93,13 @@ declare module "mssql" { export var fix: boolean; export var Promise: any; - export var map: { js: any, sql: any }[]; + + interface IMap extends Array<{js: any, sql: any }> { + register(jstype: any, sql: any): void; + } + + export var map: IMap; + export var DRIVERS: string[]; type recordSet = any; From 2e2fb72c2625d0755b338b230fc01ab9ed663f81 Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Mon, 14 Sep 2015 00:26:18 +0100 Subject: [PATCH 14/22] Add public properties the main classes --- mssql/mssql.d.ts | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/mssql/mssql.d.ts b/mssql/mssql.d.ts index 934d225f4..c434444d3 100644 --- a/mssql/mssql.d.ts +++ b/mssql/mssql.d.ts @@ -142,6 +142,9 @@ declare module "mssql" { } export class Connection extends events.EventEmitter { + public connected: boolean; + public connecting: boolean; + public driver: string; public constructor(config: config, callback?: (err?: any) => void); public connect(): Promise; public connect(callback: (err: any) => void): void; @@ -171,7 +174,28 @@ declare module "mssql" { public constructor(tableName: string); } + interface IRequestParameters { + [name: string]: { + name: string; + type: any; + io: number; + value: any; + length: number; + scale: number; + precision: number; + tvpType: any; + } + } + export class Request extends events.EventEmitter { + public connection: Connection; + public transaction: Transaction; + public pstatement: PreparedStatement; + public parameters: IRequestParameters; + public verbose: boolean; + public multiple: boolean; + public canceled: boolean; + public stream: any; public constructor(connection?: Connection); public constructor(transaction: Transaction); public constructor(preparedStatement: PreparedStatement); @@ -188,7 +212,6 @@ declare module "mssql" { public bulk(table: Table): Promise; public bulk(table: Table, callback: (err: any, rowCount: any) => void): void; public cancel(): void; - public parameters: any; } export class RequestError implements Error { @@ -199,6 +222,8 @@ declare module "mssql" { } export class Transaction extends events.EventEmitter { + public connection: Connection; + public isolationLevel: IIsolationLevel; public constructor(connection?: Connection); public begin(isolationLevel?: IIsolationLevel): Promise; public begin(isolationLevel?: IIsolationLevel, callback?: (err?: any) => void): void; @@ -216,6 +241,13 @@ declare module "mssql" { } export class PreparedStatement extends events.EventEmitter { + public connection: Connection; + public transaction: Transaction; + public prepared: boolean; + public statement: string; + public parameters: IRequestParameters; + public multiple: boolean; + public stream: any; public constructor(connection?: Connection); public input(name: string, type: any): void; public output(name: string, type: any): void; From d6aab9d29989caa9ff4c1d6bc917b53a29364f21 Mon Sep 17 00:00:00 2001 From: Ben Farr Date: Mon, 14 Sep 2015 00:30:50 +0100 Subject: [PATCH 15/22] Add public properties the main classes --- mssql/mssql-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mssql/mssql-tests.ts b/mssql/mssql-tests.ts index 6fa546e66..e508ec354 100644 --- a/mssql/mssql-tests.ts +++ b/mssql/mssql-tests.ts @@ -71,7 +71,7 @@ var connection: sql.Connection = new sql.Connection(config, function (err: any) console.error('Error happened calling Query: ' + err.name + " " + err.message); } else { - console.info(requestStoredProcedureWithOutput.parameters.output.value); + console.info(requestStoredProcedureWithOutput.parameters['output'].value); } }); } From bdaec8221e118399149519fc9f88277de6c0bb9f Mon Sep 17 00:00:00 2001 From: Ilya Mochalov Date: Mon, 14 Sep 2015 04:52:53 +0500 Subject: [PATCH 16/22] redlock: remove forgotten line --- redlock/redlock.d.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/redlock/redlock.d.ts b/redlock/redlock.d.ts index 4c55f3b62..07760e102 100644 --- a/redlock/redlock.d.ts +++ b/redlock/redlock.d.ts @@ -39,7 +39,6 @@ declare module RedlockTypes { servers: any[]; // array of redis.RedisClient constructor(clients: any[], options?: RedlockOptions); - //new (clients: any[], options?: IRedlockOptions); acquire(resource: string, ttl: number, callback?: NodeifyCallback): Promise; lock(resource: string, ttl: number, callback?: NodeifyCallback): Promise; From b8e30e877593e8e632a858dbce8115527bf99ff4 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Mon, 14 Sep 2015 09:51:02 +0300 Subject: [PATCH 17/22] Create socket.io.users.d.ts --- socket.io.users/socket.io.users.d.ts | 79 ++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 socket.io.users/socket.io.users.d.ts diff --git a/socket.io.users/socket.io.users.d.ts b/socket.io.users/socket.io.users.d.ts new file mode 100644 index 000000000..f7ee9b2d8 --- /dev/null +++ b/socket.io.users/socket.io.users.d.ts @@ -0,0 +1,79 @@ +// Type definitions for socket.io.users +// Project: https://github.com/nodets/socket.io.users +// Definitions by: Makis Maropoulos +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// +/// +/// +/// + +declare module "socket.io.users" { + import { EventEmitter } from 'events'; + import { Application } from "express"; + import { SessionOptions } from "express-session"; + + var CONNECTION_EVENTS: string[]; + var Middleware: () => (socket: SocketIO.Socket, next: () => any) => void; + var Session: (app: Application, options?: SessionOptions) => void; + + type SocketUserList = { + [namespace: string]: Users; + }; + + class Namespaces { + private static socketUsersList: any; + static attach(namespace: string, socketUsersObj: Users): void; + static get(namespace: string): Users; + } + + class User { + id: string | number; + socket: SocketIO.Socket; + sockets: SocketIO.Socket[]; + rooms: string[]; + ip: string; + remoteAddresses: string[]; + store: any; + attach(socket: SocketIO.Socket): void; + detachSocket(socket: SocketIO.Socket): void; + detach(): void; + join(room: string): boolean; + leave(room: string): void; + leaveAll(): void; + /** same as in, checks if this user is inside a room */ + belong(room: string): boolean; + /** same as belong, checks if this user is inside a room */ + in(room: string): boolean; + set(key: string, value: any, callback?: () => void): void; + get: (key: string) => any; + toString(): string; + emit(...args: any[]): void; + to(room: string): SocketIO.Socket; + } + + + class Users extends EventEmitter { + namespace: string; + users: User[]; + constructor(namespace?: string); + static of(namespace?: string): Users; + takeId: (request: any) => string | number; + create(socket: SocketIO.Socket): User; + getById(id: string | number): User; + get(socket: SocketIO.Socket): User; + list(): User[]; + size(): number; + push(_user: User): void; + add(socket: SocketIO.Socket): User; + indexOf(user: User): number; + remove(user: User): void; + room(room: string): User[]; + in(room: string): User[]; + from(room: string): User[]; + update(user: User): void; + emitAll(...args: any[]): void; + registerSocketEvents(currentUser: User): void; + } + +} From 0572f9e1c2f5a32411c22457c08f08000b6094a0 Mon Sep 17 00:00:00 2001 From: Makis Maropoulos Date: Mon, 14 Sep 2015 09:51:42 +0300 Subject: [PATCH 18/22] Create socket.io.users-tests.ts --- socket.io.users/socket.io.users-tests.ts | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 socket.io.users/socket.io.users-tests.ts diff --git a/socket.io.users/socket.io.users-tests.ts b/socket.io.users/socket.io.users-tests.ts new file mode 100644 index 000000000..54a047262 --- /dev/null +++ b/socket.io.users/socket.io.users-tests.ts @@ -0,0 +1,58 @@ +/// +/// +/// +/// +var express = require('express'); +var app = express(); +var httpServer = require('http').createServer(app); +var io = require('socket.io')(httpServer); +import ioUsers = require("socket.io.users"); + + + +ioUsers.Session(app, { + "secret": "socket.io.users secret test", + "resave": true, + "saveUninitialized": true +}); + +io.use(ioUsers.Middleware()); + +var users = ioUsers.Users.of("/"); + + +var userDisconnected = (user: ioUsers.User) => { + console.log(user.get("username") + " has disconnected from all web browser windows or/and tabs"); +} + +var setUsername = (user: ioUsers.User, data: any) => { + console.log(user.ip + ' is for first time visiting our site. He/she wants ' + data.username + ' for username'); + user.set("username", data.username); +} + +var joinRoom = (user: ioUsers.User, roomToJoin: string) => { + console.log(user.get("username") + ' joined to ' + roomToJoin); +} + +var leaveRoom = (user: ioUsers.User, roomToJoin: string) => { + console.log(user.get("username") + ' joined to ' + roomToJoin); +} + +var sendMessage = (user: ioUsers.User, data: any) => { + console.log(user.get("username") + 'send ' + data.content + ' to room: ' + data.room); +} + +users.on('disconnected', userDisconnected); +users.on('set username', setUsername); +users.on('join room', joinRoom); //notify other = user joined room or (GLOBAL) room created. +users.on('leave room', leaveRoom); //notify other = user left room or (GLOBAL) room removed. +users.on("send message", sendMessage); //notify other = receive message. + +httpServer.on('uncaughtException', function(err: any) { + console.log(err); +}) + +var httpPort = 80; +httpServer.listen(httpPort, function() { + console.log("Server is running on " + httpPort); +}); From f78e31744c7b3ee8fda8f8b32ddb7d424eab4c8c Mon Sep 17 00:00:00 2001 From: Bas Pennings Date: Mon, 14 Sep 2015 12:49:44 +0200 Subject: [PATCH 19/22] Added missing explicit void return for batch functions --- levelup/levelup.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/levelup/levelup.d.ts b/levelup/levelup.d.ts index bb5af38be..d6f62f184 100644 --- a/levelup/levelup.d.ts +++ b/levelup/levelup.d.ts @@ -22,8 +22,8 @@ interface LevelUp { del(key: any, options ?: { keyEncoding?: string; sync?: boolean }, callback ?: (error: any) => any): void; - batch(array: Batch[], options?: { keyEncoding?: string; valueEncoding?: string; sync?: boolean }, callback?: (error?: any)=>any); - batch(array: Batch[], callback?: (error?: any)=>any); + batch(array: Batch[], options?: { keyEncoding?: string; valueEncoding?: string; sync?: boolean }, callback?: (error?: any)=>any): void; + batch(array: Batch[], callback?: (error?: any)=>any): void; batch():LevelUpChain; isOpen():boolean; isClosed():boolean; From 446099f04a9e37009f4efa7a47da91c7787dd296 Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 14 Sep 2015 15:10:27 +0300 Subject: [PATCH 20/22] qs definitions --- qs/qs-tests.ts | 9 +++++++++ qs/qs.d.ts | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 qs/qs-tests.ts create mode 100644 qs/qs.d.ts diff --git a/qs/qs-tests.ts b/qs/qs-tests.ts new file mode 100644 index 000000000..04be4f266 --- /dev/null +++ b/qs/qs-tests.ts @@ -0,0 +1,9 @@ +/// + +import qs = require('qs'); + +qs.stringify({ a: 'b' }); +qs.stringify({ a: 'b', c: 'd' }, { delimiter: '&' }); + +qs.parse('a=b'); +qs.parse('a=b&c=d', { delimiter: '&' }); diff --git a/qs/qs.d.ts b/qs/qs.d.ts new file mode 100644 index 000000000..eea44a749 --- /dev/null +++ b/qs/qs.d.ts @@ -0,0 +1,35 @@ +// Type definitions for qs +// Project: https://github.com/hapijs/qs +// Definitions by: Roman Korneev +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module QueryString { + interface IStringifyOptions { + delimiter?: string; + strictNullHandling?: boolean; + skipNulls?: boolean; + encode?: boolean; + filter?: any; + arrayFormat?: any; + indices?: string; + } + + interface IParseOptions { + delimiter?: string; + depth?: number; + arrayLimit?: number; + parseArrays?: boolean; + allowDots?: boolean; + plainObjects?: boolean; + allowPrototypes?: boolean; + parameterLimit?: number; + strictNullHandling?: boolean; + } + + export function stringify(obj: any, options?: IStringifyOptions): string; + export function parse(str: string, options?: IParseOptions): any; +} + +declare module "qs" { + export = QueryString; +} From cc925de312d06d904d6100ed16b4c973afebeb37 Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 14 Sep 2015 15:16:57 +0300 Subject: [PATCH 21/22] qs definitions --- qs/qs.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qs/qs.d.ts b/qs/qs.d.ts index eea44a749..5889fae49 100644 --- a/qs/qs.d.ts +++ b/qs/qs.d.ts @@ -26,8 +26,8 @@ declare module QueryString { strictNullHandling?: boolean; } - export function stringify(obj: any, options?: IStringifyOptions): string; - export function parse(str: string, options?: IParseOptions): any; + function stringify(obj: any, options?: IStringifyOptions): string; + function parse(str: string, options?: IParseOptions): any; } declare module "qs" { From 072ab07618fbb8bee95f416ac3c81ec07381afd4 Mon Sep 17 00:00:00 2001 From: Bas Pennings Date: Mon, 14 Sep 2015 16:05:03 +0200 Subject: [PATCH 22/22] New definition files for level-sublevel --- level-sublevel/level-sublevel-tests.ts | 28 ++++++++++++++++++++++++++ level-sublevel/level-sublevel.d.ts | 24 ++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 level-sublevel/level-sublevel-tests.ts create mode 100644 level-sublevel/level-sublevel.d.ts diff --git a/level-sublevel/level-sublevel-tests.ts b/level-sublevel/level-sublevel-tests.ts new file mode 100644 index 000000000..9887dd70c --- /dev/null +++ b/level-sublevel/level-sublevel-tests.ts @@ -0,0 +1,28 @@ +/// + +import levelup = require('levelup'); +import sublevel = require('level-sublevel'); + +var db = sublevel(levelup('./tmp/sublevel-example')); +var sub = db.sublevel('stuff'); + +db.put('foo', 'bar', err => {}); + +sub.put('foo', 'bar', err => {}); + +db.pre((ch, add) => { + add({ + key: ''+Date.now(), + value: ch.key, + type: 'put', + prefix: sub + }) +}); + +var sub1 = db.sublevel('SUB_1'); +var sub2 = db.sublevel('SUM_2'); + +sub1.batch([ + { key: 'key', value: 'Value', type: 'put' }, + { key: 'key', value: 'Value', type: 'put', prefix: sub2 } +], err => { if (err) throw err; }); \ No newline at end of file diff --git a/level-sublevel/level-sublevel.d.ts b/level-sublevel/level-sublevel.d.ts new file mode 100644 index 000000000..969ada963 --- /dev/null +++ b/level-sublevel/level-sublevel.d.ts @@ -0,0 +1,24 @@ +// Type definitions for level-sublevel +// Project: https://github.com/dominictarr/level-sublevel +// Definitions by: Bas Pennings +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +interface Hook { + (ch: any, add: (op: Batch|boolean) => void): void; +} + +interface Batch { + prefix?: Sublevel; +} + +interface Sublevel extends LevelUp { + sublevel(key: string): Sublevel; + pre(hook: Hook): Function; +} + +declare module "level-sublevel" { + function sublevel(levelup: LevelUp): Sublevel; + export = sublevel; +} \ No newline at end of file