Files
Bingbing b09cde814d refactor: extract insomnia-data into workspace package (#10010)
Move insomnia-data models, services, database code, and common utilities into a dedicated workspace package. Update consumers to import from the new package entrypoints and declare workspace dependencies for the extracted package.
2026-06-02 09:49:10 +00:00

35 lines
1.0 KiB
TypeScript

type Platform = NodeJS.Platform;
interface INodeProcess {
platform: string;
}
declare const window: {
app?: {
process: INodeProcess;
};
};
let nodeProcess: INodeProcess | undefined;
if (
// eslint-disable-next-line unicorn/no-typeof-undefined
typeof window !== 'undefined' &&
window.app?.process !== undefined &&
typeof window.app.process.platform === 'string'
) {
// Renderer: use window.app.process exposed by preload
nodeProcess = window.app.process as INodeProcess;
} else if (typeof process !== 'undefined' && typeof process.platform === 'string') {
// Main: use Node.js native process
nodeProcess = process;
}
// Get platform from nodeProcess (unified approach)
const _platform: Platform = nodeProcess?.platform ? (nodeProcess.platform as Platform) : ('linux' as Platform);
// Export constants (VSCode style)
export const platform: Platform = _platform;
export const isMac: boolean = _platform === 'darwin';
export const isWindows: boolean = _platform === 'win32';
export const isLinux: boolean = _platform === 'linux';