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
Copy link
Copy Markdown

@Debbl Debbl commented May 8, 2026

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
Copy link
Copy Markdown

vercel Bot commented May 8, 2026

@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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant