aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/nuldoc-src/components/StaticScript.ts
blob: 1a3431a37a631426c548650be9fd0bc6fe2c82e1 (plain)
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
import { join } from "@std/path";
import { Config } from "../config.ts";
import { Element, script } from "../dom.ts";
import { calculateFileHash } from "./utils.ts";

export default async function StaticScript(
  { site, fileName, type, defer, config }: {
    site?: string;
    fileName: string;
    type?: string;
    defer?: "true";
    config: Config;
  },
): Promise<Element> {
  const filePath = join(
    Deno.cwd(),
    config.locations.staticDir,
    site || "_all",
    fileName,
  );
  const hash = await calculateFileHash(filePath);
  const attrs: Record<string, string> = { src: `${fileName}?h=${hash}` };
  if (type) attrs.type = type;
  if (defer) attrs.defer = defer;
  return script(attrs);
}