Skip to content

Commit 1b30a9a

Browse files
Default to ./ when no <src> and support - as stdin
* See #347
1 parent 0b2b44a commit 1b30a9a

File tree

4 files changed

+36
-8
lines changed

4 files changed

+36
-8
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
"concat-stream": "^1.4.7",
8383
"core-js": "^0.4.3",
8484
"docopt": "^0.4.1",
85+
"event-stream": "^3.2.1",
8586
"glob": "^4.3.1",
8687
"glob2base": "0.0.12",
8788
"js-yaml": "^3.2.1",

src/cli.js

+25-5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Options:
2020
`;
2121

2222
const docopt = require('docopt').docopt;
23+
const es = require('event-stream');
24+
const vfs = require('vinyl-fs');
2325
const source = require('vinyl-source-stream');
2426
const pkg = require('../package.json');
2527
const Environment = require('./environment');
@@ -70,13 +72,31 @@ export default function cli(argv = process.argv.slice(2)) {
7072
}
7173

7274
if (!options['<src>'].length) {
73-
return process.stdin
74-
.pipe(source())
75-
.pipe(handler(env))
76-
.on('data', cb);
75+
options['<src>'].push('.')
7776
}
7877

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()
80100
}
81101

82102
/**

src/recurse.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const vfs = require('vinyl-fs');
1010
*/
1111
export default function recurse() {
1212
return through.obj(function (file, enc, cb) {
13-
if (file.isBuffer()) {
13+
if (file.isBuffer() || file.isStream()) {
1414
// Pass-through.
1515
return cb(null, file);
1616
}

src/sassdoc.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,20 @@ export default function sassdoc(...args) {
148148
onEmpty(data, env);
149149
});
150150

151+
let transform = pipe(
152+
recurse(),
153+
exclude(env.exclude || []),
154+
converter({ from: 'sass', to: 'scss' }),
155+
filter
156+
);
157+
151158
/* jshint ignore:start */
152159

153160
/**
154161
* Returned Promise await the full sequence,
155162
* instead of just the parsing step.
156163
*/
157-
filter.promise = new Promise((resolve, reject) => {
164+
transform.promise = new Promise((resolve, reject) => {
158165

159166
async function documentize() {
160167
try {
@@ -179,7 +186,7 @@ export default function sassdoc(...args) {
179186

180187
/* jshint ignore:end */
181188

182-
return filter;
189+
return transform;
183190
}
184191
}
185192

0 commit comments

Comments
 (0)