@electron-forge/plugin-local-electron 6.0.0-beta.7 → 6.0.0-beta.70
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 +11 -22
- package/dist/Config.d.ts +1 -0
- package/dist/Config.d.ts.map +1 -0
- package/dist/Config.js +4 -2
- package/dist/LocalElectronPlugin.d.ts +8 -4
- package/dist/LocalElectronPlugin.d.ts.map +1 -0
- package/dist/LocalElectronPlugin.js +56 -97
- package/index.ts +5 -0
- package/package.json +10 -13
- package/src/LocalElectronPlugin.ts +30 -23
- package/test/LocalElectronPlugin_spec.ts +28 -27
- package/tsconfig.json +37 -21
- package/tsconfig.tsbuildinfo +1 -0
- package/doc/assets/css/main.css +0 -865
- package/doc/assets/css/main.css.map +0 -7
- package/doc/assets/images/icons.png +0 -0
- package/doc/assets/images/icons@2x.png +0 -0
- package/doc/assets/images/widgets.png +0 -0
- package/doc/assets/images/widgets@2x.png +0 -0
- package/doc/assets/js/main.js +0 -5
- package/doc/assets/js/search.js +0 -3
- package/doc/classes/localelectronplugin.html +0 -328
- package/doc/globals.html +0 -168
- package/doc/index.html +0 -166
- package/doc/interfaces/localelectronpluginconfig.html +0 -266
- package/tslint.json +0 -12
package/README.md
CHANGED
|
@@ -1,27 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
## plugin-local-electron
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
</b>
|
|
3
|
+
This plugin allows you to both run and build your app using a local build of Electron. This can be incredibly useful if you want to test a feature or a bug fix in your app before making a PR up to the Electron repository.
|
|
5
4
|
|
|
6
|
-
This plugin
|
|
5
|
+
_Note: This plugin should only be used by people who are building Electron locally themselves. If you want to set up a local build of Electron, you should check out [Electron Build Tools](https://github.com/electron/build-tools)._
|
|
7
6
|
|
|
8
|
-
### Usage
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
```javascript
|
|
13
|
-
{
|
|
14
|
-
plugins: [
|
|
15
|
-
['@electron-forge/plugin-local-electron', {
|
|
16
|
-
electronPath: '/Users/me/projects/electron/out/D'
|
|
17
|
-
}]
|
|
18
|
-
]
|
|
19
|
-
}
|
|
20
7
|
```
|
|
8
|
+
// forge.config.js
|
|
21
9
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
10
|
+
{
|
|
11
|
+
name: '@electron-forge/plugin-local-electron',
|
|
12
|
+
config: {
|
|
13
|
+
electronPath: '/Users/me/projects/electron/out/Testing',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
```
|
package/dist/Config.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../src/Config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
package/dist/Config.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbXX0=
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import PluginBase from '@electron-forge/plugin-base';
|
|
1
|
+
import { PluginBase } from '@electron-forge/plugin-base';
|
|
2
|
+
import { ForgeHookMap } from '@electron-forge/shared-types';
|
|
2
3
|
import { LocalElectronPluginConfig } from './Config';
|
|
3
4
|
export default class LocalElectronPlugin extends PluginBase<LocalElectronPluginConfig> {
|
|
4
5
|
name: string;
|
|
5
|
-
constructor(
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
constructor(c: LocalElectronPluginConfig);
|
|
7
|
+
get enabled(): boolean;
|
|
8
|
+
startLogic(): Promise<false>;
|
|
9
|
+
getHooks(): ForgeHookMap;
|
|
8
10
|
private checkPlatform;
|
|
9
11
|
private checkArch;
|
|
10
12
|
private afterExtract;
|
|
11
13
|
}
|
|
14
|
+
export { LocalElectronPlugin, LocalElectronPluginConfig };
|
|
15
|
+
//# sourceMappingURL=LocalElectronPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalElectronPlugin.d.ts","sourceRoot":"","sources":["../src/LocalElectronPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAe,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAGzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAErD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,UAAU,CAAC,yBAAyB,CAAC;IACpF,IAAI,SAAoB;gBAEZ,CAAC,EAAE,yBAAyB;IAOxC,IAAI,OAAO,IAAI,OAAO,CAKrB;IAEK,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;IAQlC,QAAQ,IAAI,YAAY;IAMxB,OAAO,CAAC,aAAa,CAMnB;IAEF,OAAO,CAAC,SAAS,CAIf;IAEF,OAAO,CAAC,YAAY,CASlB;CACH;AAED,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -1,107 +1,66 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
Object.defineProperty(exports, "LocalElectronPluginConfig", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _config.LocalElectronPluginConfig;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
exports.LocalElectronPlugin = exports.default = void 0;
|
|
12
|
+
var _pluginBase = require("@electron-forge/plugin-base");
|
|
12
13
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) {
|
|
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
|
-
|
|
14
|
+
var _config = require("./Config");
|
|
15
|
+
function _interopRequireDefault(obj) {
|
|
16
|
+
return obj && obj.__esModule ? obj : {
|
|
17
|
+
default: obj
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
class LocalElectronPlugin extends _pluginBase.PluginBase {
|
|
21
|
+
constructor(c){
|
|
22
|
+
super(c);
|
|
23
|
+
this.name = 'local-electron';
|
|
24
|
+
this.checkPlatform = (platform)=>{
|
|
25
|
+
if ((this.config.electronPlatform || process.platform) !== platform) {
|
|
26
|
+
throw new Error(`Can not use local Electron version, required platform "${platform}" but local platform is "${this.config.electronPlatform || process.platform}"`);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
this.checkArch = (arch)=>{
|
|
30
|
+
if ((this.config.electronArch || process.arch) !== arch) {
|
|
31
|
+
throw new Error(`Can not use local Electron version, required arch "${arch}" but local arch is "${this.config.electronArch || process.arch}"`);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
this.afterExtract = async (_config, buildPath, _electronVersion, platform, arch)=>{
|
|
35
|
+
if (!this.enabled) return;
|
|
36
|
+
this.checkPlatform(platform);
|
|
37
|
+
this.checkArch(arch);
|
|
38
|
+
await _fsExtra.default.remove(buildPath);
|
|
39
|
+
await _fsExtra.default.copy(this.config.electronPath, buildPath);
|
|
40
|
+
};
|
|
41
|
+
this.getHooks = this.getHooks.bind(this);
|
|
42
|
+
this.startLogic = this.startLogic.bind(this);
|
|
43
|
+
}
|
|
44
|
+
get enabled() {
|
|
45
|
+
if (typeof this.config.enabled === 'undefined') {
|
|
46
|
+
return true;
|
|
40
47
|
}
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
value: arch => {
|
|
48
|
-
if ((this.config.electronArch || process.arch) !== arch) {
|
|
49
|
-
throw `Can not use local Electron version, required arch "${arch}" but local arch is "${this.config.electronArch || process.arch}"`;
|
|
48
|
+
return this.config.enabled;
|
|
49
|
+
}
|
|
50
|
+
async startLogic() {
|
|
51
|
+
if (this.enabled) {
|
|
52
|
+
this.checkPlatform(process.platform);
|
|
53
|
+
process.env.ELECTRON_OVERRIDE_DIST_PATH = this.config.electronPath;
|
|
50
54
|
}
|
|
51
|
-
|
|
52
|
-
});
|
|
53
|
-
Object.defineProperty(this, "afterExtract", {
|
|
54
|
-
configurable: true,
|
|
55
|
-
enumerable: true,
|
|
56
|
-
writable: true,
|
|
57
|
-
value: function () {
|
|
58
|
-
var _value = _asyncToGenerator(function* (_, buildPath, __, platform, arch) {
|
|
59
|
-
if (!_this.config.enabled) return;
|
|
60
|
-
|
|
61
|
-
_this.checkPlatform(platform);
|
|
62
|
-
|
|
63
|
-
_this.checkArch(arch);
|
|
64
|
-
|
|
65
|
-
yield _fsExtra.default.remove(buildPath);
|
|
66
|
-
yield _fsExtra.default.copy(_this.config.electronPath, buildPath);
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
return function value(_x, _x2, _x3, _x4, _x5) {
|
|
70
|
-
return _value.apply(this, arguments);
|
|
71
|
-
};
|
|
72
|
-
}()
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
if (typeof this.config.enabled === 'undefined') {
|
|
76
|
-
this.config = _objectSpread({}, this.config, {
|
|
77
|
-
enabled: true
|
|
78
|
-
});
|
|
55
|
+
return false;
|
|
79
56
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return _asyncToGenerator(function* () {
|
|
86
|
-
if (_this2.config.enabled) {
|
|
87
|
-
_this2.checkPlatform(process.platform);
|
|
88
|
-
|
|
89
|
-
process.env.ELECTRON_OVERRIDE_DIST_PATH = _this2.config.electronPath;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return false;
|
|
93
|
-
})();
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
getHook(hookName) {
|
|
97
|
-
if (hookName === 'packageAfterExtract') {
|
|
98
|
-
return this.afterExtract;
|
|
57
|
+
getHooks() {
|
|
58
|
+
return {
|
|
59
|
+
packageAfterExtract: this.afterExtract
|
|
60
|
+
};
|
|
99
61
|
}
|
|
100
|
-
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
62
|
}
|
|
105
|
-
|
|
106
63
|
exports.default = LocalElectronPlugin;
|
|
107
|
-
|
|
64
|
+
exports.LocalElectronPlugin = LocalElectronPlugin;
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Mb2NhbEVsZWN0cm9uUGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsdWdpbkJhc2UgfSBmcm9tICdAZWxlY3Ryb24tZm9yZ2UvcGx1Z2luLWJhc2UnO1xuaW1wb3J0IHsgRm9yZ2VIb29rRm4sIEZvcmdlSG9va01hcCB9IGZyb20gJ0BlbGVjdHJvbi1mb3JnZS9zaGFyZWQtdHlwZXMnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcblxuaW1wb3J0IHsgTG9jYWxFbGVjdHJvblBsdWdpbkNvbmZpZyB9IGZyb20gJy4vQ29uZmlnJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9jYWxFbGVjdHJvblBsdWdpbiBleHRlbmRzIFBsdWdpbkJhc2U8TG9jYWxFbGVjdHJvblBsdWdpbkNvbmZpZz4ge1xuICBuYW1lID0gJ2xvY2FsLWVsZWN0cm9uJztcblxuICBjb25zdHJ1Y3RvcihjOiBMb2NhbEVsZWN0cm9uUGx1Z2luQ29uZmlnKSB7XG4gICAgc3VwZXIoYyk7XG5cbiAgICB0aGlzLmdldEhvb2tzID0gdGhpcy5nZXRIb29rcy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc3RhcnRMb2dpYyA9IHRoaXMuc3RhcnRMb2dpYy5iaW5kKHRoaXMpO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5lbmFibGVkID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5lbmFibGVkO1xuICB9XG5cbiAgYXN5bmMgc3RhcnRMb2dpYygpOiBQcm9taXNlPGZhbHNlPiB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdGhpcy5jaGVja1BsYXRmb3JtKHByb2Nlc3MucGxhdGZvcm0pO1xuICAgICAgcHJvY2Vzcy5lbnYuRUxFQ1RST05fT1ZFUlJJREVfRElTVF9QQVRIID0gdGhpcy5jb25maWcuZWxlY3Ryb25QYXRoO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRIb29rcygpOiBGb3JnZUhvb2tNYXAge1xuICAgIHJldHVybiB7XG4gICAgICBwYWNrYWdlQWZ0ZXJFeHRyYWN0OiB0aGlzLmFmdGVyRXh0cmFjdCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1BsYXRmb3JtID0gKHBsYXRmb3JtOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoKHRoaXMuY29uZmlnLmVsZWN0cm9uUGxhdGZvcm0gfHwgcHJvY2Vzcy5wbGF0Zm9ybSkgIT09IHBsYXRmb3JtKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDYW4gbm90IHVzZSBsb2NhbCBFbGVjdHJvbiB2ZXJzaW9uLCByZXF1aXJlZCBwbGF0Zm9ybSBcIiR7cGxhdGZvcm19XCIgYnV0IGxvY2FsIHBsYXRmb3JtIGlzIFwiJHt0aGlzLmNvbmZpZy5lbGVjdHJvblBsYXRmb3JtIHx8IHByb2Nlc3MucGxhdGZvcm19XCJgXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGNoZWNrQXJjaCA9IChhcmNoOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoKHRoaXMuY29uZmlnLmVsZWN0cm9uQXJjaCB8fCBwcm9jZXNzLmFyY2gpICE9PSBhcmNoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbiBub3QgdXNlIGxvY2FsIEVsZWN0cm9uIHZlcnNpb24sIHJlcXVpcmVkIGFyY2ggXCIke2FyY2h9XCIgYnV0IGxvY2FsIGFyY2ggaXMgXCIke3RoaXMuY29uZmlnLmVsZWN0cm9uQXJjaCB8fCBwcm9jZXNzLmFyY2h9XCJgKTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBhZnRlckV4dHJhY3Q6IEZvcmdlSG9va0ZuPCdwYWNrYWdlQWZ0ZXJFeHRyYWN0Jz4gPSBhc3luYyAoX2NvbmZpZywgYnVpbGRQYXRoLCBfZWxlY3Ryb25WZXJzaW9uLCBwbGF0Zm9ybSwgYXJjaCkgPT4ge1xuICAgIGlmICghdGhpcy5lbmFibGVkKSByZXR1cm47XG5cbiAgICB0aGlzLmNoZWNrUGxhdGZvcm0ocGxhdGZvcm0pO1xuICAgIHRoaXMuY2hlY2tBcmNoKGFyY2gpO1xuXG4gICAgYXdhaXQgZnMucmVtb3ZlKGJ1aWxkUGF0aCk7XG5cbiAgICBhd2FpdCBmcy5jb3B5KHRoaXMuY29uZmlnLmVsZWN0cm9uUGF0aCwgYnVpbGRQYXRoKTtcbiAgfTtcbn1cblxuZXhwb3J0IHsgTG9jYWxFbGVjdHJvblBsdWdpbiwgTG9jYWxFbGVjdHJvblBsdWdpbkNvbmZpZyB9O1xuIl0sIm5hbWVzIjpbIkxvY2FsRWxlY3Ryb25QbHVnaW5Db25maWciLCJMb2NhbEVsZWN0cm9uUGx1Z2luIiwiUGx1Z2luQmFzZSIsImMiLCJuYW1lIiwiY2hlY2tQbGF0Zm9ybSIsInBsYXRmb3JtIiwiY29uZmlnIiwiZWxlY3Ryb25QbGF0Zm9ybSIsInByb2Nlc3MiLCJFcnJvciIsImNoZWNrQXJjaCIsImFyY2giLCJlbGVjdHJvbkFyY2giLCJhZnRlckV4dHJhY3QiLCJfY29uZmlnIiwiYnVpbGRQYXRoIiwiX2VsZWN0cm9uVmVyc2lvbiIsImVuYWJsZWQiLCJmcyIsInJlbW92ZSIsImNvcHkiLCJlbGVjdHJvblBhdGgiLCJnZXRIb29rcyIsImJpbmQiLCJzdGFydExvZ2ljIiwiZW52IiwiRUxFQ1RST05fT1ZFUlJJREVfRElTVF9QQVRIIiwicGFja2FnZUFmdGVyRXh0cmFjdCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkErRDhCQSxDQUF5Qjs7O2VBQXpCQSxPQUF5Qjs7OztBQS9ENUIsR0FBNkIsQ0FBN0IsV0FBNkI7QUFFekMsR0FBVSxDQUFWLFFBQVU7QUFFaUIsR0FBVSxDQUFWLE9BQVU7Ozs7OztNQUUvQkMsbUJBQW1CLFNBQVNDLFdBQVU7Z0JBRzdDQyxDQUE0QixDQUFFLENBQUM7UUFDekMsS0FBSyxDQUFDQSxDQUFDO1FBSkksSUF1RGQsQ0F0RENDLElBQUksR0FBRyxDQUFnQjtRQURWLElBdURkLENBeEJTQyxhQUFhLElBQUlD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
|
package/index.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// ⚠️ AUTOGENERATED ⚠️ AUTOGENERATED ⚠️ AUTOGENERATED ⚠️
|
|
2
|
+
// This file was automatically generated by `tools/gen-ts-glue.ts`. Do not modify directly if you want to keep your changes.
|
|
3
|
+
export * from "./src/LocalElectronPlugin";
|
|
4
|
+
import defaultExport from "./src/LocalElectronPlugin";
|
|
5
|
+
export default defaultExport;
|
package/package.json
CHANGED
|
@@ -1,25 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@electron-forge/plugin-local-electron",
|
|
3
|
-
"version": "6.0.0-beta.
|
|
3
|
+
"version": "6.0.0-beta.70",
|
|
4
4
|
"description": "Local Electron plugin for Electron Forge, let's you use a local build of Electron",
|
|
5
|
-
"repository": "https://github.com/electron
|
|
5
|
+
"repository": "https://github.com/electron/forge",
|
|
6
6
|
"author": "Samuel Attard",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"main": "dist/LocalElectronPlugin.js",
|
|
9
9
|
"typings": "dist/LocalElectronPlugin.d.ts",
|
|
10
|
-
"scripts": {
|
|
11
|
-
"test": "mocha --require ts-node/register test/**/*_spec.ts test/**/**/*_spec.ts --opts ../../../mocha.opts"
|
|
12
|
-
},
|
|
13
|
-
"devDependencies": {
|
|
14
|
-
"chai": "^4.0.0",
|
|
15
|
-
"fs-extra": "^5.0.0",
|
|
16
|
-
"mocha": "^5.0.0"
|
|
17
|
-
},
|
|
18
10
|
"engines": {
|
|
19
|
-
"node": ">=
|
|
11
|
+
"node": ">= 14.17.5"
|
|
20
12
|
},
|
|
21
13
|
"dependencies": {
|
|
22
|
-
"@electron-forge/plugin-base": "6.0.0-beta.
|
|
23
|
-
"
|
|
14
|
+
"@electron-forge/plugin-base": "6.0.0-beta.70",
|
|
15
|
+
"@electron-forge/shared-types": "6.0.0-beta.70",
|
|
16
|
+
"fs-extra": "^10.0.0"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"chai": "^4.3.3",
|
|
20
|
+
"mocha": "^9.0.1"
|
|
24
21
|
}
|
|
25
22
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import PluginBase from '@electron-forge/plugin-base';
|
|
2
|
-
import {
|
|
1
|
+
import { PluginBase } from '@electron-forge/plugin-base';
|
|
2
|
+
import { ForgeHookFn, ForgeHookMap } from '@electron-forge/shared-types';
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
4
|
|
|
5
5
|
import { LocalElectronPluginConfig } from './Config';
|
|
@@ -7,45 +7,50 @@ import { LocalElectronPluginConfig } from './Config';
|
|
|
7
7
|
export default class LocalElectronPlugin extends PluginBase<LocalElectronPluginConfig> {
|
|
8
8
|
name = 'local-electron';
|
|
9
9
|
|
|
10
|
-
constructor(
|
|
11
|
-
super(
|
|
10
|
+
constructor(c: LocalElectronPluginConfig) {
|
|
11
|
+
super(c);
|
|
12
|
+
|
|
13
|
+
this.getHooks = this.getHooks.bind(this);
|
|
14
|
+
this.startLogic = this.startLogic.bind(this);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
get enabled(): boolean {
|
|
12
18
|
if (typeof this.config.enabled === 'undefined') {
|
|
13
|
-
|
|
14
|
-
...this.config,
|
|
15
|
-
enabled: true,
|
|
16
|
-
};
|
|
19
|
+
return true;
|
|
17
20
|
}
|
|
21
|
+
return this.config.enabled;
|
|
18
22
|
}
|
|
19
23
|
|
|
20
|
-
async startLogic() {
|
|
21
|
-
if (this.
|
|
24
|
+
async startLogic(): Promise<false> {
|
|
25
|
+
if (this.enabled) {
|
|
22
26
|
this.checkPlatform(process.platform);
|
|
23
27
|
process.env.ELECTRON_OVERRIDE_DIST_PATH = this.config.electronPath;
|
|
24
28
|
}
|
|
25
|
-
return false
|
|
29
|
+
return false;
|
|
26
30
|
}
|
|
27
31
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
return null;
|
|
32
|
+
getHooks(): ForgeHookMap {
|
|
33
|
+
return {
|
|
34
|
+
packageAfterExtract: this.afterExtract,
|
|
35
|
+
};
|
|
33
36
|
}
|
|
34
37
|
|
|
35
38
|
private checkPlatform = (platform: string) => {
|
|
36
39
|
if ((this.config.electronPlatform || process.platform) !== platform) {
|
|
37
|
-
throw
|
|
40
|
+
throw new Error(
|
|
41
|
+
`Can not use local Electron version, required platform "${platform}" but local platform is "${this.config.electronPlatform || process.platform}"`
|
|
42
|
+
);
|
|
38
43
|
}
|
|
39
|
-
}
|
|
44
|
+
};
|
|
40
45
|
|
|
41
46
|
private checkArch = (arch: string) => {
|
|
42
47
|
if ((this.config.electronArch || process.arch) !== arch) {
|
|
43
|
-
throw `Can not use local Electron version, required arch "${arch}" but local arch is "${this.config.electronArch || process.arch}"
|
|
48
|
+
throw new Error(`Can not use local Electron version, required arch "${arch}" but local arch is "${this.config.electronArch || process.arch}"`);
|
|
44
49
|
}
|
|
45
|
-
}
|
|
50
|
+
};
|
|
46
51
|
|
|
47
|
-
private afterExtract = async (
|
|
48
|
-
if (!this.
|
|
52
|
+
private afterExtract: ForgeHookFn<'packageAfterExtract'> = async (_config, buildPath, _electronVersion, platform, arch) => {
|
|
53
|
+
if (!this.enabled) return;
|
|
49
54
|
|
|
50
55
|
this.checkPlatform(platform);
|
|
51
56
|
this.checkArch(arch);
|
|
@@ -53,5 +58,7 @@ export default class LocalElectronPlugin extends PluginBase<LocalElectronPluginC
|
|
|
53
58
|
await fs.remove(buildPath);
|
|
54
59
|
|
|
55
60
|
await fs.copy(this.config.electronPath, buildPath);
|
|
56
|
-
}
|
|
61
|
+
};
|
|
57
62
|
}
|
|
63
|
+
|
|
64
|
+
export { LocalElectronPlugin, LocalElectronPluginConfig };
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { expect } from 'chai';
|
|
2
|
-
import fs from 'fs-extra';
|
|
3
1
|
import os from 'os';
|
|
4
2
|
import path from 'path';
|
|
5
3
|
|
|
6
|
-
import
|
|
4
|
+
import { ResolvedForgeConfig } from '@electron-forge/shared-types';
|
|
5
|
+
import { expect } from 'chai';
|
|
6
|
+
import fs from 'fs-extra';
|
|
7
|
+
|
|
8
|
+
import { LocalElectronPlugin } from '../src/LocalElectronPlugin';
|
|
7
9
|
|
|
8
10
|
describe('LocalElectronPlugin', () => {
|
|
9
11
|
describe('start logic', () => {
|
|
@@ -29,10 +31,10 @@ describe('LocalElectronPlugin', () => {
|
|
|
29
31
|
expect(process.env.ELECTRON_OVERRIDE_DIST_PATH).to.equal(undefined);
|
|
30
32
|
});
|
|
31
33
|
|
|
32
|
-
it(
|
|
34
|
+
it("should throw an error if platforms don't match", async () => {
|
|
33
35
|
const p = new LocalElectronPlugin({ electronPath: 'test/bar', electronPlatform: 'wut' });
|
|
34
36
|
await expect(p.startLogic()).to.eventually.be.rejectedWith(
|
|
35
|
-
`Can not use local Electron version, required platform "${process.platform}" but local platform is "wut"
|
|
37
|
+
`Can not use local Electron version, required platform "${process.platform}" but local platform is "wut"`
|
|
36
38
|
);
|
|
37
39
|
});
|
|
38
40
|
|
|
@@ -47,14 +49,11 @@ describe('LocalElectronPlugin', () => {
|
|
|
47
49
|
|
|
48
50
|
describe('hooks', () => {
|
|
49
51
|
let p: LocalElectronPlugin;
|
|
50
|
-
|
|
52
|
+
|
|
51
53
|
beforeEach(() => {
|
|
52
54
|
p = new LocalElectronPlugin({ electronPath: 'test/foo' });
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
it('should return for all other hooks', () => {
|
|
56
|
-
expect(p.getHook('prePackage')).to.equal(null);
|
|
57
|
-
expect(p.getHook('postMake')).to.equal(null);
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
p.init('', {} as any);
|
|
58
57
|
});
|
|
59
58
|
|
|
60
59
|
describe('with afterExtract hook', () => {
|
|
@@ -65,37 +64,38 @@ describe('LocalElectronPlugin', () => {
|
|
|
65
64
|
await fs.writeFile(path.resolve(tmpDir, 'touch'), 'hey');
|
|
66
65
|
});
|
|
67
66
|
|
|
68
|
-
afterEach(() =>
|
|
69
|
-
return fs.remove(tmpDir);
|
|
70
|
-
});
|
|
67
|
+
afterEach(() => fs.remove(tmpDir));
|
|
71
68
|
|
|
72
69
|
it('should return a function for packageAfterExtract', () => {
|
|
73
|
-
expect(p.
|
|
70
|
+
expect(p.getHooks().packageAfterExtract).to.be.a('function');
|
|
74
71
|
});
|
|
75
72
|
|
|
76
73
|
it('should do nothing when disabled', async () => {
|
|
77
74
|
p.config.enabled = false;
|
|
78
|
-
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
76
|
+
const fn = p.getHooks().packageAfterExtract!;
|
|
79
77
|
|
|
80
|
-
await fn(
|
|
78
|
+
await fn({} as ResolvedForgeConfig, tmpDir, 'null', process.platform, process.arch);
|
|
81
79
|
|
|
82
80
|
expect(await fs.pathExists(tmpDir)).to.equal(true);
|
|
83
81
|
expect(await fs.pathExists(path.resolve(tmpDir, 'touch'))).to.equal(true);
|
|
84
82
|
});
|
|
85
83
|
|
|
86
|
-
it(
|
|
87
|
-
|
|
84
|
+
it("should throw an error if the platform doesn't match", async () => {
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
86
|
+
const fn = p.getHooks().packageAfterExtract!;
|
|
88
87
|
|
|
89
|
-
await expect(fn(
|
|
90
|
-
`Can not use local Electron version, required platform "bad" but local platform is "${process.platform}"
|
|
88
|
+
await expect(fn({} as ResolvedForgeConfig, tmpDir, 'null', 'bad', process.arch)).to.eventually.be.rejectedWith(
|
|
89
|
+
`Can not use local Electron version, required platform "bad" but local platform is "${process.platform}"`
|
|
91
90
|
);
|
|
92
91
|
});
|
|
93
92
|
|
|
94
|
-
it(
|
|
95
|
-
|
|
93
|
+
it("should throw an error if the arch doesn't match", async () => {
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
95
|
+
const fn = p.getHooks().packageAfterExtract!;
|
|
96
96
|
|
|
97
|
-
await expect(fn(
|
|
98
|
-
`Can not use local Electron version, required arch "bad" but local arch is "${process.arch}"
|
|
97
|
+
await expect(fn({} as ResolvedForgeConfig, tmpDir, 'null', process.platform, 'bad')).to.eventually.be.rejectedWith(
|
|
98
|
+
`Can not use local Electron version, required arch "bad" but local arch is "${process.arch}"`
|
|
99
99
|
);
|
|
100
100
|
});
|
|
101
101
|
|
|
@@ -103,9 +103,10 @@ describe('LocalElectronPlugin', () => {
|
|
|
103
103
|
const electronDir = await fs.mkdtemp(path.resolve(os.tmpdir(), 'electron-tmp-'));
|
|
104
104
|
await fs.writeFile(path.resolve(electronDir, 'electron'), 'hi i am electron I swear');
|
|
105
105
|
p.config.electronPath = electronDir;
|
|
106
|
-
|
|
106
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
107
|
+
const fn = p.getHooks().packageAfterExtract!;
|
|
107
108
|
|
|
108
|
-
await fn(
|
|
109
|
+
await fn({} as ResolvedForgeConfig, tmpDir, 'null', process.platform, process.arch);
|
|
109
110
|
|
|
110
111
|
expect(await fs.pathExists(path.resolve(tmpDir, 'touch'))).to.equal(false);
|
|
111
112
|
expect(await fs.pathExists(path.resolve(tmpDir, 'electron'))).to.equal(true);
|
package/tsconfig.json
CHANGED
|
@@ -1,23 +1,39 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
2
|
+
"//": "⚠️ AUTOGENERATED ⚠️ This file was automatically generated by tools/gen-tsconfigs.ts, do not edit manually.",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"module": "commonjs",
|
|
5
|
+
"target": "es2019",
|
|
6
|
+
"outDir": "dist",
|
|
7
|
+
"lib": [
|
|
8
|
+
"dom",
|
|
9
|
+
"es2019"
|
|
10
|
+
],
|
|
11
|
+
"sourceMap": true,
|
|
12
|
+
"rootDir": "src",
|
|
13
|
+
"experimentalDecorators": true,
|
|
14
|
+
"strict": true,
|
|
15
|
+
"esModuleInterop": true,
|
|
16
|
+
"declaration": true,
|
|
17
|
+
"composite": true,
|
|
18
|
+
"declarationMap": true,
|
|
19
|
+
"typeRoots": [
|
|
20
|
+
"../../../typings",
|
|
21
|
+
"../../../node_modules/@types"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"exclude": [
|
|
25
|
+
"node_modules",
|
|
26
|
+
"dist",
|
|
27
|
+
"test",
|
|
28
|
+
"index.ts",
|
|
29
|
+
"tmpl"
|
|
30
|
+
],
|
|
31
|
+
"references": [
|
|
32
|
+
{
|
|
33
|
+
"path": "../base"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"path": "../../utils/types"
|
|
37
|
+
}
|
|
38
|
+
]
|
|
23
39
|
}
|