Repository navigation
Add typed JSON output to app import channel-config - #8821
isaacroldan wants to merge 5 commits into
Conversation
|
/snapit |
6955e74 to
675ac51
Compare
|
/snapit |
|
🫰✨ Thanks @isaacroldan! Your snapshot has been published to npm. Built from Test the snapshot by installing your package globally: pnpm i -g --@shopify:registry=https://registry.npmjs.org @shopify/cli@0.0.0-snapshot-20261007133859Caution After installing, validate the version by running |
|
/snapit |
|
| Changeset | Package |
|---|---|
json-app-channel-config.md |
'@shopify/cli': major |
|
🫰✨ Thanks @isaacroldan! Your snapshot has been published to npm. Built from Test the snapshot by installing your package globally: pnpm i -g --@shopify:registry=https://registry.npmjs.org @shopify/cli@0.0.0-snapshot-20261007140410Caution After installing, validate the version by running |
WHY are these changes introduced?
Adopt a strict result contract for existing channel-config JSON. Related to #23958.
WHAT is this pull request doing?
Separate execution from presentation, add
status, and makepathabsolute. Retain native TOML and warning data; shared warning rendering handles diagnostics. This is a major JSON change: usepathdirectly instead of joining it to the app directory.Text:
Imported the channel spec for Example app.JSON:
{"status":"success","handle":"example","filename":"example.toml","path":"/tmp/app/extensions/channel-config/specifications/example.toml","toml":"handle = \"example\"\n","warnings":[]}.Interactive JSON prompts need #8812. Successful postrun output is tracked in the shared issue note.
How to manually test your changes?
Use a copy of a linked app that is allowlisted for export.
shopify app import channel-config --path <app> --json --no-input > result.json. Check the absolutepathand compare the nativetomlwith that file.--forceand check successful replacement. Run without--jsonto compare warning/success text.shopify app import channel-config --json-schemato inspect the result.Checklist