@elyracode/clipboard
v0.9.11
Published
Native cross-platform clipboard access (text, image, html, rtf) via NAPI-RS (fork of @mariozechner/clipboard)
Readme
@elyracode/clipboard
Native cross-platform clipboard access (text, image, HTML, RTF) implemented in Rust and exposed to Node via NAPI-RS.
This package is a fork of @mariozechner/clipboard by Mario Zechner (MIT licensed), vendored into the Elyra monorepo so the project owns its development and maintenance.
API
import * as clipboard from "@elyracode/clipboard";
await clipboard.setText("hello");
const text = await clipboard.getText();
const hasImage = clipboard.hasImage();
const bytes = await clipboard.getImageBinary();See index.d.ts for the full surface.
Building
The native addon is built with NAPI-RS and requires a Rust toolchain:
npm run build # release build for the host platform
npm run build:debug # debug buildThe build emits a clipboard.<triple>.node file in the package root. The loader in index.js prefers a locally built .node and otherwise falls back to the per-platform npm package (@elyracode/clipboard-<triple>).
Publishing
This package is published by the dedicated Publish Clipboard Binaries GitHub Actions workflow, which cross-compiles the native addon for every supported platform and publishes the loader together with its per-platform binary packages (@elyracode/clipboard-<triple>).
The loader is marked "private": true in this repo so the regular lockstep release (npm publish --workspaces) skips it; the workflow strips the flag at publish time (via scripts/prepare-npm.mjs) and owns all clipboard publishing. It runs automatically on release tags (v*) pushed by scripts/release.mjs, and can be re-run for a tag via workflow_dispatch.
Requirements:
- An
NPM_TOKENrepository secret: an npm automation token with publish access to the@elyracodescope. - Until a release tag has run the workflow,
@elyracode/clipboardworks only on platforms where it has been built locally (npm run build).
Supported targets: macOS (arm64, x64), Linux gnu (x64, arm64, riscv64), Windows msvc (x64, arm64). Alpine/musl and macOS universal are intentionally not built; on those platforms the native addon is absent and clipboard features degrade gracefully.
License
MIT. Original work Copyright (c) Mario Zechner. Fork maintained by Knut W. Horne.
