copy-paste
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/copy-paste package

2.1.1 • Public • Published

node-copy-paste

A command line utility that allows read/write (i.e copy/paste) access to the system clipboard. It does this by wrapping pbcopy/pbpaste (for OSX), xclip (for Linux, FreeBSD, and OpenBSD), and clip (for Windows). Currently works with node.js v0.8+.

The API

When require("copy-paste") is executed, an object with the following properties is returned:

  • copy(text[, callback]): asynchronously replaces the current contents of the clip board with text. Takes either a string, array, object, or readable stream. Returns the same value passed in. Optional callback will fire when the copy operation is complete.
  • copy.json(obj[, callback]): asynchronously replaces the current contents of the clip board with the JSON string of obj. Returns the same value passed in. Optional callback will fire when the copy operation is complete.
  • paste([callback]): if no callback is provided, paste synchronously returns the current contents of the system clip board. Otherwise, the contents of the system clip board are passed to the callback as the second parameter. The first one being a potential error.
  • require("copy-paste").global(): adds copy and paste to the global namespace. Returns an object with copy and paste as properties.

Example usage:

const { copy, paste } = require("copy-paste");

copy("some text", (err, text) => {
  // "some text" is in your clipboard
});

paste((err, text) => {
  // complete...
});

const text = paste(); // Synchronous paste
copy({ hello: "world" }) // Asynchronous copy

Promise-based API

For modern JavaScript applications, you can use the promise-based interface by requiring the promises submodule:

const clipboard = require('copy-paste/promises');

The promise-based API provides the following methods:

  • copy(text): Returns a promise that resolves with the copied text when the operation is complete
  • copy.json(obj): Returns a promise that resolves with the copied JSON string when the operation is complete
  • paste(): Returns a promise that resolves with the clipboard contents when the operation is complete

Example usage with async/await:

const { copy, paste } = require('copy-paste/promises');

// Copy text
await copy('Hello World');

// Copy JSON
await copy.json({ hello: 'world' });

// Paste text
const text = await paste();

Getting node-copy-paste

The easiest way to get node-copy-paste is with npm:

npm install copy-paste

Alternatively you can clone this git repository:

git clone git://github.com/xavi-/node-copy-paste.git

Future plans

I'm hoping to add various fallbacks for instances when xclip or clip is not avaiable (see experimental-fallbacks branch). Also this library needs to be more thoroughly tested on windows.

Developed by

  • Xavi Ramirez

License

This project is released under The MIT License.

Package Sidebar

Install

npm i copy-paste

Weekly Downloads

41,108

Version

2.1.1

License

none

Unpacked Size

16.9 kB

Total Files

12

Last publish

Collaborators

  • xavi