Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9392825
cosmetic(flatpak): normalize interface name convention
SpacingBat3 Jul 16, 2026
6d7c3a5
fix(typedoc): duplicate `packages/plugin/*`
SpacingBat3 Jul 16, 2026
ecd5fd7
fix(typedoc): externally document `listr2` types
SpacingBat3 Jul 16, 2026
181c8c8
fix(maker-deb): expose `*ConfigOptions`
SpacingBat3 Jul 16, 2026
6e59625
fix(maker-flatpak): expose `*ConfigOptions`
SpacingBat3 Jul 16, 2026
a6ea65f
fix(maker-rpm): expose `*ConfigOptions`
SpacingBat3 Jul 16, 2026
3fd32db
fix(publisher-static): expose `StaticArtifact`
SpacingBat3 Jul 16, 2026
c5a41be
fix(publisher-bitbucket): expose `*Auth` and `*Repository`
SpacingBat3 Jul 16, 2026
e0c4bd0
fix(publisher-github): expose `*Repository`
SpacingBat3 Jul 16, 2026
a676482
fix(plugin-vite): expose `VitePlugin*Config`
SpacingBat3 Jul 19, 2026
bb23404
refactor(maker-dmg): type-to-interface config conversion
SpacingBat3 Jul 19, 2026
48a21c6
refactor(maker-msix): type-to-interface config convertion
SpacingBat3 Jul 19, 2026
cb8bb19
docs(maker-msix): make `SemiPartial` inline type
SpacingBat3 Jul 19, 2026
4d4f0a0
refactor(typedoc): normalize/improve configuration
SpacingBat3 Jul 19, 2026
100c6eb
refactor(core): type-to-interface conversions
SpacingBat3 Jul 20, 2026
97bd903
docs(core): document `BuildIndentifier*` references inline
SpacingBat3 Jul 20, 2026
cb64cef
fix(maker-msix): add `Maker*ManifestVariables` alias
SpacingBat3 Jul 20, 2026
36ba69e
refactor(maker-snap): make `MakerSnapConfig` an interface
SpacingBat3 Jul 20, 2026
741ec5c
refactor(maker-squirrel): make `MakerSquirrelConfig` an interface
SpacingBat3 Jul 20, 2026
7019c19
refactor(maker-wix): make `MakerWixConfig` an interface
SpacingBat3 Jul 20, 2026
bf5c7be
fix(maker-wix): drop MSICreatorOptions from API
SpacingBat3 Jul 20, 2026
af99841
docs(plugin-webpack): mark aliases as inline
SpacingBat3 Jul 20, 2026
939821a
fix(plugin-webpack): expose needed types
SpacingBat3 Jul 20, 2026
5c96a55
refactor(shared-types): make `ElectronProcess` an interface
SpacingBat3 Jul 20, 2026
e8d21d5
fix(typedoc): selectively include externals in packages
SpacingBat3 Jul 20, 2026
824f51b
docs(typedoc): add documentations to external symbols
SpacingBat3 Jul 20, 2026
3e6a691
fix(makers): correct/add links in Readmes' to symbols
SpacingBat3 Jul 20, 2026
89c753d
cosmetic(typedoc): fix formatting with `oxfmt`
SpacingBat3 Jul 20, 2026
e5849c6
refactor(shared-types): convert `Forge*Options` to interfaces
SpacingBat3 Jul 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ packages/plugin/webpack/spec/fixtures/apps/native-modules/package-lock.json
packages/plugin/fuses/spec/fixture/out
.links
reports
packages/**/typedoc.json
.vscode/settings.json
.pnp.*
.yarn/*
Expand Down
1 change: 1 addition & 0 deletions packages/api/core/src/api/make.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ type MakerImpl = {
new (...args: any[]): MakerBase<any>;
};

/** @inline */
type MakeTargets = ForgeConfigMaker[] | string[];

