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 CHANGED
@@ -80,11 +80,32 @@ module.exports = {
80
80
 
81
81
  ## Methods
82
82
 
83
- - `Lang`类型产考`react-screenshots`中的`Lang`类型
83
+ - `Debugger`类型产考`debug`中的`Debugger`类型
84
84
 
85
85
  ```ts
86
- interface ScreenshotsOpts {
87
- lang: Partial<Lang>
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: Partial<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, bounds) => {
185
+ screenshots.on('save', (e, buffer, data) => {
165
186
  // 阻止插件自带的保存功能
166
187
  // 用户自己控制保存功能
167
188
  e.preventDefault()
168
189
  // 用户可在这里自己定义保存功能
169
- console.log('capture', buffer, bounds)
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
- import { Bounds } from 'react-screenshots';
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;
@@ -1,14 +1,33 @@
1
1
  /// <reference types="node" />
2
- import { BrowserWindow, BrowserView } from 'electron';
2
+ import { Debugger } from 'debug';
3
+ import { BrowserView, BrowserWindow } from 'electron';
3
4
  import Events from 'events';
4
- import { Bounds, Lang } from 'react-screenshots';
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: Partial<Lang>;
23
+ lang?: Lang;
24
+ logger?: Logger;
7
25
  }
8
- export { Bounds, Lang };
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
  /**
@@ -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 padStart_1 = __importDefault(require("./padStart"));
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 logger_1 = __importDefault(require("./logger"));
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
- (0, logger_1.default)('SCREENSHOTS:ready');
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
- (0, logger_1.default)('startCapture');
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
- (0, logger_1.default)('endCapture');
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
- (0, logger_1.default)('setLang', lang);
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
- (0, logger_1.default)('SCREENSHOTS:capture');
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
- (0, logger_1.default)('SCREENSHOTS:NodeScreenshots.fromDisplay(%d) %o', display.id, capturer);
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
- (0, logger_1.default)('SCREENSHOTS:capturer.capture() error %o', err_1);
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, bounds) {
265
- (0, logger_1.default)('SCREENSHOTS:ok', buffer, bounds);
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, bounds);
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
- (0, logger_1.default)('SCREENSHOTS:cancel');
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, bounds) { return __awaiter(_this, void 0, void 0, function () {
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
- (0, logger_1.default)('SCREENSHOTS:save', buffer, bounds);
295
+ this.logger('SCREENSHOTS:save', buffer, data);
295
296
  event = new event_1.default();
296
- this.emit('save', event, buffer, bounds);
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*/, promises_1.default.writeFile(filePath, buffer)];
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.2",
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
- "node-screenshots": "^0.0.2",
40
- "react-screenshots": "^0.3.1"
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": "600c72efd111a7077640611c32f01c06443c7b8c"
62
+ "gitHead": "a518f3ba2a36ff0e116ebf90d180157b27a39fc3"
61
63
  }
package/lib/logger.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import debug from 'debug';
2
- declare const _default: debug.Debugger;
3
- export default _default;
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');