@pageloop/loader
v0.6.1
Published
A tiny (~2 KB gz) auto-updating loader shim for the [PageLoop](https://github.com/rw3iss/pageloop) widget. You embed **this** one small script; on every page load it fetches the current widget bundle's manifest from your server, injects the right JS + CSS
Readme
@pageloop/loader
A tiny (~2 KB gz) auto-updating loader shim for the
PageLoop widget. You embed this one
small script; on every page load it fetches the current widget bundle's manifest
from your server, injects the right JS + CSS, and calls PageLoop.init() for
you. If a new bundle ever fails to boot, it silently rolls back to the
last-known-good version — so embedders never re-paste a tag to stay current.
This is the recommended script-tag install for sites whose HTML you can edit.
It's served by your PageLoop server, so you don't install it from npm — you
point a <script> at it.
Integrate (in your page <head>)
<script
src="https://your-pageloop-server.com/cdn/loader/pageloop-loader.js"
data-project="your-project-slug"
data-endpoint="https://your-pageloop-server.com"
data-channel="latest"
async
></script>That's it — the toolbar appears on load and users sign in from it. The loader injects the widget's CSS too, so there's no separate stylesheet to add.
Attributes
| attribute | required | notes |
|---|---|---|
| data-project | ✓ | Your project slug (from the project dashboard). |
| data-endpoint | ✓ | Your PageLoop server origin. |
| data-channel | | Update track. latest (default) = newest release; 0.3 = patch-only on that minor; 0.3.1 = pinned exact version. |
| async | | Recommended — the loader is DOM-ready-safe and won't block paint. |
How updates work
The loader reads <endpoint>/cdn/<channel>/manifest.json, injects the published
bundle (ESM with dynamic-import chunks where supported, else the UMD fallback),
and boots it. On any failure (manifest 404, script load error, init throw) it
falls back to a lastGood bundle saved in localStorage and surfaces a toast.
Diagnostics land in localStorage.pageloop.loader.lastError.
Prefer to manage the bundle version yourself or forbid the runtime fetch via CSP? Use the pinned UMD tag from
@pageloop/vanillainstead — at the cost of manual updates.
