Remove use of __dirname from main process

Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
This commit is contained in:
automated-signal
2026-03-27 13:42:15 -05:00
committed by GitHub
parent 1e1f17a36b
commit cbe7b9bd1a
39 changed files with 222 additions and 337 deletions

View File

@@ -3,6 +3,7 @@
import { parse } from 'csv-parse';
import fs from 'node:fs/promises';
import { join } from 'node:path';
import { z } from 'zod';
import { _getAvailableLocales } from '../../app/locale.node.js';
import { parseUnknown } from '../util/schemas.std.js';
@@ -21,8 +22,9 @@ if (!process.argv[4]) {
throw new Error('Missing third argument: output json file');
}
const localeDisplayNamesBuildPath = process.argv[4];
const rootDir = join(__dirname, '..', '..');
const availableLocales = _getAvailableLocales();
const availableLocales = _getAvailableLocales(rootDir);
const LocaleString = z.string().refine(arg => {
try {

View File

@@ -14,7 +14,7 @@ import { Format, NtExecutable } from 'pe-library';
import ELECTRON_BINARY from 'electron';
import { drop } from '../util/drop.std.js';
import packageJson from '../util/packageJson.node.js';
import { packageJson } from '../util/packageJson.node.js';
const { ImageDosHeader, ImageNtHeaders, ImageDirectoryEntry } = Format;

View File

@@ -6,7 +6,7 @@ import { execSync } from 'node:child_process';
import { writeFileSync } from 'node:fs';
import { DAY } from '../util/durations/index.std.js';
import { version } from '../util/packageJson.node.js';
import { packageJson } from '../util/packageJson.node.js';
import { isNotUpdatable } from '../util/version.std.js';
const unixTimestamp = parseInt(
@@ -18,7 +18,7 @@ const buildCreation = unixTimestamp * 1000;
// NB: Build expirations are also determined via users' auto-update settings; see
// getExpirationTimestamp
const validDuration = isNotUpdatable(version) ? DAY * 30 : DAY * 90;
const validDuration = isNotUpdatable(packageJson.version) ? DAY * 30 : DAY * 90;
const buildExpiration = buildCreation + validDuration;
const localProductionPath = join(
@@ -29,7 +29,7 @@ const localProductionPath = join(
const localProductionConfig = {
buildCreation,
buildExpiration,
...(isNotUpdatable(version) ? { updatesEnabled: false } : {}),
...(isNotUpdatable(packageJson.version) ? { updatesEnabled: false } : {}),
};
writeFileSync(

View File

@@ -5,7 +5,7 @@ import type { BuildResult } from 'electron-builder';
import { notarize } from '@electron/notarize';
import { build } from '../util/packageJson.node.js';
import { packageJson } from '../util/packageJson.node.js';
export async function afterAllArtifactBuild({
platformToTargets,
@@ -24,7 +24,7 @@ export async function afterAllArtifactBuild({
return;
}
const appBundleId = build.appId;
const appBundleId = packageJson.build.appId;
if (!appBundleId) {
throw new Error(
'appBundleId must be provided in package.json: build.appId'

View File

@@ -6,7 +6,7 @@ import type { AfterPackContext } from 'electron-builder';
import { notarize } from '@electron/notarize';
import { build } from '../util/packageJson.node.js';
import { packageJson } from '../util/packageJson.node.js';
export async function afterSign({
appOutDir,
@@ -22,7 +22,7 @@ export async function afterSign({
const appPath = path.join(appOutDir, `${productFilename}.app`);
const appBundleId = build.appId;
const appBundleId = packageJson.build.appId;
if (!appBundleId) {
throw new Error(
'appBundleId must be provided in package.json: build.appId'

View File

@@ -4,7 +4,10 @@
import { stat } from 'node:fs/promises';
import { join } from 'node:path';
import { name as NAME, version as VERSION } from '../util/packageJson.node.js';
import { packageJson } from '../util/packageJson.node.js';
const NAME = packageJson.name;
const VERSION = packageJson.version;
const SUPPORT_CONFIG = new Set([
'linux',

View File

@@ -9,7 +9,7 @@ import { mkdtemp, cp } from 'node:fs/promises';
import { constants as fsConstants } from 'node:fs';
import { _electron as electron } from 'playwright';
import { productName, name } from '../util/packageJson.node.js';
import { packageJson } from '../util/packageJson.node.js';
import { gracefulRmRecursive } from '../util/gracefulFs.node.js';
import { consoleLogger } from '../util/consoleLogger.std.js';
@@ -21,24 +21,24 @@ let exe: string;
if (process.platform === 'darwin') {
archive = join(
'mac-arm64',
`${productName}.app`,
`${packageJson.productName}.app`,
'Contents',
'Resources',
'app.asar'
);
exe = join(
'mac-arm64',
`${productName}.app`,
`${packageJson.productName}.app`,
'Contents',
'MacOS',
productName
packageJson.productName
);
} else if (process.platform === 'win32') {
archive = join('win-unpacked', 'resources', 'app.asar');
exe = join('win-unpacked', `${productName}.exe`);
exe = join('win-unpacked', `${packageJson.productName}.exe`);
} else if (process.platform === 'linux') {
archive = join('linux-unpacked', 'resources', 'app.asar');
exe = join('linux-unpacked', name);
exe = join('linux-unpacked', packageJson.name);
} else {
throw new Error(`Unsupported platform: ${process.platform}`);
}
@@ -87,7 +87,7 @@ const main = async () => {
);
console.log('Checking window title');
assert.strictEqual(await window.title(), productName);
assert.strictEqual(await window.title(), packageJson.productName);
await app.close();
} finally {