@electron-forge/publisher-base 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/dist/Publisher.d.ts +13 -6
- package/dist/Publisher.d.ts.map +1 -0
- package/dist/Publisher.js +33 -59
- package/index.ts +5 -0
- package/package.json +10 -7
- package/src/Publisher.ts +18 -12
- package/test/Publisher_spec.ts +18 -3
- package/tsconfig.json +34 -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/publisher.html +0 -359
- package/doc/globals.html +0 -168
- package/doc/index.html +0 -237
- package/doc/interfaces/publisheroptions.html +0 -239
- package/tslint.json +0 -12
package/dist/Publisher.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ForgePlatform,
|
|
1
|
+
import { ForgeMakeResult, ForgePlatform, IForgePublisher, ResolvedForgeConfig } from '@electron-forge/shared-types';
|
|
2
2
|
export interface PublisherOptions {
|
|
3
3
|
/**
|
|
4
4
|
* The base directory of the apps source code
|
|
@@ -13,16 +13,21 @@ export interface PublisherOptions {
|
|
|
13
13
|
*
|
|
14
14
|
* You probably shouldn't use this
|
|
15
15
|
*/
|
|
16
|
-
forgeConfig:
|
|
16
|
+
forgeConfig: ResolvedForgeConfig;
|
|
17
17
|
}
|
|
18
|
-
export default abstract class Publisher<C> {
|
|
18
|
+
export default abstract class Publisher<C> implements IForgePublisher {
|
|
19
19
|
config: C;
|
|
20
|
-
protected
|
|
20
|
+
protected platformsToPublishOn?: string[] | undefined;
|
|
21
21
|
abstract name: string;
|
|
22
22
|
defaultPlatforms?: ForgePlatform[];
|
|
23
|
+
/** @internal */
|
|
23
24
|
__isElectronForgePublisher: true;
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @param config - A configuration object for this publisher
|
|
27
|
+
* @param platformsToPublishOn - If you want this maker to run on platforms different from `defaultPlatforms` you can provide those platforms here
|
|
28
|
+
*/
|
|
29
|
+
constructor(config: C, platformsToPublishOn?: string[] | undefined);
|
|
30
|
+
get platforms(): ForgePlatform[];
|
|
26
31
|
/**
|
|
27
32
|
* Publishers must implement this method to publish the artifacts returned from
|
|
28
33
|
* make calls. If any errors occur you must throw them, failing silently or simply
|
|
@@ -36,3 +41,5 @@ export default abstract class Publisher<C> {
|
|
|
36
41
|
*/
|
|
37
42
|
publish(opts: PublisherOptions): Promise<void>;
|
|
38
43
|
}
|
|
44
|
+
export { Publisher as PublisherBase };
|
|
45
|
+
//# sourceMappingURL=Publisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Publisher.d.ts","sourceRoot":"","sources":["../src/Publisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEpH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B;;;;OAIG;IACH,WAAW,EAAE,mBAAmB,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,SAAS,CAAC,CAAC,CAAE,YAAW,eAAe;IAYhD,MAAM,EAAE,CAAC;IAAE,SAAS,CAAC,oBAAoB,CAAC;IAX7D,SAAgB,IAAI,EAAE,MAAM,CAAC;IAEtB,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC;IAE1C,gBAAgB;IAChB,0BAA0B,EAAG,IAAI,CAAC;IAElC;;;OAGG;gBACgB,MAAM,EAAE,CAAC,EAAY,oBAAoB,CAAC,sBAAiB;IAS9E,IAAI,SAAS,IAAI,aAAa,EAAE,CAI/B;IAED;;;;;;;;;;OAUG;IAEG,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD;AAED,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,CAAC"}
|
package/dist/Publisher.js
CHANGED
|
@@ -1,53 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
5
4
|
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
require("source-map-support/register");
|
|
9
|
-
|
|
10
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _next(value) { step("next", value); } function _throw(err) { step("throw", err); } _next(); }); }; }
|
|
11
|
-
|
|
5
|
+
exports.PublisherBase = exports.default = void 0;
|
|
12
6
|
class Publisher {
|
|
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
|
-
this.config = config;
|
|
38
|
-
Object.defineProperty(this, '__isElectronForgePublisher', {
|
|
39
|
-
value: true,
|
|
40
|
-
enumerable: false,
|
|
41
|
-
configurable: false
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
get platforms() {
|
|
46
|
-
if (this.providedPlatforms) return this.providedPlatforms;
|
|
47
|
-
if (this.defaultPlatforms) return this.defaultPlatforms;
|
|
48
|
-
return ['win32', 'linux', 'darwin', 'mas'];
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* @param config - A configuration object for this publisher
|
|
9
|
+
* @param platformsToPublishOn - If you want this maker to run on platforms different from `defaultPlatforms` you can provide those platforms here
|
|
10
|
+
*/ constructor(config, platformsToPublishOn){
|
|
11
|
+
this.config = config;
|
|
12
|
+
this.platformsToPublishOn = platformsToPublishOn;
|
|
13
|
+
this.config = config;
|
|
14
|
+
Object.defineProperty(this, '__isElectronForgePublisher', {
|
|
15
|
+
value: true,
|
|
16
|
+
enumerable: false,
|
|
17
|
+
configurable: false
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
get platforms() {
|
|
21
|
+
if (this.platformsToPublishOn) return this.platformsToPublishOn;
|
|
22
|
+
if (this.defaultPlatforms) return this.defaultPlatforms;
|
|
23
|
+
return [
|
|
24
|
+
'win32',
|
|
25
|
+
'linux',
|
|
26
|
+
'darwin',
|
|
27
|
+
'mas'
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
51
31
|
* Publishers must implement this method to publish the artifacts returned from
|
|
52
32
|
* make calls. If any errors occur you must throw them, failing silently or simply
|
|
53
33
|
* logging will not propagate issues up to forge.
|
|
@@ -57,18 +37,12 @@ class Publisher {
|
|
|
57
37
|
* darwin and win32 artifacts to somewhere like GitHub on the first publish call
|
|
58
38
|
* you will have to create the version on GitHub and the second call will just
|
|
59
39
|
* be appending files to the existing version.
|
|
60
|
-
*/
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
var _this = this;
|
|
65
|
-
|
|
66
|
-
return _asyncToGenerator(function* () {
|
|
67
|
-
throw new Error(`Publisher ${_this.name} did not implement the publish method`);
|
|
68
|
-
})();
|
|
69
|
-
}
|
|
70
|
-
|
|
40
|
+
*/ // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
41
|
+
async publish(opts) {
|
|
42
|
+
throw new Error(`Publisher ${this.name} did not implement the publish method`);
|
|
43
|
+
}
|
|
71
44
|
}
|
|
72
|
-
|
|
73
45
|
exports.default = Publisher;
|
|
74
|
-
|
|
46
|
+
exports.PublisherBase = Publisher;
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9QdWJsaXNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9yZ2VNYWtlUmVzdWx0LCBGb3JnZVBsYXRmb3JtLCBJRm9yZ2VQdWJsaXNoZXIsIFJlc29sdmVkRm9yZ2VDb25maWcgfSBmcm9tICdAZWxlY3Ryb24tZm9yZ2Uvc2hhcmVkLXR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoZXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIGRpcmVjdG9yeSBvZiB0aGUgYXBwcyBzb3VyY2UgY29kZVxuICAgKi9cbiAgZGlyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVzdWx0cyBmcm9tIHJ1bm5pbmcgdGhlIG1ha2UgY29tbWFuZFxuICAgKi9cbiAgbWFrZVJlc3VsdHM6IEZvcmdlTWFrZVJlc3VsdFtdO1xuICAvKipcbiAgICogVGhlIHJhdyBmb3JnZUNvbmZpZyB0aGlzIGFwcCBpcyB1c2luZy5cbiAgICpcbiAgICogWW91IHByb2JhYmx5IHNob3VsZG4ndCB1c2UgdGhpc1xuICAgKi9cbiAgZm9yZ2VDb25maWc6IFJlc29sdmVkRm9yZ2VDb25maWc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGFic3RyYWN0IGNsYXNzIFB1Ymxpc2hlcjxDPiBpbXBsZW1lbnRzIElGb3JnZVB1Ymxpc2hlciB7XG4gIHB1YmxpYyBhYnN0cmFjdCBuYW1lOiBzdHJpbmc7XG5cbiAgcHVibGljIGRlZmF1bHRQbGF0Zm9ybXM/OiBGb3JnZVBsYXRmb3JtW107XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfX2lzRWxlY3Ryb25Gb3JnZVB1Ymxpc2hlciE6IHRydWU7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBjb25maWcgLSBBIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIHB1Ymxpc2hlclxuICAgKiBAcGFyYW0gcGxhdGZvcm1zVG9QdWJsaXNoT24gLSBJZiB5b3Ugd2FudCB0aGlzIG1ha2VyIHRvIHJ1biBvbiBwbGF0Zm9ybXMgZGlmZmVyZW50IGZyb20gYGRlZmF1bHRQbGF0Zm9ybXNgIHlvdSBjYW4gcHJvdmlkZSB0aG9zZSBwbGF0Zm9ybXMgaGVyZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHVibGljIGNvbmZpZzogQywgcHJvdGVjdGVkIHBsYXRmb3Jtc1RvUHVibGlzaE9uPzogRm9yZ2VQbGF0Zm9ybVtdKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdfX2lzRWxlY3Ryb25Gb3JnZVB1Ymxpc2hlcicsIHtcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHBsYXRmb3JtcygpOiBGb3JnZVBsYXRmb3JtW10ge1xuICAgIGlmICh0aGlzLnBsYXRmb3Jtc1RvUHVibGlzaE9uKSByZXR1cm4gdGhpcy5wbGF0Zm9ybXNUb1B1Ymxpc2hPbjtcbiAgICBpZiAodGhpcy5kZWZhdWx0UGxhdGZvcm1zKSByZXR1cm4gdGhpcy5kZWZhdWx0UGxhdGZvcm1zO1xuICAgIHJldHVybiBbJ3dpbjMyJywgJ2xpbnV4JywgJ2RhcndpbicsICdtYXMnXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaXNoZXJzIG11c3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kIHRvIHB1Ymxpc2ggdGhlIGFydGlmYWN0cyByZXR1cm5lZCBmcm9tXG4gICAqIG1ha2UgY2FsbHMuICBJZiBhbnkgZXJyb3JzIG9jY3VyIHlvdSBtdXN0IHRocm93IHRoZW0sIGZhaWxpbmcgc2lsZW50bHkgb3Igc2ltcGx5XG4gICAqIGxvZ2dpbmcgd2lsbCBub3QgcHJvcGFnYXRlIGlzc3VlcyB1cCB0byBmb3JnZS5cbiAgICpcbiAgICogUGxlYXNlIG5vdGUgZm9yIGEgZ2l2ZW4gdmVyc2lvbiBwdWJsaXNoIHdpbGwgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLCBvbmNlXG4gICAqIGZvciBlYWNoIHNldCBvZiBcInBsYXRmb3JtXCIgYW5kIFwiYXJjaFwiLiAgVGhpcyBtZWFucyBpZiB5b3UgYXJlIHB1Ymxpc2hpbmdcbiAgICogZGFyd2luIGFuZCB3aW4zMiBhcnRpZmFjdHMgdG8gc29tZXdoZXJlIGxpa2UgR2l0SHViIG9uIHRoZSBmaXJzdCBwdWJsaXNoIGNhbGxcbiAgICogeW91IHdpbGwgaGF2ZSB0byBjcmVhdGUgdGhlIHZlcnNpb24gb24gR2l0SHViIGFuZCB0aGUgc2Vjb25kIGNhbGwgd2lsbCBqdXN0XG4gICAqIGJlIGFwcGVuZGluZyBmaWxlcyB0byB0aGUgZXhpc3RpbmcgdmVyc2lvbi5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgYXN5bmMgcHVibGlzaChvcHRzOiBQdWJsaXNoZXJPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBQdWJsaXNoZXIgJHt0aGlzLm5hbWV9IGRpZCBub3QgaW1wbGVtZW50IHRoZSBwdWJsaXNoIG1ldGhvZGApO1xuICB9XG59XG5cbmV4cG9ydCB7IFB1Ymxpc2hlciBhcyBQdWJsaXNoZXJCYXNlIH07XG4iXSwibmFtZXMiOlsiUHVibGlzaGVyIiwiY29uZmlnIiwicGxhdGZvcm1zVG9QdWJsaXNoT24iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsInBsYXRmb3JtcyIsImRlZmF1bHRQbGF0Zm9ybXMiLCJwdWJsaXNoIiwib3B0cyIsIkVycm9yIiwibmFtZSIsIlB1Ymxpc2hlckJhc2UiXSwibWFwcGluZ3MiOiI7Ozs7O01BbUI4QkEsU0FBUztJQVFyQyxFQUdHLEFBSEg7OztHQUdHLEFBSEgsRUFHRyxhQUNnQkMsTUFBUyxFQUFZQyxvQkFBc0MsQ0FBRSxDQUFDO2FBQTlERCxNQUFTLEdBQVRBLE1BQVM7YUFBWUMsb0JBQXNDLEdBQXRDQSxvQkFBc0M7UUFDNUUsSUFBSSxDQUFDRCxNQUFNLEdBQUdBLE1BQU07UUFDcEJFLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDLElBQUksRUFBRSxDQUE0Qiw2QkFBRSxDQUFDO1lBQ3pEQyxLQUFLLEVBQUUsSUFBSTtZQUNYQyxVQUFVLEVBQUUsS0FBSztZQUNqQkMsWUFBWSxFQUFFLEtBQUs7UUFDckIsQ0FBQztJQUNILENBQUM7UUFFR0MsU0FBUyxHQUFvQixDQUFDO1FBQ2hDLEVBQUUsRUFBRSxJQUFJLENBQUNOLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUNBLG9CQUFvQjtRQUMvRCxFQUFFLEVBQUUsSUFBSSxDQUFDTyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDQSxnQkFBZ0I7UUFDdkQsTUFBTSxDQUFDLENBQUM7WUFBQSxDQUFPO1lBQUUsQ0FBTztZQUFFLENBQVE7WUFBRSxDQUFLO1FBQUEsQ0FBQztJQUM1QyxDQUFDO0lBRUQsRUFVRyxBQVZIOzs7Ozs7Ozs7O0dBVUcsQUFWSCxFQVVHLENBQ0gsRUFBNkQsQUFBN0QsMkRBQTZEO1VBQ3ZEQyxPQUFPLENBQUNDLElBQXNCLEVBQWlCLENBQUM7UUFDcEQsS0FBSyxDQUFDLEdBQUcsQ0FBQ0MsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUNDLElBQUksQ0FBQyxxQ0FBcUM7SUFDOUUsQ0FBQzs7a0JBekMyQmIsU0FBUztRQTRDakJjLGFBQWEsR0FBMUJkLFNBQVMifQ==
|
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/Publisher";
|
|
4
|
+
import defaultExport from "./src/Publisher";
|
|
5
|
+
export default defaultExport;
|
package/package.json
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@electron-forge/publisher-base",
|
|
3
|
-
"version": "6.0.0-beta.
|
|
3
|
+
"version": "6.0.0-beta.70",
|
|
4
4
|
"description": "Base publisher for Electron Forge",
|
|
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/Publisher.js",
|
|
9
9
|
"typings": "dist/Publisher.d.ts",
|
|
10
10
|
"scripts": {
|
|
11
|
-
"test": "
|
|
11
|
+
"test": "yarn test:base test/**/*_spec.ts",
|
|
12
|
+
"test:base": "cross-env TS_NODE_FILES=1 mocha --config ../../../.mocharc.js"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@electron-forge/shared-types": "6.0.0-beta.70"
|
|
12
16
|
},
|
|
13
17
|
"devDependencies": {
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"mocha": "^5.0.0"
|
|
18
|
+
"chai": "^4.3.3",
|
|
19
|
+
"mocha": "^9.0.1"
|
|
17
20
|
},
|
|
18
21
|
"engines": {
|
|
19
|
-
"node": ">=
|
|
22
|
+
"node": ">= 14.17.5"
|
|
20
23
|
}
|
|
21
24
|
}
|
package/src/Publisher.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
/* eslint-disable no-unused-vars */
|
|
1
|
+
import { ForgeMakeResult, ForgePlatform, IForgePublisher, ResolvedForgeConfig } from '@electron-forge/shared-types';
|
|
4
2
|
|
|
5
3
|
export interface PublisherOptions {
|
|
6
4
|
/**
|
|
@@ -13,20 +11,25 @@ export interface PublisherOptions {
|
|
|
13
11
|
makeResults: ForgeMakeResult[];
|
|
14
12
|
/**
|
|
15
13
|
* The raw forgeConfig this app is using.
|
|
16
|
-
*
|
|
14
|
+
*
|
|
17
15
|
* You probably shouldn't use this
|
|
18
16
|
*/
|
|
19
|
-
forgeConfig:
|
|
17
|
+
forgeConfig: ResolvedForgeConfig;
|
|
20
18
|
}
|
|
21
19
|
|
|
22
|
-
export default abstract class Publisher<C> {
|
|
20
|
+
export default abstract class Publisher<C> implements IForgePublisher {
|
|
23
21
|
public abstract name: string;
|
|
22
|
+
|
|
24
23
|
public defaultPlatforms?: ForgePlatform[];
|
|
25
|
-
|
|
24
|
+
|
|
25
|
+
/** @internal */
|
|
26
26
|
__isElectronForgePublisher!: true;
|
|
27
|
-
/* tslint:enable variable-name */
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
/**
|
|
29
|
+
* @param config - A configuration object for this publisher
|
|
30
|
+
* @param platformsToPublishOn - If you want this maker to run on platforms different from `defaultPlatforms` you can provide those platforms here
|
|
31
|
+
*/
|
|
32
|
+
constructor(public config: C, protected platformsToPublishOn?: ForgePlatform[]) {
|
|
30
33
|
this.config = config;
|
|
31
34
|
Object.defineProperty(this, '__isElectronForgePublisher', {
|
|
32
35
|
value: true,
|
|
@@ -35,8 +38,8 @@ export default abstract class Publisher<C> {
|
|
|
35
38
|
});
|
|
36
39
|
}
|
|
37
40
|
|
|
38
|
-
get platforms() {
|
|
39
|
-
if (this.
|
|
41
|
+
get platforms(): ForgePlatform[] {
|
|
42
|
+
if (this.platformsToPublishOn) return this.platformsToPublishOn;
|
|
40
43
|
if (this.defaultPlatforms) return this.defaultPlatforms;
|
|
41
44
|
return ['win32', 'linux', 'darwin', 'mas'];
|
|
42
45
|
}
|
|
@@ -52,7 +55,10 @@ export default abstract class Publisher<C> {
|
|
|
52
55
|
* you will have to create the version on GitHub and the second call will just
|
|
53
56
|
* be appending files to the existing version.
|
|
54
57
|
*/
|
|
55
|
-
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
59
|
+
async publish(opts: PublisherOptions): Promise<void> {
|
|
56
60
|
throw new Error(`Publisher ${this.name} did not implement the publish method`);
|
|
57
61
|
}
|
|
58
62
|
}
|
|
63
|
+
|
|
64
|
+
export { Publisher as PublisherBase };
|
package/test/Publisher_spec.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
2
|
|
|
3
|
-
import Publisher from '../src/Publisher';
|
|
3
|
+
import Publisher, { PublisherOptions } from '../src/Publisher';
|
|
4
4
|
|
|
5
5
|
class PublisherImpl extends Publisher<null> {
|
|
6
6
|
defaultPlatforms = [];
|
|
7
|
+
|
|
7
8
|
name = 'test';
|
|
8
9
|
}
|
|
9
10
|
|
|
@@ -13,8 +14,22 @@ describe('Publisher', () => {
|
|
|
13
14
|
expect(publisher).to.have.property('__isElectronForgePublisher', true);
|
|
14
15
|
});
|
|
15
16
|
|
|
16
|
-
it('should
|
|
17
|
+
it('__isElectronForgePublisher should not be settable', () => {
|
|
18
|
+
const publisher = new PublisherImpl(null);
|
|
19
|
+
expect(() => {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
(publisher as any).__isElectronForgePublisher = false;
|
|
22
|
+
}).to.throw();
|
|
23
|
+
expect(() => {
|
|
24
|
+
Object.defineProperty(publisher, '__isElectronForgePublisher', {
|
|
25
|
+
value: false,
|
|
26
|
+
});
|
|
27
|
+
}).to.throw();
|
|
28
|
+
expect(publisher).to.have.property('__isElectronForgePublisher', true);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('should throw an error when publish is called is called', async () => {
|
|
17
32
|
const publisher = new PublisherImpl(null);
|
|
18
|
-
publisher.publish({} as
|
|
33
|
+
await expect(publisher.publish({} as PublisherOptions)).to.eventually.be.rejected;
|
|
19
34
|
});
|
|
20
35
|
});
|
package/tsconfig.json
CHANGED
|
@@ -1,23 +1,36 @@
|
|
|
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": "../../utils/types"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
23
36
|
}
|