Skip to content

add native addon sample Stream Deck plugin#13

Merged
ChekTek merged 14 commits intomainfrom
native-addon
Mar 20, 2026
Merged

add native addon sample Stream Deck plugin#13
ChekTek merged 14 commits intomainfrom
native-addon

Conversation

@ChekTek
Copy link
Copy Markdown
Member

@ChekTek ChekTek commented Feb 19, 2026

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new “Image Resizer” Stream Deck plugin sample that demonstrates using a Node native addon dependency (sharp) inside a bundled plugin.

Changes:

  • Introduces an Image Resizer action that resizes a user-selected image via sharp.
  • Adds Rollup/TypeScript build configuration and scripts intended to bundle native dependencies into the .sdPlugin.
  • Adds a property inspector UI, manifest, and plugin assets/documentation for the new sample.

Reviewed changes

Copilot reviewed 11 out of 17 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
image-resizer/tsconfig.json TypeScript configuration for the new sample.
image-resizer/src/plugin.ts Stream Deck plugin entrypoint registering the action and connecting.
image-resizer/src/actions/resize-image.ts Action implementation calling sharp to resize and write output images.
image-resizer/rollup.config.mjs Rollup build pipeline, including copying native-module artifacts into the plugin bundle.
image-resizer/package.json Build/watch scripts plus multi-platform sharp install scripts.
image-resizer/com.elgato.image-resizer.sdPlugin/ui/resize-image.html Property inspector UI to select image, output format, and dimensions.
image-resizer/com.elgato.image-resizer.sdPlugin/manifest.json Declares the plugin/action, Node runtime version, and platform requirements.
image-resizer/com.elgato.image-resizer.sdPlugin/imgs/plugin/* New icons/marketplace images for the plugin.
image-resizer/README.md Explains how to build/link and the intended native-module bundling approach.
image-resizer/.vscode/settings.json VS Code JSON schema hints for plugin manifests/layouts.
image-resizer/.vscode/launch.json VS Code debug attach configuration for the plugin.
image-resizer/.gitignore Ignores node_modules and .sdPlugin build outputs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread image-resizer/com.elgato.image-resizer.sdPlugin/ui/resize-image.html Outdated
Comment thread image-resizer/src/actions/resize-image.ts Outdated
Comment thread image-resizer/package.json Outdated
Comment thread image-resizer/src/actions/resize-image.ts Outdated
Comment thread image-resizer/.vscode/launch.json
Comment thread image-resizer/rollup.config.mjs Outdated
Comment thread image-resizer/rollup.config.mjs Outdated
Comment thread image-resizer/package.json Outdated
Comment thread image-resizer/README.md Outdated
Comment thread image-resizer/README.md Outdated
@ChekTek ChekTek requested a review from GeekyEggo February 20, 2026 18:13
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 19 changed files in this pull request and generated 8 comments.

Files not reviewed (1)
  • image-resizer/com.elgato.image-resizer.sdPlugin/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread image-resizer/src/actions/resize-image.ts Outdated
Comment thread image-resizer/src/actions/resize-image.ts Outdated
Comment thread image-resizer/tsconfig.json
Comment thread image-resizer/rollup.config.mjs
Comment thread image-resizer/package.json Outdated
Comment thread image-resizer/src/actions/resize-image.ts
Comment thread image-resizer/src/actions/resize-image.ts Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 19 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • image-resizer/com.elgato.image-resizer.sdPlugin/package-lock.json: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread image-resizer/src/actions/resize-image.ts
Comment thread image-resizer/src/actions/resize-image.ts
Comment thread image-resizer/com.elgato.image-resizer.sdPlugin/package.json Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 20 changed files in this pull request and generated 6 comments.

Files not reviewed (1)
  • image-resizer/com.elgato.image-resizer.sdPlugin/pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread image-resizer/README.md Outdated
Comment thread image-resizer/README.md Outdated
Comment thread image-resizer/.vscode/launch.json
Comment thread image-resizer/com.elgato.image-resizer.sdPlugin/ui/resize-image.html Outdated
Comment thread image-resizer/package.json Outdated
Comment thread image-resizer/README.md Outdated
Comment thread image-resizer/rollup.config.mjs Outdated
!isWatching && terser(),
{
name: "emit-module-package-file",
generateBundle() {
Copy link
Copy Markdown
Member

@GeekyEggo GeekyEggo Mar 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I understand correctly, emit-module-package-file should be removed — step 2 mentions that dependencies should be defined in the package.json in the bin, but this step replaces the contents of the same file.

Copy link
Copy Markdown
Member

@GeekyEggo GeekyEggo Mar 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ChekTek, I think this might need to be re-introduced now that we're using the pnpm approach as currently there isn't a package.json committed or generated in the bin folder.

@ChekTek ChekTek requested a review from GeekyEggo March 19, 2026 15:12
@GeekyEggo GeekyEggo self-requested a review March 20, 2026 12:43
@ChekTek ChekTek merged commit e0dbdd0 into main Mar 20, 2026
@ChekTek ChekTek deleted the native-addon branch March 20, 2026 16:11
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.

3 participants