mirror of
https://github.com/electron/electron.git
synced 2026-05-02 03:00:22 -04:00
* build: add oxfmt for code formatting and import sorting
Adds oxfmt as a devDependency alongside oxlint and wires it into the
lint pipeline. The .oxfmtrc.json config matches Electron's current JS
style (single quotes, semicolons, 2-space indent, trailing commas off,
printWidth 100) and configures sortImports with custom groups that
mirror the import/order pathGroups previously enforced by ESLint:
@electron/internal, @electron/*, and {electron,electron/**} each get
their own ordered group ahead of external modules.
- `yarn lint:fmt` runs `oxfmt --check` over JS/TS sources and is
chained into `yarn lint` so CI enforces it automatically.
- `yarn format` runs `oxfmt --write` for local fix-up.
- lint-staged invokes `oxfmt --write` on staged .js/.ts/.mjs/.cjs
files before oxlint, so formatting is applied at commit time.
The next commit applies the formatter to the existing codebase so the
check actually passes.
* chore: apply oxfmt formatting to JS and TS sources
Runs `yarn format` across lib/, spec/, script/, build/, default_app/,
and npm/ to bring the codebase in line with the .oxfmtrc.json settings
added in the previous commit. This is a pure formatting pass: import
statements are sorted into the groups defined by the config, method
chains longer than printWidth are broken, single-quoted strings
containing apostrophes are switched to double quotes, and a handful of
single-statement `if` bodies are re-wrapped and get braces added by
`oxlint --fix` to satisfy the `curly: multi-line` rule.
No behavior changes.
63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
import '@electron/internal/sandboxed_renderer/pre-init';
|
|
import { IPC_MESSAGES } from '@electron/internal/common/ipc-messages';
|
|
import type * as ipcRendererUtilsModule from '@electron/internal/renderer/ipc-renderer-internal-utils';
|
|
import {
|
|
createPreloadProcessObject,
|
|
executeSandboxedPreloadScripts
|
|
} from '@electron/internal/sandboxed_renderer/preload';
|
|
|
|
import * as events from 'events';
|
|
|
|
declare const binding: {
|
|
get: (name: string) => any;
|
|
process: NodeJS.Process;
|
|
createPreloadScript: (src: string) => Function;
|
|
};
|
|
|
|
const ipcRendererUtils =
|
|
require('@electron/internal/renderer/ipc-renderer-internal-utils') as typeof ipcRendererUtilsModule;
|
|
|
|
const { preloadScripts, process: processProps } = ipcRendererUtils.invokeSync<{
|
|
preloadScripts: ElectronInternal.PreloadScript[];
|
|
process: NodeJS.Process;
|
|
}>(IPC_MESSAGES.BROWSER_SANDBOX_LOAD);
|
|
|
|
const electron = require('electron');
|
|
|
|
const loadedModules = new Map<string, any>([
|
|
['electron', electron],
|
|
['electron/common', electron],
|
|
['events', events],
|
|
['node:events', events]
|
|
]);
|
|
|
|
const loadableModules = new Map<string, Function>([
|
|
['url', () => require('url')],
|
|
['node:url', () => require('url')]
|
|
]);
|
|
|
|
const preloadProcess = createPreloadProcessObject();
|
|
|
|
Object.assign(preloadProcess, binding.process);
|
|
Object.assign(preloadProcess, processProps);
|
|
|
|
Object.assign(process, processProps);
|
|
|
|
require('@electron/internal/renderer/ipc-native-setup');
|
|
|
|
executeSandboxedPreloadScripts(
|
|
{
|
|
loadedModules,
|
|
loadableModules,
|
|
process: preloadProcess,
|
|
createPreloadScript: binding.createPreloadScript,
|
|
exposeGlobals: {
|
|
Buffer,
|
|
// FIXME(samuelmaddock): workaround webpack bug replacing this with just
|
|
// `__webpack_require__.g,` which causes script error
|
|
global: globalThis
|
|
}
|
|
},
|
|
preloadScripts
|
|
);
|