1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| import { FilePath, QUARTZ, joinSegments } from "../../util/path"
| import { QuartzEmitterPlugin } from "../types"
| import fs from "fs"
| import { glob } from "../../util/glob"
| import DepGraph from "../../depgraph"
|
| export const Static: QuartzEmitterPlugin = () => ({
| name: "Static",
| async getDependencyGraph({ argv, cfg }, _content, _resources) {
| const graph = new DepGraph<FilePath>()
|
| const staticPath = joinSegments(QUARTZ, "static")
| const fps = await glob("**", staticPath, cfg.configuration.ignorePatterns)
| for (const fp of fps) {
| graph.addEdge(
| joinSegments("static", fp) as FilePath,
| joinSegments(argv.output, "static", fp) as FilePath,
| )
| }
|
| return graph
| },
| async emit({ argv, cfg }, _content, _resources): Promise<FilePath[]> {
| const staticPath = joinSegments(QUARTZ, "static")
| const fps = await glob("**", staticPath, cfg.configuration.ignorePatterns)
| await fs.promises.cp(staticPath, joinSegments(argv.output, "static"), {
| recursive: true,
| dereference: true,
| })
| return fps.map((fp) => joinSegments(argv.output, "static", fp)) as FilePath[]
| },
| })
|
|