aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/nuldoc-src/components/StaticScript.ts
diff options
context:
space:
mode:
Diffstat (limited to 'services/nuldoc/nuldoc-src/components/StaticScript.ts')
-rw-r--r--services/nuldoc/nuldoc-src/components/StaticScript.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/services/nuldoc/nuldoc-src/components/StaticScript.ts b/services/nuldoc/nuldoc-src/components/StaticScript.ts
new file mode 100644
index 0000000..7df40fd
--- /dev/null
+++ b/services/nuldoc/nuldoc-src/components/StaticScript.ts
@@ -0,0 +1,20 @@
+import { join } from "@std/path";
+import { Config } from "../config.ts";
+import { elem, Element } from "../dom.ts";
+import { calculateFileHash } from "./utils.ts";
+
+export default async function StaticScript(
+ { fileName, type, defer, config }: {
+ fileName: string;
+ type?: string;
+ defer?: "true";
+ config: Config;
+ },
+): Promise<Element> {
+ const filePath = join(Deno.cwd(), config.locations.staticDir, 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 elem("script", attrs);
+}