Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skanehira/deno-clippy
cross-platform Deno module for writing and reading clipboard.
https://github.com/skanehira/deno-clippy
clipboard deno
Last synced: 2 months ago
JSON representation
cross-platform Deno module for writing and reading clipboard.
- Host: GitHub
- URL: https://github.com/skanehira/deno-clippy
- Owner: skanehira
- License: mit
- Created: 2022-08-18T09:13:00.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-26T00:18:10.000Z (9 months ago)
- Last Synced: 2024-10-20T10:06:18.763Z (3 months ago)
- Topics: clipboard, deno
- Language: TypeScript
- Homepage: https://deno.land/x/clippy
- Size: 301 KB
- Stars: 46
- Watchers: 3
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# deno-clippy
This is cross-platform Deno library for writing and reading clipboard.\
You can read from/write image and text.This library uses Rust's [arboard](https://github.com/1Password/arboard) through
[FFI](https://deno.land/[email protected]/runtime/ffi_api).\
Therefore, it is basically not necessary to prepare some external commands when
using this library.However, if arboard returns an error, deno-clippy will fall back and use an
external command (for example, `xclip` on Linux).\
If arboard does not work properly and an error occurs, installing the external
command may work.## Known issue.
Currently, arboard is not work on Linux.\
So, please install `xclip` when you using library on Linux.## Support Version
| `deno-clippy` | `Deno` |
| ------------- | -------------------- |
| v0.1.0 | `v1.24.3` or earlier |
| v0.2.0 | `v1.25.0` or later |
| v0.2.1 ~ | `v1.32.4` or later |## Example
```typescript
import * as clippy from "https://deno.land/x/clippy/mod.ts";// write image to clipboard
const data1 = await Deno.readFile("testdata/out.png");
await clippy.writeImage(data1);// read image from clipboard
const data2 = await clippy.readImage();
await Deno.writeFile("example.png", data2);// write text to clipboard
await clippy.writeText("hello clippy");// read text from clipboard
const text = await clippy.readText();
console.log(text);
```Run script:
```sh
# You have to use `--unstable` because FFI is not stable.
deno run -A --unstable sample.ts
```## Contribution
Any contribution including documentations are welcome.
## Development
To develop this library, the following must be installed.
- Rust
- Deno(`v1.32.4` or later)
- [deno_bindgen](https://github.com/denoland/deno_bindgen)
- xclip(on Linux)
- makeIf you modify the Rust code (under `src/`), you need to generate
`bindings/bindings.ts` using `deno_bindgen`(just run `make build`).\
`bindings.ts` is the glue code to handle `dylib` from Deno, and basically should
not be edited and committed.\
`bindings.ts` will only be changed for new releases as follows when execute
`VERSION=v0.1.0 make build`.```diff
const url = new URL(
- "https://github.com/skanehira/deno-clippy/releases/download/v0.0.1/",
+ "https://github.com/skanehira/deno-clippy/releases/download/v0.1.0/",
import.meta.url,
)
let uri = url.toString()
```After implementation is complete, be sure to write tests as well.\
The tests are to ensure the quality of this library.The following is how to run the test.
```sh
# clean up dylib cache, and generate bindings.ts, dylib and run deno's test.
$ make deno-test
# run rust's tests.
$ make ffi-test
# run deno-test and ffi-test
$ make test
```## Author
skanehira
The logo was designed by @hashrock, licensed under CC BY-NC-ND 4.0.