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