MCPcopy
hub / github.com/electron/forge / listrMake

Function listrMake

packages/api/core/src/api/make.ts:107–429  ·  view source on GitHub ↗
(
  childTrace: typeof autoTrace,
  {
    dir: providedDir = process.cwd(),
    interactive = false,
    skipPackage = false,
    arch = getHostArch() as ForgeArch,
    platform = process.platform as ForgePlatform,
    overrideTargets,
    outDir,
  }: MakeOptions,
  receiveMakeResults?: (results: ForgeMakeResult[]) => void,
)

Source from the content-addressed store, hash-verified

105}
106
107export const listrMake = (
108 childTrace: typeof autoTrace,
109 {
110 dir: providedDir = process.cwd(),
111 interactive = false,
112 skipPackage = false,
113 arch = getHostArch() as ForgeArch,
114 platform = process.platform as ForgePlatform,
115 overrideTargets,
116 outDir,
117 }: MakeOptions,
118 receiveMakeResults?: (results: ForgeMakeResult[]) => void,
119) => {
120 const listrOptions: ForgeListrOptions<MakeContext> = {
121 concurrent: false,
122 rendererOptions: {
123 collapseSubtasks: false,
124 collapseErrors: false,
125 },
126 silentRendererCondition: !interactive,
127 fallbackRendererCondition:
128 Boolean(process.env.DEBUG) || Boolean(process.env.CI),
129 };
130
131 const runner = new Listr<MakeContext>(
132 [
133 {
134 title: 'Loading configuration',
135 task: childTrace<Parameters<ForgeListrTaskFn<MakeContext>>>(
136 { name: 'load-forge-config', category: '@electron-forge/core' },
137 async (_, ctx) => {
138 const resolvedDir = await resolveDir(providedDir);
139 if (!resolvedDir) {
140 throw new Error(
141 'Failed to locate startable Electron application',
142 );
143 }
144
145 ctx.dir = resolvedDir;
146 ctx.forgeConfig = await getForgeConfig(resolvedDir);
147 },
148 ),
149 },
150 {
151 title: 'Resolving make targets',
152 task: childTrace<Parameters<ForgeListrTaskFn<MakeContext>>>(
153 { name: 'resolve-make-targets', category: '@electron-forge/core' },
154 async (_, ctx, task) => {
155 const { dir, forgeConfig } = ctx;
156 ctx.actualOutDir = outDir || getCurrentOutDir(dir, forgeConfig);
157
158 if (!['darwin', 'win32', 'linux', 'mas'].includes(platform)) {
159 throw new Error(
160 `'${platform}' is an invalid platform. Choices are 'darwin', 'mas', 'win32' or 'linux'.`,
161 );
162 }
163
164 // eslint-disable-next-line @typescript-eslint/no-explicit-any

Callers 2

publish.tsFile · 0.90
make.tsFile · 0.85

Calls 12

delayTraceTillSignalFunction · 0.90
listrPackageFunction · 0.90
getHookListrTasksFunction · 0.90
readMutatedPackageJsonFunction · 0.90
getElectronVersionFunction · 0.90
runMutatingHookFunction · 0.90
childTraceFunction · 0.85
generateTargetsFunction · 0.85
isElectronForgeMakerFunction · 0.85
parseArchsFunction · 0.85
makeMethod · 0.45

Tested by

no test coverage detected