Skip to content

Conversation

@clavery
Copy link
Collaborator

@clavery clavery commented Jan 23, 2026

Summary

  • Adds b2c script eval command to evaluate arbitrary Script API expressions on B2C Commerce instances
  • Implements SDAPI (Script Debugger API) client for remote script debugging operations
  • Uses a hybrid approach: injects a controller to provide a breakpoint target, then uses SDAPI debugger eval

New Features

CLI Command

# Inline expression
b2c script eval "dw.system.Site.getCurrent().getName()"

# From file
b2c script eval --file script.js

# From stdin
echo 'dw.system.Site.current.getID()' | b2c script eval

# With options
b2c script eval --site RefArch --timeout 60 "1+1"

SDK Modules

  • @salesforce/b2c-tooling-sdk/clients - SDAPI client for debugger operations
  • @salesforce/b2c-tooling-sdk/operations/script - Eval and controller injection operations
  • @salesforce/b2c-tooling-sdk/operations/sites - Site cartridge path operations

Implementation Details

  • Fallback chain for controller injection: Modifies existing Default.js → Adds to existing cartridge → Creates new cartridge
  • Proper cleanup: Uses DELETE /client to remove breakpoints, resume threads, and disable debugger
  • Error detection: Detects runtime script errors (ReferenceError, TypeError, etc.) in eval results
  • Multi-statement support: Wraps multi-statement code in Function constructor with auto-return

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.

2 participants