Skip to content

Commit 5c3ecca

Browse files
author
pemrouz
committed
fix: always unwrap streams
Since awaiting a promising recursively unwraps it, returning a stream from an async function will attempt to wait the first value of the stream, hence we need to unpromisify when the return value of a handler is Promise<Stream>
1 parent 5b0f2f5 commit 5c3ecca

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

server.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@ const xres = async (ripple, req, res) => {
3535
const resource = ripple.resources[req.data.name]
3636
, { from = noop } = resource.headers
3737

38-
return from(req, res)
38+
return unpromise(from(req, res))
3939
}
4040

41+
const unpromise = d => (d && d.next ? d.unpromise() : d)
42+
4143
const subscribe = (ripple, req, res) => ripple
4244
.on('change')
4345
.on('start', () => {
@@ -78,9 +80,7 @@ const upload = async (ripple, req, res) => {
7880
const subset = (target = '') => (source = '') => source.startsWith(target)
7981

8082
const by = require('utilise/by')
81-
, is = require('utilise/is')
8283
, key = require('utilise/key')
8384
, noop = require('utilise/noop')
84-
, header = require('utilise/header')
8585
, emitterify = require('utilise/emitterify')
8686
, nametype = (name, type) => `(${name ? name + ', ' : ''}${type ? type : ''})`

0 commit comments

Comments
 (0)