Skip to content

Commit ca92f26

Browse files
committed
Make Lexer a transform stream
1 parent 47ac663 commit ca92f26

File tree

2 files changed

+9
-13
lines changed

2 files changed

+9
-13
lines changed

moo.js

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -271,22 +271,18 @@
271271
this.stack = []
272272
this.setState(state)
273273
this.reset()
274+
if (Transform) Transform.call(this, {readableObjectMode: true})
274275
}
275276

276277
if (typeof module !== 'undefined' && module.exports) {
277278
var Transform = require('stream').Transform
279+
require('util').inherits(Lexer, Transform)
278280

279-
Lexer.prototype.stream = function(state) {
280-
var self = this.reset('', state)
281-
return new Transform({
282-
readableObjectMode: true,
283-
transform(chunk, encoding, cb) {
284-
self.feed(chunk.toString())
285-
var token
286-
while (token = self.next()) this.push(token)
287-
cb()
288-
}
289-
})
281+
Lexer.prototype._transform = function(chunk, encoding, cb) {
282+
this.feed(chunk.toString())
283+
var token
284+
while (token = this.next()) this.push(token)
285+
cb()
290286
}
291287
}
292288

test/test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ describe('streams', () => {
491491
let index = 0
492492
expect.assertions(tokens.length)
493493

494-
const s = lexer.stream()
494+
const s = lexer.clone()
495495
s.write(inputs[0])
496496
s.end(inputs[1])
497497

@@ -528,7 +528,7 @@ describe('streams', () => {
528528
})
529529

530530
rs
531-
.on('error', reject).pipe(lexer.stream())
531+
.on('error', reject).pipe(lexer.clone())
532532
.on('error', reject).pipe(ws)
533533
.on('error', reject)
534534
.on('finish', resolve)

0 commit comments

Comments
 (0)