From ad5d418705e1bfa32dcaf53fdaadfbf51d369857 Mon Sep 17 00:00:00 2001 From: Sam Saint-Pettersen Date: Mon, 16 Nov 2015 15:51:18 +0000 Subject: [PATCH 1/2] Create line-reader.d.ts --- line-reader/line-reader.d.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 line-reader/line-reader.d.ts diff --git a/line-reader/line-reader.d.ts b/line-reader/line-reader.d.ts new file mode 100644 index 000000000..f744dec6f --- /dev/null +++ b/line-reader/line-reader.d.ts @@ -0,0 +1,27 @@ +// Type definitions for line-reader +// Project: https://github.com/nickewing/line-reader +// Definitions by: Sam Saint-Pettersen +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +interface LineReaderOptions { + separator?: any; + encoding?: string; + bufferSize?: number; +} + +interface LineReader { + eachLine(): Function; // For Promise.promisify; + open(): Function; + eachLine(file: string, cb: (line: string, last?: boolean, cb?: Function) => void): LineReader; + eachLine(file: string, options: LineReaderOptions, cb: (line: string, last?: boolean, cb?: Function) => void): LineReader; + open(file: string, cb: (err: Error, reader: LineReader) => void): void; + open(file: string, options: LineReaderOptions, cb: (err: Error, reader: LineReader) => void): void; + hasNextLine(): boolean; + nextLine(cb: (err: Error, line: string) => void): void; + close(cb: (err: Error) => void): void; +} + +declare module "line-reader" { + var lr: LineReader; + export = lr; +} From 368e75f7436ce738c587416855b9e0f52c5b5e27 Mon Sep 17 00:00:00 2001 From: Sam Saint-Pettersen Date: Mon, 16 Nov 2015 15:52:32 +0000 Subject: [PATCH 2/2] Create line-reader-tests.ts --- line-reader/line-reader-tests.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 line-reader/line-reader-tests.ts diff --git a/line-reader/line-reader-tests.ts b/line-reader/line-reader-tests.ts new file mode 100644 index 000000000..4d6ce4246 --- /dev/null +++ b/line-reader/line-reader-tests.ts @@ -0,0 +1,29 @@ +/// + +import lineReader = require('line-reader'); + +lineReader.open('line-reader-tests.ts', function(err: Error, reader: LineReader) { + if (err) throw err; + if (reader.hasNextLine()) { + try { + reader.nextLine(function(err: Error, line: string) { + if (err) throw err; + console.log(line); + }); + } finally { + reader.close(function(err: Error) { + if (err) throw err; + }) + } + } + else { + reader.close(function(err: Error) { + if (err) throw err; + }); + } +}); + +lineReader.eachLine('line-reader.d.ts', {encoding: 'utf8'}, function(line: string, last: boolean) { + console.log(line); + if (last) console.log(''); +});