Streaming
import { r, combineRoutes, use } from '@marblejs/core';
import { requestValidator$, t } from '@marblejs/middleware-io';
import { readFile } from '@marblejs/core/dist/+internal';
const getFileValidator$ = requestValidator$({
params: t.type({ dir: t.string })
});
const getFile$ = r.pipe(
r.matchPath('/static/:dir*'),
r.matchType('GET'),
r.useEffect(req$ => req$.pipe(
use(getFileValidator$),
map(req => req.params.dir),
map(dir => fs.createReadStream(path.resolve(STATIC_PATH, dir))),
map(body => ({ body }))
)),
);Last updated