a simple REPL for the Salesforce CLI (Salesforce DX)
$ npm install -g @mikeburr/sfdx-repl
$ @mikeburr/sfdx-repl COMMAND
running command...
$ @mikeburr/sfdx-repl (-v|--version|version)
@mikeburr/sfdx-repl/0.3.0 darwin-x64 node-v12.7.0
$ @mikeburr/sfdx-repl --help [COMMAND]
USAGE
$ @mikeburr/sfdx-repl COMMAND
...
@mikeburr/sfdx-repl repl:repl [-e <string>] [--help <help>] [-v <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
@mikeburr/sfdx-repl repl:script [-v <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
@mikeburr/sfdx-repl repl:repl [-e <string>] [--help <help>] [-v <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
runs an SFDX REPL
USAGE
$ @mikeburr/sfdx-repl repl:repl [-e <string>] [--help <help>] [-v <string>] [-u <string>] [--apiversion <string>]
[--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
OPTIONS
-e, --execute=execute command to be executed
-u, --targetusername=targetusername username or alias for the target
org; overrides default target org
-v, --targetdevhubusername=targetdevhubusername username or alias for the dev hub
org; overrides default dev hub org
--apiversion=apiversion override the api version used for
api requests made by this command
--help show CLI help
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
this command invocation
EXAMPLES
$ sfdx repl:repl --targetusername [email protected]
[email protected]> Math.sqrt(289)
17
[email protected]> $conn.identity().then(id => console.log('*** you are logged into Salesforce as: ' + id.username))
Promise { _40: 0, _65: 0, _55: null, _72: null }
[email protected]> *** you are logged into Salesforce as: [email protected]
$ sfdx repl:repl -e "1 + 2"
3
Note that many interactions with Salesforce will return JavaScript Promises, which
can be difficult to work with in an interactive environment. Use --experimental-repl-await
to make things a bit easier:
$ NODE_OPTIONS=--experimental-repl-await sfdx repl:repl -u [email protected]
[email protected]> (await $conn.identity()).username
'[email protected]'
See code: src/commands/repl/repl.ts
@mikeburr/sfdx-repl repl:script [-v <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
runs a script using the SFDX REPL
USAGE
$ @mikeburr/sfdx-repl repl:script [-v <string>] [-u <string>] [--apiversion <string>] [--json] [--loglevel
trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
ARGUMENTS
SCRIPT filename of script to run
OPTIONS
-u, --targetusername=targetusername username or alias for the target
org; overrides default target org
-v, --targetdevhubusername=targetdevhubusername username or alias for the dev hub
org; overrides default dev hub org
--apiversion=apiversion override the api version used for
api requests made by this command
--json format output as json
--loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL) [default: warn] logging level for
this command invocation
EXAMPLES
$ cat example.sfdx
#!/usr/bin/env sfdx repl:script
let me = await $conn.identity();
$cmd.ux.log(me.username + ' ran the example!');
$ ./example.sfdx --targetusername [email protected]
[email protected] ran the example!
See code: src/commands/repl/script.ts
We recommend using the Visual Studio Code (VS Code) IDE for your plugin development. Included in the .vscode
directory of this plugin is a launch.json
config file, which allows you to attach a debugger to the node process when running your commands.
To debug the hello:org
command:
- Start the inspector
If you linked your plugin to the sfdx cli, call your command with the dev-suspend
switch:
$ sfdx hello:org -u [email protected] --dev-suspend
Alternatively, to call your command using the bin/run
script, set the NODE_OPTIONS
environment variable to --inspect-brk
when starting the debugger:
$ NODE_OPTIONS=--inspect-brk bin/run hello:org -u [email protected]
- Set some breakpoints in your command code
- Click on the Debug icon in the Activity Bar on the side of VS Code to open up the Debug view.
- In the upper left hand corner of VS Code, verify that the "Attach to Remote" launch configuration has been chosen.
- Hit the green play button to the left of the "Attach to Remote" launch configuration window. The debugger should now be suspended on the first line of the program.
- Hit the green play button at the top middle of VS Code (this play button will be to the right of the play button that you clicked in step #5).
Congrats, you are debugging!