Skip to content

feat(scan): support data-options config on auto.global.js script tag#442

Draft
Debbl wants to merge 1 commit into
aidenybai:mainfrom
Debbl:feat/auto-script-data-options
Draft

feat(scan): support data-options config on auto.global.js script tag#442
Debbl wants to merge 1 commit into
aidenybai:mainfrom
Debbl:feat/auto-script-data-options

Conversation

@Debbl

@Debbl Debbl commented May 8, 2026

Copy link
Copy Markdown

Add a data-options JSON attribute on auto.global.js so CDN users can configure react-scan declaratively, no separate init script needed:

<script src=".../auto.global.js" data-options='{"enabled":false}'></script>

Same pattern as react-grab's getScriptOptions — read at module top-level via document.currentScript, JSON-parsed in a try/catch.

Authored with AI assistance (Claude Code), human-reviewed.

Read configuration from a `data-options` JSON attribute on the loading
<script> tag so CDN users can configure react-scan declaratively without
an extra init script. Mirrors react-grab's `getScriptOptions` pattern:
parse synchronously at module top-level so `document.currentScript`
still resolves, guard with `instanceof HTMLScriptElement`, and wrap
JSON.parse in try/catch.

Use an explicit allowlist with per-field type validation rather than
spreading parsed JSON, so internal flags like `_debug` or
`dangerouslyForceRunInProduction` cannot be injected through HTML.

Currently allowlists only `enabled`. The JSON shape is preserved over a
`data-enabled` shortcut so future fields can be added with one
allowlist line as their localStorage interaction is vetted.

Usage:
  <script src=".../auto.global.js" data-options='{"enabled":false}'></script>

Existing localStorage merge in setOptions still wins for `enabled`, so
user toolbar toggles persist over the script-tag default — same
semantics as calling `scan({ enabled: false })` from JS.

Refresh the website's bundled copy at packages/website/public/auto.global.js
to match.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented May 8, 2026

Copy link
Copy Markdown

@Debbl is attempting to deploy a commit to the Million Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant