electron-screenshots 0.3.2 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -6
- package/lib/index.js +7 -0
- package/lib/preload.d.ts +6 -1
- package/lib/screenshots.d.ts +23 -4
- package/lib/screenshots.js +20 -19
- package/package.json +7 -5
- package/lib/logger.d.ts +0 -3
- package/lib/logger.js +0 -7
package/README.md
CHANGED
|
@@ -80,11 +80,32 @@ module.exports = {
|
|
|
80
80
|
|
|
81
81
|
## Methods
|
|
82
82
|
|
|
83
|
-
- `
|
|
83
|
+
- `Debugger`类型产考`debug`中的`Debugger`类型
|
|
84
84
|
|
|
85
85
|
```ts
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
export type LoggerFn = (...args: unknown[]) => void
|
|
87
|
+
export type Logger = Debugger | LoggerFn
|
|
88
|
+
|
|
89
|
+
export interface Lang {
|
|
90
|
+
magnifier_position_label?: string
|
|
91
|
+
operation_ok_title?: string
|
|
92
|
+
operation_cancel_title?: string
|
|
93
|
+
operation_save_title?: string
|
|
94
|
+
operation_redo_title?: string
|
|
95
|
+
operation_undo_title?: string
|
|
96
|
+
operation_mosaic_title?: string
|
|
97
|
+
operation_text_title?: string
|
|
98
|
+
operation_brush_title?: string
|
|
99
|
+
operation_arrow_title?: string
|
|
100
|
+
operation_ellipse_title?: string
|
|
101
|
+
operation_rectangle_title?: string
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export interface ScreenshotsOpts {
|
|
105
|
+
lang?: Lang
|
|
106
|
+
// 调用日志,默认值为 debug('electron-screenshots')
|
|
107
|
+
// debug https://www.npmjs.com/package/debug
|
|
108
|
+
logger?: Logger
|
|
88
109
|
}
|
|
89
110
|
```
|
|
90
111
|
|
|
@@ -93,7 +114,7 @@ interface ScreenshotsOpts {
|
|
|
93
114
|
| `constructor(opts: ScreenshotsOpts)` | 调用截图方法截图 | - |
|
|
94
115
|
| `startCapture()` | 调用截图方法截图 | - |
|
|
95
116
|
| `endCapture() ` | 手动结束截图 | - |
|
|
96
|
-
| `setLang(lang:
|
|
117
|
+
| `setLang(lang: Lang)` | 修改语言 | - |
|
|
97
118
|
|
|
98
119
|
## Events
|
|
99
120
|
|
|
@@ -161,12 +182,12 @@ const screenshots = new Screenshots({
|
|
|
161
182
|
}
|
|
162
183
|
})
|
|
163
184
|
|
|
164
|
-
screenshots.on('save', (e, buffer,
|
|
185
|
+
screenshots.on('save', (e, buffer, data) => {
|
|
165
186
|
// 阻止插件自带的保存功能
|
|
166
187
|
// 用户自己控制保存功能
|
|
167
188
|
e.preventDefault()
|
|
168
189
|
// 用户可在这里自己定义保存功能
|
|
169
|
-
console.log('capture', buffer,
|
|
190
|
+
console.log('capture', buffer, data)
|
|
170
191
|
})
|
|
171
192
|
|
|
172
193
|
screenshots.startCapture()
|
package/lib/index.js
CHANGED
|
@@ -10,6 +10,13 @@ electron_1.app.whenReady().then(function () {
|
|
|
10
10
|
var screenshots = new screenshots_1.default({
|
|
11
11
|
lang: {
|
|
12
12
|
operation_rectangle_title: '矩形2323'
|
|
13
|
+
},
|
|
14
|
+
logger: function () {
|
|
15
|
+
var args = [];
|
|
16
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
17
|
+
args[_i] = arguments[_i];
|
|
18
|
+
}
|
|
19
|
+
return console.log(args);
|
|
13
20
|
}
|
|
14
21
|
});
|
|
15
22
|
electron_1.globalShortcut.register('ctrl+shift+a', function () {
|
package/lib/preload.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { Display } from './getBoundAndDisplay';
|
|
2
|
-
|
|
2
|
+
export interface Bounds {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
3
8
|
export interface ScreenshotsData {
|
|
4
9
|
bounds: Bounds;
|
|
5
10
|
display: Display;
|
package/lib/screenshots.d.ts
CHANGED
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
2
|
+
import { Debugger } from 'debug';
|
|
3
|
+
import { BrowserView, BrowserWindow } from 'electron';
|
|
3
4
|
import Events from 'events';
|
|
4
|
-
import { Bounds
|
|
5
|
+
import { Bounds } from './preload';
|
|
6
|
+
export declare type LoggerFn = (...args: unknown[]) => void;
|
|
7
|
+
export declare type Logger = Debugger | LoggerFn;
|
|
8
|
+
export interface Lang {
|
|
9
|
+
magnifier_position_label?: string;
|
|
10
|
+
operation_ok_title?: string;
|
|
11
|
+
operation_cancel_title?: string;
|
|
12
|
+
operation_save_title?: string;
|
|
13
|
+
operation_redo_title?: string;
|
|
14
|
+
operation_undo_title?: string;
|
|
15
|
+
operation_mosaic_title?: string;
|
|
16
|
+
operation_text_title?: string;
|
|
17
|
+
operation_brush_title?: string;
|
|
18
|
+
operation_arrow_title?: string;
|
|
19
|
+
operation_ellipse_title?: string;
|
|
20
|
+
operation_rectangle_title?: string;
|
|
21
|
+
}
|
|
5
22
|
export interface ScreenshotsOpts {
|
|
6
|
-
lang
|
|
23
|
+
lang?: Lang;
|
|
24
|
+
logger?: Logger;
|
|
7
25
|
}
|
|
8
|
-
export { Bounds
|
|
26
|
+
export { Bounds };
|
|
9
27
|
export default class Screenshots extends Events {
|
|
10
28
|
$win: BrowserWindow | null;
|
|
11
29
|
$view: BrowserView;
|
|
30
|
+
private logger;
|
|
12
31
|
private isReady;
|
|
13
32
|
constructor(opts?: ScreenshotsOpts);
|
|
14
33
|
/**
|
package/lib/screenshots.js
CHANGED
|
@@ -73,13 +73,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
73
73
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
74
74
|
};
|
|
75
75
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
76
|
+
var debug_1 = __importDefault(require("debug"));
|
|
76
77
|
var electron_1 = require("electron");
|
|
77
|
-
var promises_1 = __importDefault(require("fs/promises"));
|
|
78
|
-
var event_1 = __importDefault(require("./event"));
|
|
79
78
|
var events_1 = __importDefault(require("events"));
|
|
80
|
-
var
|
|
79
|
+
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
80
|
+
var event_1 = __importDefault(require("./event"));
|
|
81
81
|
var getBoundAndDisplay_1 = __importDefault(require("./getBoundAndDisplay"));
|
|
82
|
-
var
|
|
82
|
+
var padStart_1 = __importDefault(require("./padStart"));
|
|
83
83
|
var Screenshots = /** @class */ (function (_super) {
|
|
84
84
|
__extends(Screenshots, _super);
|
|
85
85
|
function Screenshots(opts) {
|
|
@@ -96,10 +96,11 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
96
96
|
});
|
|
97
97
|
_this.isReady = new Promise(function (resolve) {
|
|
98
98
|
electron_1.ipcMain.once('SCREENSHOTS:ready', function () {
|
|
99
|
-
|
|
99
|
+
_this.logger('SCREENSHOTS:ready');
|
|
100
100
|
resolve();
|
|
101
101
|
});
|
|
102
102
|
});
|
|
103
|
+
_this.logger = (opts === null || opts === void 0 ? void 0 : opts.logger) || (0, debug_1.default)('electron-screenshots');
|
|
103
104
|
_this.listenIpc();
|
|
104
105
|
_this.$view.webContents.loadURL("file://".concat(require.resolve('react-screenshots/electron/electron.html')));
|
|
105
106
|
if (opts === null || opts === void 0 ? void 0 : opts.lang) {
|
|
@@ -112,7 +113,7 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
112
113
|
*/
|
|
113
114
|
Screenshots.prototype.startCapture = function () {
|
|
114
115
|
var _this = this;
|
|
115
|
-
|
|
116
|
+
this.logger('startCapture');
|
|
116
117
|
this.isReady.then(function () {
|
|
117
118
|
if (_this.$win && !_this.$win.isDestroyed()) {
|
|
118
119
|
_this.$win.close();
|
|
@@ -135,7 +136,7 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
135
136
|
* 结束截图
|
|
136
137
|
*/
|
|
137
138
|
Screenshots.prototype.endCapture = function () {
|
|
138
|
-
|
|
139
|
+
this.logger('endCapture');
|
|
139
140
|
if (!this.$win)
|
|
140
141
|
return;
|
|
141
142
|
this.$win.setSimpleFullScreen(false);
|
|
@@ -148,7 +149,7 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
148
149
|
Screenshots.prototype.setLang = function (lang) {
|
|
149
150
|
var _this = this;
|
|
150
151
|
this.isReady.then(function () {
|
|
151
|
-
|
|
152
|
+
_this.logger('setLang', lang);
|
|
152
153
|
_this.$view.webContents.send('SCREENSHOTS:setLang', lang);
|
|
153
154
|
});
|
|
154
155
|
};
|
|
@@ -200,7 +201,7 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
200
201
|
return __generator(this, function (_b) {
|
|
201
202
|
switch (_b.label) {
|
|
202
203
|
case 0:
|
|
203
|
-
|
|
204
|
+
this.logger('SCREENSHOTS:capture');
|
|
204
205
|
_b.label = 1;
|
|
205
206
|
case 1:
|
|
206
207
|
_b.trys.push([1, 4, , 6]);
|
|
@@ -208,7 +209,7 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
208
209
|
case 2:
|
|
209
210
|
NodeScreenshots = (_b.sent()).Screenshots;
|
|
210
211
|
capturer = NodeScreenshots.fromDisplay(display.id);
|
|
211
|
-
|
|
212
|
+
this.logger('SCREENSHOTS:NodeScreenshots.fromDisplay(%d) %o', display.id, capturer);
|
|
212
213
|
if (!capturer) {
|
|
213
214
|
throw new Error("NodeScreenshots.fromDisplay(".concat(display.id, ") get null"));
|
|
214
215
|
}
|
|
@@ -219,7 +220,7 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
219
220
|
return [3 /*break*/, 6];
|
|
220
221
|
case 4:
|
|
221
222
|
err_1 = _b.sent();
|
|
222
|
-
|
|
223
|
+
this.logger('SCREENSHOTS:capturer.capture() error %o', err_1);
|
|
223
224
|
return [4 /*yield*/, electron_1.desktopCapturer.getSources({
|
|
224
225
|
types: ['screen'],
|
|
225
226
|
thumbnailSize: {
|
|
@@ -261,10 +262,10 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
261
262
|
/**
|
|
262
263
|
* OK事件
|
|
263
264
|
*/
|
|
264
|
-
electron_1.ipcMain.on('SCREENSHOTS:ok', function (e, buffer,
|
|
265
|
-
|
|
265
|
+
electron_1.ipcMain.on('SCREENSHOTS:ok', function (e, buffer, data) {
|
|
266
|
+
_this.logger('SCREENSHOTS:ok', buffer, data);
|
|
266
267
|
var event = new event_1.default();
|
|
267
|
-
_this.emit('ok', event, buffer,
|
|
268
|
+
_this.emit('ok', event, buffer, data);
|
|
268
269
|
if (event.defaultPrevented) {
|
|
269
270
|
return;
|
|
270
271
|
}
|
|
@@ -275,7 +276,7 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
275
276
|
* CANCEL事件
|
|
276
277
|
*/
|
|
277
278
|
electron_1.ipcMain.on('SCREENSHOTS:cancel', function () {
|
|
278
|
-
|
|
279
|
+
_this.logger('SCREENSHOTS:cancel');
|
|
279
280
|
var event = new event_1.default();
|
|
280
281
|
_this.emit('cancel', event);
|
|
281
282
|
if (event.defaultPrevented) {
|
|
@@ -286,14 +287,14 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
286
287
|
/**
|
|
287
288
|
* SAVE事件
|
|
288
289
|
*/
|
|
289
|
-
electron_1.ipcMain.on('SCREENSHOTS:save', function (e, buffer,
|
|
290
|
+
electron_1.ipcMain.on('SCREENSHOTS:save', function (e, buffer, data) { return __awaiter(_this, void 0, void 0, function () {
|
|
290
291
|
var event, time, year, month, date, hours, minutes, seconds, milliseconds, _a, canceled, filePath;
|
|
291
292
|
return __generator(this, function (_b) {
|
|
292
293
|
switch (_b.label) {
|
|
293
294
|
case 0:
|
|
294
|
-
|
|
295
|
+
this.logger('SCREENSHOTS:save', buffer, data);
|
|
295
296
|
event = new event_1.default();
|
|
296
|
-
this.emit('save', event, buffer,
|
|
297
|
+
this.emit('save', event, buffer, data);
|
|
297
298
|
if (event.defaultPrevented || !this.$win) {
|
|
298
299
|
return [2 /*return*/];
|
|
299
300
|
}
|
|
@@ -319,7 +320,7 @@ var Screenshots = /** @class */ (function (_super) {
|
|
|
319
320
|
if (canceled || !filePath) {
|
|
320
321
|
return [2 /*return*/];
|
|
321
322
|
}
|
|
322
|
-
return [4 /*yield*/,
|
|
323
|
+
return [4 /*yield*/, fs_extra_1.default.writeFile(filePath, buffer)];
|
|
323
324
|
case 2:
|
|
324
325
|
_b.sent();
|
|
325
326
|
this.endCapture();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "electron-screenshots",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "electron 截图插件",
|
|
5
5
|
"types": "lib/screenshots.d.ts",
|
|
6
6
|
"main": "lib/screenshots.js",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
11
|
"prepublishOnly": "npm run build",
|
|
12
|
-
"start": "cross-env DEBUG=screenshots electron lib/index.js",
|
|
12
|
+
"start": "cross-env DEBUG=electron-screenshots electron lib/index.js",
|
|
13
13
|
"dev": "tsc --sourceMap --watch",
|
|
14
14
|
"build": "npm run lint && npm run clean && tsc",
|
|
15
15
|
"lint": "eslint . --ext .js,.ts --fix",
|
|
@@ -36,14 +36,16 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"debug": "^4.3.3",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
39
|
+
"fs-extra": "^10.1.0",
|
|
40
|
+
"node-screenshots": "^0.0.3",
|
|
41
|
+
"react-screenshots": "^0.4.0"
|
|
41
42
|
},
|
|
42
43
|
"peerDependencies": {
|
|
43
44
|
"electron": ">=11"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"@types/debug": "^4.1.7",
|
|
48
|
+
"@types/fs-extra": "^9.0.13",
|
|
47
49
|
"@typescript-eslint/eslint-plugin": "^5.10.0",
|
|
48
50
|
"@typescript-eslint/parser": "^5.10.0",
|
|
49
51
|
"cross-env": "^7.0.3",
|
|
@@ -57,5 +59,5 @@
|
|
|
57
59
|
"rimraf": "^3.0.2",
|
|
58
60
|
"typescript": "^4.5.5"
|
|
59
61
|
},
|
|
60
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "a518f3ba2a36ff0e116ebf90d180157b27a39fc3"
|
|
61
63
|
}
|
package/lib/logger.d.ts
DELETED
package/lib/logger.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var debug_1 = __importDefault(require("debug"));
|
|
7
|
-
exports.default = (0, debug_1.default)('screenshots');
|