1.2.8 โข Published 5 months ago
@dschz/solid-create-script v1.2.8
@dschz/solid-create-script
SolidJS hook to load external scripts -- built on top of
@dschz/load-script
.
โ Features
- ๐ Fully typed with TypeScript
- โ๏ธ Built on top of
@dschz/load-script
inheriting all the same features. - ๐ Declarative async tracking via Solid's
createResource
๐ฆ Installation
npm install solid-js @dschz/load-script @dschz/solid-create-script
pnpm install solid-js @dschz/load-script @dschz/solid-create-script
yarn install solid-js @dschz/load-script @dschz/solid-create-script
bun install solid-js @dschz/load-script @dschz/solid-create-script
These are peer dependencies, so you must install:
solid-js
@dschz/load-script
๐ง API
createScript(src, options?, container?)
Loads an external script dynamically and returns a Resource<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 ) |
๐งช Example
import { Switch, Match } from "solid-js";
import { createScript } from "@dschz/solid-create-script";
const CustomComponent = () => {
const script = createScript("https://example.com/widget.js", { async: true });
return (
<Switch>
<Match when={script.loading}>Loading Script...</Match>
<Match when={script.error}>Failed to load</Match>
<Match when={script()}>Script is ready!</Match>
</Switch>
);
};
๐ Notes
- Scripts are cached by
src
unlessinnerHTML
ortextContent
is used - Scripts are not automatically removed on cleanup/unmount
- Designed to be simple and safe to use inside SolidJS components (in SSR and non-SSR environments)
๐ฌ Feedback & Contributions
Feel free to open issues or submit pull requests. PRs are welcome!