Skip to content

Repository files navigation

solid-create-script

@dschz/solid-create-script

LicensenpmBundle SizeJSRCI

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:

NameTypeDescription
srcstringScript URL (required)
optionsLoadScriptOptionsloadScript options (e.g. async, type)
containerHTMLElementHTML element to append <script /> to (default: document.head)

🧪 Example

import{Switch,Match}from"solid-js";import{createScript}from"@dschz/solid-create-script";constCustomComponent=()=>{constscript=createScript("https://example.com/widget.js",{async: true});return(<Switch><Matchwhen={script.loading}>LoadingScript...</Match><Matchwhen={script.error}>Failedtoload</Match><Matchwhen={script()}>Scriptisready!</Match></Switch>);};

📝 Notes

  • Scripts are cached by src unless innerHTML or textContent 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!

About

Solid hook to dynamically load an external script

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages