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
cd2484d
refactor(typedoc): unify/improve configuration
SpacingBat3 Jul 19, 2026
1699d64
refactor(core): type-to-interface conversions
SpacingBat3 Jul 20, 2026
36db7f8
docs(core): document `BuildIndentifier*` references inline
SpacingBat3 Jul 20, 2026
4886b04
fix(maker-msix): add `Maker*ManifestVariables` alias
SpacingBat3 Jul 20, 2026
ed207c5
refactor(maker-snap): make `MakerSnapConfig` an interface
SpacingBat3 Jul 20, 2026
7e3ac12
refactor(maker-squirrel): make `MakerSquirrelConfig` an interface
SpacingBat3 Jul 20, 2026
e25bbca
refactor(maker-wix): make `MakerWixConfig` an interface
SpacingBat3 Jul 20, 2026
e5951b4
fix(maker-wix): drop MSICreatorOptions from API
SpacingBat3 Jul 20, 2026
220d34f
docs(plugin-webpack): mark aliases as inline
SpacingBat3 Jul 20, 2026
7fedc3e
fix(plugin-webpack): expose needed types
SpacingBat3 Jul 20, 2026
4a97abb
refactor(shared-types): make `ElectronProcess` an interface
SpacingBat3 Jul 20, 2026
8f7cb9b
fix(typedoc): selectively include externals in packages
SpacingBat3 Jul 20, 2026
e777f72
docs(typedoc): add documentations to external symbols
SpacingBat3 Jul 20, 2026
45b6482
fix(makers): correct/add links in Readmes' to symbols
SpacingBat3 Jul 20, 2026
d098faf
cosmetic(typedoc): fix formatting with `oxfmt`
SpacingBat3 Jul 20, 2026
7a5a12e
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: 0 additions & 1 deletion .oxfmtrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"packages/*/*/index.ts",
"packages/*/*/README.md",
"packages/*/*/tsconfig.json",
"packages/*/*/typedoc.json",
"packages/api/core/spec/fixture/api-tester/package.json",
"packages/api/core/spec/fixture/bad_external_forge_config/bad.js",
"packages/plugin/webpack/spec/**/.webpack",
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