1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| import path from "path"
| import fs from "fs"
| import { BuildCtx } from "../../util/ctx"
| import { FilePath, FullSlug, joinSegments } from "../../util/path"
| import { Readable } from "stream"
|
| type WriteOptions = {
| ctx: BuildCtx
| slug: FullSlug
| ext: `.${string}` | ""
| content: string | Buffer | Readable
| }
|
| export const write = async ({ ctx, slug, ext, content }: WriteOptions): Promise<FilePath> => {
| const pathToPage = joinSegments(ctx.argv.output, slug + ext) as FilePath
| const dir = path.dirname(pathToPage)
| await fs.promises.mkdir(dir, { recursive: true })
| await fs.promises.writeFile(pathToPage, content)
| return pathToPage
| }
|
|