({ fs, middlewares = [] }: { fs: Fs; middlewares?: Middleware[] })
| 147 | } |
| 148 | |
| 149 | export function createFsHandler({ fs, middlewares = [] }: { fs: Fs; middlewares?: Middleware[] }) { |
| 150 | return async (request: RequestData) => { |
| 151 | // @ts-ignore |
| 152 | const ctx: MiddlewareContext = { |
| 153 | fs, |
| 154 | filename: request.preload.filename, |
| 155 | getContent: robust(async () => await pify(fs.readFile)(request.preload.filename, 'utf8'), { |
| 156 | once: true |
| 157 | }) |
| 158 | } |
| 159 | |
| 160 | return await waterFall( |
| 161 | [apiMiddle(middlewares)].concat(middlewares).concat((data, ctx) => { |
| 162 | if (ctx.lineContents.isDirty) { |
| 163 | return ctx.writeFile(ctx.lineContents.toString()) |
| 164 | } |
| 165 | }), |
| 166 | [request, ctx] |
| 167 | ) |
| 168 | } |
| 169 | } |
| 170 | |
| 171 | export * from './utils/line-contents' |
no test coverage detected