diff options
Diffstat (limited to 'services/nuldoc/nuldoc-src/components/StaticScript.ts')
| -rw-r--r-- | services/nuldoc/nuldoc-src/components/StaticScript.ts | 20 |
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); +} |