function generateTargets(
Expand Down
9 changes: 6 additions & 3 deletions packages/api/core/src/util/forge-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,14 @@ export function unregisterForgeConfigForDirectory(dir: string): void {
registeredForgeConfigs.delete(path.resolve(dir));
}

export type BuildIdentifierMap<T> = Record<string, T | undefined>;
export type BuildIdentifierConfig<T> = {
/** @inline */
export interface BuildIdentifierMap<T> extends Record<string, T | undefined> {}
/** @inline */
export interface BuildIdentifierConfig<T> {
map: BuildIdentifierMap<T>;
/** @internal */
__isMagicBuildIdentifierMap: true;
};
}

export function fromBuildIdentifier<T>(
map: BuildIdentifierMap<T>,
Expand Down
2 changes: 1 addition & 1 deletion packages/maker/deb/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

`@electron-forge/maker-deb` builds .deb packages, which are the standard package format for Debian-based Linux distributions such as Ubuntu. You can only build the deb target on Linux or macOS machines with the fakeroot and dpkg packages installed.

Configuration options are documented in [`MakerDebConfigOptions`](https://js.electronforge.io/interfaces/_electron_forge_maker_deb.InternalOptions.MakerDebConfigOptions.html).
Configuration options are documented in [`MakerDebConfigOptions`](https://js.electronforge.io/interfaces/_electron_forge_maker_deb.MakerDebConfigOptions.html).

```javascript
{
Expand Down
1 change: 1 addition & 0 deletions packages/maker/deb/src/MakerDeb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,4 @@ export default class MakerDeb extends MakerBase<MakerDebConfig> {
}

export { MakerDeb, MakerDebConfig };
export type { MakerDebConfigOptions } from './Config.ts';
6 changes: 4 additions & 2 deletions packages/maker/dmg/src/Config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import type { ElectronInstallerDMGOptions } from 'electron-installer-dmg';

export type MakerDMGConfig = Omit<
export interface MakerDMGConfig extends Omit<
ElectronInstallerDMGOptions,
'name' | 'appPath' | 'out'
> & { name?: string };
> {
name?: string;
}
2 changes: 1 addition & 1 deletion typedoc.base.json → packages/maker/dmg/typedoc.jsonc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"$schema": "https://typedoc.org/schema.json",
"excludeInternal": true
"excludeExternals": false,
}
2 changes: 1 addition & 1 deletion packages/maker/flatpak/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

You can only build the Flatpak target if you have `flatpak`, `flatpak-builder`, and `eu-strip` _\(usually part of the `elfutils` package\)_ installed on your system.

Configuration options are documented in [`MakerFlatpakOptionsConfig`](https://js.electronforge.io/interfaces/_electron_forge_maker_flatpak.InternalOptions.MakerFlatpakOptionsConfig.html).
Configuration options are documented in [`MakerFlatpakOptionsConfig`](https://js.electronforge.io/interfaces/_electron_forge_maker_flatpak.MakerFlatpakConfigOptions.html).

```javascript
{
Expand Down
4 changes: 2 additions & 2 deletions packages/maker/flatpak/src/Config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export interface MakerFlatpakOptionsConfig {
export interface MakerFlatpakConfigOptions {
/**
* App id of the flatpak, used in the id field of a flatpak-builder manifest.
*
Expand Down Expand Up @@ -122,5 +122,5 @@ export interface MakerFlatpakOptionsConfig {
}

export interface MakerFlatpakConfig {
options?: MakerFlatpakOptionsConfig;
options?: MakerFlatpakConfigOptions;
}
1 change: 1 addition & 0 deletions packages/maker/flatpak/src/MakerFlatpak.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,4 @@ export default class MakerFlatpak extends MakerBase<MakerFlatpakConfig> {
}

export { MakerFlatpak, MakerFlatpakConfig };
export type { MakerFlatpakConfigOptions } from './Config.ts';
26 changes: 14 additions & 12 deletions packages/maker/msix/src/Config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,16 @@ import {

type SemiPartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;

export interface MakerMSIXConfigManifestVariables extends SemiPartial<
ManifestGenerationVariables,
| 'packageDescription'
| 'appExecutable'
| 'packageVersion'
| 'publisher'
| 'packageIdentity'
| 'targetArch'
> {}

/**
* The configuration object for the MSIX maker.
* The `outputDir` and `appDir` parameters are preconfigured by Forge so that the
Expand All @@ -15,19 +25,11 @@ type SemiPartial<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
*
* @see https://github.com/bitdisaster/electron-windows-msix/blob/master/src/types.ts
*/
export type MakerMSIXConfig = Omit<
export interface MakerMSIXConfig extends Omit<
MSIXPackagingOptions,
'outputDir' | 'appDir' | 'manifestVariables'
> & {
manifestVariables?: SemiPartial<
ManifestGenerationVariables,
| 'packageDescription'
| 'appExecutable'
| 'packageVersion'
| 'publisher'
| 'packageIdentity'
| 'targetArch'
>;
> {
manifestVariables?: MakerMSIXConfigManifestVariables;
/**
* The base name of the generated `.msix` file, without the `.msix`
* extension (the maker always appends `.msix`). This only overrides the
Expand All @@ -42,4 +44,4 @@ export type MakerMSIXConfig = Omit<
* `my-app-win32-x64-1.2.3`
*/
outputFileName?: string | (() => string | Promise<string>);
};
}
1 change: 1 addition & 0 deletions packages/maker/msix/src/MakerMSIX.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,4 @@ export default class MakerMSIX extends MakerBase<MakerMSIXConfig> {
}

export { MakerMSIX, MakerMSIXConfig };
export type { MakerMSIXConfigManifestVariables } from './Config.ts';
4 changes: 4 additions & 0 deletions packages/maker/msix/typedoc.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "https://typedoc.org/schema.json",
"excludeExternals": false,
}
2 changes: 1 addition & 1 deletion packages/maker/rpm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

You can only build the RPM target on Linux machines with the `rpm` or `rpm-build` packages installed.

Configuration options are documented in [`MakerRpmConfigOptions`](https://js.electronforge.io/interfaces/_electron_forge_maker_rpm.InternalOptions.MakerRpmConfigOptions.html).
Configuration options are documented in [`MakerRpmConfigOptions`](https://js.electronforge.io/interfaces/_electron_forge_maker_rpm.MakerRpmConfigOptions.html).

```javascript
{
Expand Down
1 change: 1 addition & 0 deletions packages/maker/rpm/src/MakerRpm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,4 @@ export default class MakerRpm extends MakerBase<MakerRpmConfig> {
}

export { MakerRpm, MakerRpmConfig };
export type { MakerRpmConfigOptions } from './Config.ts';
2 changes: 2 additions & 0 deletions packages/maker/snap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

You can only build the Snapcraft target on Linux systems with the `snapcraft` package installed.

Configuration options are documented in [`MakerSnapConfig`](https://js.electronforge.io/interfaces/_electron_forge_maker_snap.MakerSnapConfig.html).

```javascript
{
name: '@electron-forge/maker-snap',
Expand Down
4 changes: 2 additions & 2 deletions packages/maker/snap/src/Config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Options, SnapcraftConfig } from 'electron-installer-snap';

export type MakerSnapConfig = Omit<Options, 'arch' | 'dest' | 'src'> &
SnapcraftConfig;
export interface MakerSnapConfig
extends Omit<Options, 'arch' | 'dest' | 'src'>, SnapcraftConfig {}
4 changes: 4 additions & 0 deletions packages/maker/snap/typedoc.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "https://typedoc.org/schema.json",
"excludeExternals": false,
}
2 changes: 1 addition & 1 deletion packages/maker/squirrel/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Pre-requisites:
* Windows machine
* Linux machine with `mono` and `wine` installed.

Configuration options are documented in [`MakerSquirrelConfigOptions`](https://js.electronforge.io/interfaces/_electron_forge_maker_squirrel.InternalOptions.Options.html).
Configuration options are documented in [`MakerSquirrelConfigOptions`](https://js.electronforge.io/interfaces/_electron_forge_maker_squirrel.MakerSquirrelConfig.html).

```javascript
{
Expand Down
4 changes: 2 additions & 2 deletions packages/maker/squirrel/src/MakerSquirrel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ import {
Options as ElectronWinstallerOptions,
} from 'electron-winstaller';

export type MakerSquirrelConfig = Omit<
export interface MakerSquirrelConfig extends Omit<
ElectronWinstallerOptions,
'appDirectory' | 'outputDirectory'
>;
> {}

export default class MakerSquirrel extends MakerBase<MakerSquirrelConfig> {
name = 'squirrel';
Expand Down
4 changes: 4 additions & 0 deletions packages/maker/squirrel/typedoc.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "https://typedoc.org/schema.json",
"excludeExternals": false,
}
6 changes: 3 additions & 3 deletions packages/maker/wix/src/Config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { MSICreator, type MSICreatorOptions } from 'electron-wix-msi';

export type MakerWixConfig = Omit<
export interface MakerWixConfig extends Omit<
MSICreatorOptions,
| 'appDirectory'
| 'outputDirectory'
Expand All @@ -9,7 +9,7 @@ export type MakerWixConfig = Omit<
| 'version'
| 'manufacturer'
| 'exe'
> & {
> {
/**
* The app's description
*
Expand Down Expand Up @@ -44,4 +44,4 @@ export type MakerWixConfig = Omit<
* Allows for the modification of the MSICreator before create is called.
*/
beforeCreate?: (creator: MSICreator) => Promise<void> | void;
};
}
4 changes: 2 additions & 2 deletions packages/maker/wix/src/MakerWix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { styleText } from 'node:util';
import { getNameFromAuthor } from '@electron-forge/core-utils';
import { MakerBase, type MakerOptions } from '@electron-forge/maker-base';
import { ForgePlatform } from '@electron-forge/shared-types';
import { MSICreator, type MSICreatorOptions } from 'electron-wix-msi';
import { MSICreator } from 'electron-wix-msi';
import semver from 'semver';

import { MakerWixConfig } from './Config.js';
Expand Down Expand Up @@ -74,4 +74,4 @@ export default class MakerWix extends MakerBase<MakerWixConfig> {
}
}

export { MakerWix, MakerWixConfig, MSICreatorOptions };
export { MakerWix, MakerWixConfig };
4 changes: 4 additions & 0 deletions packages/maker/wix/typedoc.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "https://typedoc.org/schema.json",
"excludeExternals": false,
}
6 changes: 5 additions & 1 deletion packages/plugin/vite/src/VitePlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -537,4 +537,8 @@ function getServerURLs(urls: vite.ResolvedServerUrls) {
return output;
}

export { VitePlugin };
export { VitePlugin, VitePluginConfig };
export type {
VitePluginBuildConfig,
VitePluginRendererConfig,
} from './Config.ts';
2 changes: 2 additions & 0 deletions packages/plugin/webpack/src/Config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export interface WebpackPluginEntryPointNoWindow extends WebpackPluginEntryPoint
js: string;
}

/** @inline */
export type WebpackPluginEntryPoint =
| WebpackPluginEntryPointLocalWindow
| WebpackPluginEntryPointNoWindow
Expand Down Expand Up @@ -188,6 +189,7 @@ export interface WebpackPluginConfig {
>;
}

/** @inline */
export type WebpackConfiguration =
| RawWebpackConfiguration
| WebpackConfigurationFactory;
1 change: 1 addition & 0 deletions packages/plugin/webpack/src/WebpackConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ type WebpackMode = 'production' | 'development';

const d = debug('electron-forge:plugin:webpack:webpackconfig');

/** @inline */
export type ConfigurationFactory = (
env: string | Record<string, string | boolean | number> | unknown,
args: Record<string, unknown>,
Expand Down
7 changes: 7 additions & 0 deletions packages/plugin/webpack/src/WebpackPlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -817,3 +817,10 @@ the generated files). Instead, it is ${JSON.stringify(pj.main)}`);
}

export { WebpackPlugin, WebpackPluginConfig };
export type {
WebpackPluginRendererConfig,
WebpackPluginEntryPointLocalWindow,
WebpackPluginEntryPointNoWindow,
WebpackPluginEntryPointPreloadOnly,
WebpackPreloadEntryPoint,
} from './Config.ts';
1 change: 1 addition & 0 deletions packages/publisher/base-static/src/PublisherStatic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,4 @@ export default abstract class PublisherStatic<
}

export { PublisherStatic, StaticPublisherConfig, PublisherOptions };
export type { StaticArtifact };
1 change: 1 addition & 0 deletions packages/publisher/bitbucket/src/PublisherBitbucket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,3 +98,4 @@ export default class PublisherBitbucket extends PublisherBase<PublisherBitbucket
}

export { PublisherBitbucket, PublisherBitbucketConfig };
export type { BitbucketAuth, BitbucketRepository } from './Config.ts';
1 change: 1 addition & 0 deletions packages/publisher/github/src/PublisherGitHub.ts
Original file line number Diff line number Diff line change
Expand Up @@ -250,3 +250,4 @@ export default class PublisherGitHub extends PublisherBase<PublisherGitHubConfig
}

export { PublisherGitHub, PublisherGitHubConfig };
export type { GitHubRepository } from './Config.ts';
12 changes: 7 additions & 5 deletions packages/utils/types/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ export type ForgeListrTaskFn<Ctx = any> = ListrTask<
Ctx,
ListrDefaultRenderer
>['task'];
export type ElectronProcess = ChildProcess & { restarted: boolean };
export interface ElectronProcess extends ChildProcess {
restarted: boolean;
}

export type ForgePlatform = OfficialPlatform;
export type ForgeArch = OfficialArch | 'all';
Expand Down Expand Up @@ -124,14 +126,14 @@ export interface IForgePluginInterface {
}
/* eslint-enable @typescript-eslint/no-explicit-any */

export type ForgeRebuildOptions = Omit<
export interface ForgeRebuildOptions extends Omit<
RebuildOptions,
'buildPath' | 'electronVersion' | 'arch'
>;
export type ForgePackagerOptions = Omit<
> {}
export interface ForgePackagerOptions extends Omit<
ElectronPackagerOptions,
'dir' | 'arch' | 'platform' | 'out' | 'electronVersion'
>;
> {}
export interface ResolvedForgeConfig {
/**
* A string to uniquely identify artifacts of this build, will be appended
Expand Down
4 changes: 4 additions & 0 deletions packages/utils/types/typedoc.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"$schema": "https://typedoc.org/schema.json",
"excludeExternals": false,
}
12 changes: 0 additions & 12 deletions typedoc.json

This file was deleted.

Loading