Skip to content
This repository was archived by the owner on Jun 24, 2024. It is now read-only.

Commit 89c0d07

Browse files
Walkerdigitalsadhu
authored andcommitted
style(reader): Fix lint issues
1 parent 2b02535 commit 89c0d07

File tree

4 files changed

+70
-67
lines changed

4 files changed

+70
-67
lines changed

lib/reader.js

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
const { Readable, PassThrough, Transform, Stream } = require('stream');
2-
const { stringify, parse } = require('JSONStream');
1+
'use strict';
2+
3+
const { Readable, PassThrough, Stream } = require('stream');
4+
const { parse } = require('JSONStream');
35
const mergeStream = require('merge-stream');
46
const { dedupe, sort, setOrder } = require('./util');
57
const assert = require('assert');
68

79
module.exports = class Reader extends Readable {
8-
constructor(streams) {
10+
constructor (streams) {
911
super();
1012

1113
assert(
@@ -20,13 +22,10 @@ module.exports = class Reader extends Readable {
2022

2123
assert(
2224
streams.every(stream => stream instanceof Stream),
23-
`Expected any/all arguments given to Reader constructor to be subclasses of Stream.`
25+
'Expected any/all arguments given to Reader constructor to be subclasses of Stream.'
2426
);
2527

26-
assert(
27-
streams.length,
28-
`Expected at least one stream to be provided to new Reader(). Got none.`
29-
);
28+
assert(streams.length, 'Expected at least one stream to be provided to new Reader(). Got none.');
3029

3130
const merged = mergeStream();
3231

@@ -74,7 +73,7 @@ module.exports = class Reader extends Readable {
7473
});
7574
}
7675

77-
_read(size) {
76+
_read () {
7877
return this.data.resume();
7978
}
8079
};

lib/util.js

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,32 @@
1+
'use strict';
2+
13
const { Transform } = require('stream');
24

3-
function compareByOrder(a, b) {
4-
if (a.order === b.order) return 0;
5+
function compareByOrder (a, b) {
6+
if (a.order === b.order) {
7+
return 0;
8+
}
59
return a.order > b.order ? 1 : -1;
610
}
711

812
class Dedupe extends Transform {
9-
constructor() {
13+
constructor () {
1014
super({
11-
objectMode: true
15+
objectMode: true,
1216
});
1317

1418
this.rows = new Map();
1519
}
1620

17-
_transform(chunk, enc, callback) {
21+
_transform (chunk, enc, callback) {
1822
if (chunk && chunk.id) {
1923
this.rows.set(chunk.id, chunk);
2024
}
2125

2226
callback();
2327
}
2428

25-
_flush(callback) {
29+
_flush (callback) {
2630
Array.from(this.rows.values())
2731
.sort(compareByOrder)
2832
.forEach(row => this.push(row));
@@ -31,37 +35,37 @@ class Dedupe extends Transform {
3135
}
3236

3337
class SetOrder extends Transform {
34-
constructor(index) {
38+
constructor (index) {
3539
super({
36-
objectMode: true
40+
objectMode: true,
3741
});
3842

3943
this.index = index;
4044
}
4145

42-
_transform(chunk, enc, callback) {
46+
_transform (chunk, enc, callback) {
4347
chunk.order = this.index;
4448
callback(null, chunk);
4549
}
4650
}
4751

4852
class Sort extends Transform {
49-
constructor() {
53+
constructor () {
5054
super({
51-
objectMode: true
55+
objectMode: true,
5256
});
5357

5458
this.rows = new Map();
5559
}
5660

57-
_transform(chunk, enc, callback) {
61+
_transform (chunk, enc, callback) {
5862
if (chunk && chunk.order != null) {
5963
this.rows.set(chunk.order, chunk);
6064
}
6165
callback();
6266
}
6367

64-
_flush(callback) {
68+
_flush (callback) {
6569
Array.from(this.rows.values())
6670
.sort(compareByOrder)
6771
.forEach(row => this.push(row));
@@ -70,14 +74,14 @@ class Sort extends Transform {
7074
}
7175

7276
module.exports = {
73-
dedupe() {
77+
dedupe () {
7478
return new Dedupe();
7579
},
76-
setOrder(index) {
80+
setOrder (index) {
7781
return new SetOrder(index);
7882
},
79-
sort() {
83+
sort () {
8084
return new Sort();
8185
},
82-
compareByOrder
86+
compareByOrder,
8387
};

package-lock.json

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/reader.test.js

Lines changed: 26 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
'use strict';
2+
3+
/* global test, expect */
4+
15
const Reader = require('../');
26
const SinkFs = require('asset-pipe-sink-fs');
37
const path = require('path');
48
const { sort, dedupe, compareByOrder } = require('../lib/util');
59
const { Readable, PassThrough } = require('stream');
610

7-
function createSlowStream(sink, filePath, timeout = 1000) {
11+
function createSlowStream (sink, filePath, timeout = 1000) {
812
const myStream = new PassThrough();
913

1014
process.nextTick(() => myStream.emit('file found', filePath));
@@ -19,7 +23,7 @@ function createSlowStream(sink, filePath, timeout = 1000) {
1923
test('new Reader(stream) single feedStream', done => {
2024
expect.assertions(1);
2125
const sink = new SinkFs({
22-
path: path.join(__dirname, './test-assets')
26+
path: path.join(__dirname, './test-assets'),
2327
});
2428
const feedStream = sink.reader('a.json');
2529

@@ -38,7 +42,7 @@ test('new Reader(stream) single feedStream', done => {
3842
test('new Reader([stream1, stream2]) mulitple feedStreams merged', done => {
3943
expect.assertions(4);
4044
const sink = new SinkFs({
41-
path: path.join(__dirname, './test-assets')
45+
path: path.join(__dirname, './test-assets'),
4246
});
4347
const feedStream1 = sink.reader('a.json');
4448
const feedStream2 = sink.reader('b.json');
@@ -61,15 +65,15 @@ test('new Reader([stream1, stream2]) mulitple feedStreams merged', done => {
6165
test('Dedupe of identical hashes occurs', done => {
6266
expect.assertions(1);
6367
const sink = new SinkFs({
64-
path: path.join(__dirname, './test-assets')
68+
path: path.join(__dirname, './test-assets'),
6569
});
6670
const feedStream1 = sink.reader('a.json');
6771
const feedStream2 = sink.reader('d.json');
6872

6973
const reader = new Reader([feedStream1, feedStream2]);
7074

7175
reader.on('pipeline ready', () => {
72-
let bundle = [];
76+
const bundle = [];
7377
reader.on('data', data => bundle.push(data.toString()));
7478
reader.on('end', () => {
7579
expect(bundle.length).toBe(1);
@@ -81,7 +85,7 @@ test('Dedupe of identical hashes occurs', done => {
8185
test('Event: file found', done => {
8286
expect.assertions(1);
8387
const sink = new SinkFs({
84-
path: path.join(__dirname, './test-assets')
88+
path: path.join(__dirname, './test-assets'),
8589
});
8690
const feedStream = sink.reader('a.json');
8791
const reader = new Reader(feedStream);
@@ -97,7 +101,7 @@ test('Event: file found', done => {
97101
test('Event: file not found single stream', done => {
98102
expect.assertions(1);
99103
const sink = new SinkFs({
100-
path: path.join(__dirname, './test-assets')
104+
path: path.join(__dirname, './test-assets'),
101105
});
102106
const feedStream = sink.reader('does-not-exist.json');
103107
const reader = new Reader(feedStream);
@@ -114,7 +118,7 @@ test('Event: file not found single stream', done => {
114118
test('Event: file not found multiple streams', done => {
115119
expect.assertions(2);
116120
const sink = new SinkFs({
117-
path: path.join(__dirname, './test-assets')
121+
path: path.join(__dirname, './test-assets'),
118122
});
119123
const feedStream1 = sink.reader('a.json');
120124
const feedStream2 = sink.reader('does-not-exist.json');
@@ -135,7 +139,7 @@ test('Event: file not found multiple streams', done => {
135139
test('Event: parse error', done => {
136140
expect.assertions(1);
137141
const sink = new SinkFs({
138-
path: path.join(__dirname, './test-assets')
142+
path: path.join(__dirname, './test-assets'),
139143
});
140144
const feedStream = sink.reader('invalid-json.json');
141145
const reader = new Reader(feedStream);
@@ -180,14 +184,14 @@ test('SortAndDedupe() rows without id value dropped', done => {
180184
const values = [{ id: 'asd' }, { x: '' }, { id: 'sdf' }];
181185
const stream = new Readable({
182186
objectMode: true,
183-
read() {
187+
read () {
184188
if (values.length === 0) {
185189
this.push(null);
186190
return;
187191
}
188192
const value = values.shift();
189193
this.push(value);
190-
}
194+
},
191195
});
192196
const buffer = [];
193197
stream
@@ -202,27 +206,20 @@ test('SortAndDedupe() rows without id value dropped', done => {
202206
test('new Reader([s1,s2,s3,s4]) ensure dedupe and correct css concat order', done => {
203207
expect.assertions(3);
204208
const sink = new SinkFs({
205-
path: path.join(__dirname, './test-assets')
209+
path: path.join(__dirname, './test-assets'),
206210
});
207211
const feedStream1 = sink.reader('a.json');
208212
const feedStream2 = sink.reader('b.json');
209213
const feedStream3 = sink.reader('c.json');
210214
const feedStream4 = sink.reader('d.json');
211215

212-
const reader = new Reader([
213-
feedStream1,
214-
feedStream2,
215-
feedStream3,
216-
feedStream4
217-
]);
216+
const reader = new Reader([feedStream1, feedStream2, feedStream3, feedStream4]);
218217

219218
reader.on('pipeline ready', () => {
220-
let bundle = [];
219+
const bundle = [];
221220
reader.on('data', data => bundle.push(data.toString()));
222221
reader.on('end', () => {
223-
expect(bundle[0]).toBe(
224-
'/* my-module-3/main.css */\n\n/* my-module-3/dep.css */\n\n/* dep/main.css */\n'
225-
);
222+
expect(bundle[0]).toBe('/* my-module-3/main.css */\n\n/* my-module-3/dep.css */\n\n/* dep/main.css */\n');
226223
expect(bundle[1]).toBe('/* my-module-2/main.css */\n');
227224
expect(bundle[2]).toBe('/* my-module-1/main.css */\n');
228225
done();
@@ -233,28 +230,21 @@ test('new Reader([s1,s2,s3,s4]) ensure dedupe and correct css concat order', don
233230
test('new Reader([s1,s2,s3,s4]) operates correctly under slow speed conditions', done => {
234231
expect.assertions(3);
235232
const sink = new SinkFs({
236-
path: path.join(__dirname, './test-assets')
233+
path: path.join(__dirname, './test-assets'),
237234
});
238235

239236
const feedStream1 = createSlowStream(sink, 'a.json', 800);
240237
const feedStream2 = sink.reader('b.json');
241238
const feedStream3 = createSlowStream(sink, 'c.json', 500);
242239
const feedStream4 = createSlowStream(sink, 'd.json', 100);
243240

244-
const reader = new Reader([
245-
feedStream1,
246-
feedStream2,
247-
feedStream3,
248-
feedStream4
249-
]);
241+
const reader = new Reader([feedStream1, feedStream2, feedStream3, feedStream4]);
250242

251243
reader.on('pipeline ready', () => {
252-
let bundle = [];
244+
const bundle = [];
253245
reader.on('data', data => bundle.push(data.toString()));
254246
reader.on('end', () => {
255-
expect(bundle[0]).toBe(
256-
'/* my-module-3/main.css */\n\n/* my-module-3/dep.css */\n\n/* dep/main.css */\n'
257-
);
247+
expect(bundle[0]).toBe('/* my-module-3/main.css */\n\n/* my-module-3/dep.css */\n\n/* dep/main.css */\n');
258248
expect(bundle[1]).toBe('/* my-module-2/main.css */\n');
259249
expect(bundle[2]).toBe('/* my-module-1/main.css */\n');
260250
done();
@@ -269,21 +259,16 @@ test('compareByOrder(a, b) a and b are the same', () => {
269259

270260
test('sort() transform operating on stream items without order property', done => {
271261
expect.assertions(1);
272-
const items = [
273-
{ order: 1 },
274-
{ order: null },
275-
{ order: undefined },
276-
{ noOrder: 'hi' }
277-
];
262+
const items = [{ order: 1 }, { order: null }, { order: undefined }, { noOrder: 'hi' }];
278263
const stream = new Readable({
279264
objectMode: true,
280-
read() {
265+
read () {
281266
if (!items.length) {
282267
this.push(null);
283268
return;
284269
}
285270
this.push(items.shift());
286-
}
271+
},
287272
});
288273

289274
const buffer = [];

0 commit comments

Comments
 (0)