From ddef2004bc26a72452a8ccd50f00741ad955e2ca Mon Sep 17 00:00:00 2001 From: Edward Hinkle Date: Thu, 9 Mar 2017 23:31:52 -0800 Subject: [PATCH] xml2js - Prevent error when using Parser's event emitter (#14884) * Make Parser extend event emitter Fixing error: error TS2339: Property 'on' does not exist on type 'Parser'. * Update authorship * Add test for event emitter --- xml2js/index.d.ts | 6 ++++-- xml2js/xml2js-tests.ts | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/xml2js/index.d.ts b/xml2js/index.d.ts index 6dd10acce4..12d2488cbe 100644 --- a/xml2js/index.d.ts +++ b/xml2js/index.d.ts @@ -1,12 +1,14 @@ // Type definitions for node-xml2js // Project: https://github.com/Leonidas-from-XIV/node-xml2js -// Definitions by: Michel Salib , Jason McNeil , Christopher Currens +// Definitions by: Michel Salib , Jason McNeil , Christopher Currens , Edward Hinkle // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// export = xml2js; +import * as events from 'events' + declare namespace xml2js { function parseString(xml: convertableToString, callback: (err: any, result: any) => void): void; function parseString(xml: convertableToString, options: OptionsV2, callback: (err: any, result: any) => void): void; @@ -21,7 +23,7 @@ declare namespace xml2js { buildObject(rootObj: any): string; } - class Parser { + class Parser extends events.EventEmitter { constructor(options?: OptionsV2); parseString(str: convertableToString, cb?: Function): void; reset(): void; diff --git a/xml2js/xml2js-tests.ts b/xml2js/xml2js-tests.ts index 62324b6908..8ee7b7ce25 100644 --- a/xml2js/xml2js-tests.ts +++ b/xml2js/xml2js-tests.ts @@ -69,6 +69,11 @@ var outString = builder.buildObject({ var parser = new xml2js.Parser(); +parser.on('end', (result: any) => { + console.log("Parser Finished"); + return; +}); + var v1Defaults = xml2js.defaults['0.1']; v1Defaults.async = true;