import { Plugin } from "$fresh/server.ts";
export interface Options { priority?: boolean origins?: string[] timeout?: number throttle?: number threshold?: number limit?: number delay?: number prerender?: boolean prerenderAndPrefetch?: boolean};
const prefetch = (options: Options = { throttle: 10}): Plugin => { const main = `data:application/javascript, import { listen } from "https://esm.sh/quicklink@2.3.0";
export default function(options) { if (document.readyState === "complete" || document.readyState === "loaded" || document.readyState === "interactive") { listen(options); } else { document.addEventListener("DOMContentLoaded", () => listen(options)); } };`
return { name: 'prefetch', entrypoints: { main }, render: (ctx) => { ctx.render()
return { scripts: [{ entrypoint: 'main', state: options }] } } }}
export default prefetch