export type Loader = () => Promise export const onceLoader = (loader: Loader): Loader => { let cache: T | undefined return async () => { if (cache === undefined) { cache = await loader() } return cache } } // import type * as NodeFs from "node:fs" // export type { NodeFs } // export type NodeFsModule = typeof import("node:fs") // export const loadNodeFs: Loader = onceLoader(async () => { // const specifier = "node:fs" // const fs = await import(/* @vite-ignore */specifier) // return fs as NodeFsModule // }) // import type * as NodePath from "node:path" // export type { NodePath } // export type NodePathModule = typeof import("node:path") // export const loadNodePath: Loader = onceLoader(async () => { // const specifier = "node:path" // const path = await import(/* @vite-ignore */specifier) // return path as NodePathModule // }) // import type * as NodeStreamWeb from "node:stream/web" // export type { NodeStreamWeb } // export type NodeStreamWebModule = typeof import("node:stream/web") // export const loadNodeStreamWeb: Loader = onceLoader(async () => { // const specifier = "node:stream/web" // const streamWeb = await import(/* @vite-ignore */specifier) // return streamWeb as NodeStreamWebModule // }) // import type * as Dotenvx from "@dotenvx/dotenvx" // export type { Dotenvx } // export type DotenvxModule = typeof import("@dotenvx/dotenvx") // export const loadDotenvx: Loader = onceLoader(async () => { // const specifier = "@dotenvx/dotenvx" // const dotenvx = await import(/* @vite-ignore */specifier) // return dotenvx as DotenvxModule // })