1.0.9 • Published 5 months ago
@dschz/load-script v1.0.9
@dschz/load-script
A lightweight utility for safely loading external scripts in the browser. Fully typed, SSR-aware, framework-agnostic, and caching-safe — ideal for modern web apps and libraries.
✅ Features
- 📆 Small and framework-agnostic
- 📑 Fully typed with TypeScript for autocompletion and safety
- 🚫 Prevents duplicate script injection via internal cache
- 🛡️ Safe to import and use in SSR and non-browser environments
📦 Installation
npm install @dschz/load-script
pnpm install @dschz/load-script
yarn install @dschz/load-script
bun install @dschz/load-script🔧 Usage
import { loadScript } from "@dschz/load-script";
await loadScript("https://example.com/library.js", {
async: true,
type: "text/javascript",
});🧠 API
loadScript(src, options?, container?)
Loads an external script dynamically and returns a Promise<HTMLScriptElement>.
Parameters:
| Name | Type | Description |
|---|---|---|
src | string | Script URL (required) |
options | LoadScriptOptions | loadScript options (e.g. async, type) |
container | HTMLElement | HTML element to append <script /> to (default: document.head) |
📝 Notes
- Scripts are cached by
src. IfinnerHTMLortextContentis set, the script will not be cached. - A nil (
undefined/null) container value will append the script todocument.head. - Cleanup is not automatic — script elements remain in the DOM
- ❄️ SSR-safe: The function will reject gracefully when called in server environments without crashing. No DOM APIs are accessed until the environment is confirmed to be browser-based.
💬 Feedback & Contributions
Feel free to open issues or submit pull requests. PRs are welcome!