File tree 5 files changed +44
-14
lines changed
5 files changed +44
-14
lines changed Original file line number Diff line number Diff line change @@ -23,9 +23,10 @@ test: test/data/expected.stream.json dist
23
23
mocha test/env/* .test.js test/utils/* .test.js
24
24
rm -rf sassdoc && $(MOCHA ) test/api/* .test.js
25
25
$(SASSDOC ) --parse test/data/test.scss | diff - test/data/expected.json
26
- $(SASSDOC ) --parse < test/data/test.scss | diff - test/data/expected.stream.json
26
+ $(SASSDOC ) --parse - < test/data/test.scss | diff - test/data/expected.stream.json
27
+ cd test/data && $(SASSDOC ) --parse | diff - expected.json
27
28
rm -rf sassdoc && $(SASSDOC ) test/data/test.scss && [ -d sassdoc ]
28
- rm -rf sassdoc && $(SASSDOC ) < test/data/test.scss && [ -d sassdoc ]
29
+ rm -rf sassdoc && $(SASSDOC ) - < test/data/test.scss && [ -d sassdoc ]
29
30
30
31
test/data/expected.stream.json : test/data/expected.json
31
32
test/data/stream $< > $@
Original file line number Diff line number Diff line change 82
82
"concat-stream" : " ^1.4.7" ,
83
83
"core-js" : " ^0.4.3" ,
84
84
"docopt" : " ^0.4.1" ,
85
+ "event-stream" : " ^3.2.1" ,
85
86
"glob" : " ^4.3.1" ,
86
87
"glob2base" : " 0.0.12" ,
87
88
"js-yaml" : " ^3.2.1" ,
Original file line number Diff line number Diff line change @@ -20,6 +20,8 @@ Options:
20
20
` ;
21
21
22
22
const docopt = require ( 'docopt' ) . docopt ;
23
+ const es = require ( 'event-stream' ) ;
24
+ const vfs = require ( 'vinyl-fs' ) ;
23
25
const source = require ( 'vinyl-source-stream' ) ;
24
26
const pkg = require ( '../package.json' ) ;
25
27
const Environment = require ( './environment' ) ;
@@ -70,13 +72,31 @@ export default function cli(argv = process.argv.slice(2)) {
70
72
}
71
73
72
74
if ( ! options [ '<src>' ] . length ) {
73
- return process . stdin
74
- . pipe ( source ( ) )
75
- . pipe ( handler ( env ) )
76
- . on ( 'data' , cb ) ;
75
+ options [ '<src>' ] . push ( '.' ) ;
77
76
}
78
77
79
- handler ( options [ '<src>' ] , env ) . then ( cb ) ;
78
+ let stdin = false ;
79
+
80
+ let sources = vfs . src ( options [ '<src>' ] . filter ( x => {
81
+ if ( x === '-' ) {
82
+ stdin = true ;
83
+ return false ;
84
+ }
85
+
86
+ return true ;
87
+ } ) ) ;
88
+
89
+ if ( stdin ) {
90
+ sources = es . merge (
91
+ process . stdin . pipe ( source ( ) ) ,
92
+ sources
93
+ ) ;
94
+ }
95
+
96
+ let stream = handler ( env ) ;
97
+ stream . promise . then ( cb ) ;
98
+
99
+ sources . pipe ( stream ) . resume ( ) ;
80
100
}
81
101
82
102
/**
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ const vfs = require('vinyl-fs');
10
10
*/
11
11
export default function recurse ( ) {
12
12
return through . obj ( function ( file , enc , cb ) {
13
- if ( file . isBuffer ( ) ) {
13
+ if ( file . isBuffer ( ) || file . isStream ( ) ) {
14
14
// Pass-through.
15
15
return cb ( null , file ) ;
16
16
}
Original file line number Diff line number Diff line change @@ -34,10 +34,17 @@ export function parseFilter(env = {}) {
34
34
let parser = new Parser ( env , env . theme && env . theme . annotations ) ;
35
35
let filter = parser . stream ( ) ;
36
36
37
- filter . promise
37
+ let transform = pipe (
38
+ recurse ( ) ,
39
+ exclude ( env . exclude || [ ] ) ,
40
+ converter ( { from : 'sass' , to : 'scss' } ) ,
41
+ filter
42
+ ) ;
43
+
44
+ transform . promise = filter . promise
38
45
. then ( data => sorter ( data ) ) ;
39
46
40
- return filter ;
47
+ return transform ;
41
48
}
42
49
43
50
/**
@@ -199,9 +206,7 @@ export function parse(...args) { // jshint ignore:line
199
206
* @return {Promise }
200
207
*/
201
208
async function documentize ( env ) {
202
- let data = await baseDocumentize ( env ) ;
203
-
204
- return data ;
209
+ return await baseDocumentize ( env ) ;
205
210
}
206
211
207
212
/* jshint ignore:end */
@@ -220,7 +225,10 @@ export function parse(...args) { // jshint ignore:line
220
225
} , cb ) ;
221
226
} ) ;
222
227
223
- return pipe ( parse , filter ) ;
228
+ let transform = pipe ( parse , filter ) ;
229
+ transform . promise = parse . promise ;
230
+
231
+ return transform ;
224
232
}
225
233
}
226
234
You can’t perform that action at this time.
0 commit comments