/
index.js
56 lines (40 loc) · 1.14 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
'use strict;'
const clipboardy = require('clipboardy'),
events = require('events'),
eventEmitter = new events.EventEmitter();
//watch board
var content, stop = false;
function watch(interval) {
//start the watcher...
readClip(interval);
return Object.assign(eventEmitter, {
end: function () {
stop = true;
}
});
}
function readClip(interval) {
var self = this;
self.interval = self.interval || (Number(interval) || 500);
clipboardy.read()
.then(function (data) {
//emit copy event if clipboard content changes
if (data !== content) {
eventEmitter.emit('copy', data);
content = data;
}
var timeout = setTimeout(function () {
//clear timeout
clearTimeout(timeout);
if(!stop){
//recall self
process.nextTick(readClip);
}
}, self.interval);
})
.catch(function (err) {
throw err;
});
}
//exports
module.exports = watch;