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;