Files
WechatExplorer/src/main/preload-env.ts
T

38 lines
1.4 KiB
TypeScript

import fs from 'fs'
import path from 'path'
function prependPath(values: string[]): void {
if (process.platform !== 'win32') return
const existing = process.env.PATH || ''
const next = Array.from(new Set(values.filter(Boolean))).join(path.delimiter)
process.env.PATH = next ? `${next}${path.delimiter}${existing}` : existing
process.env.Path = process.env.PATH
}
try {
const archDir = process.arch === 'arm64' ? 'arm64' : 'x64'
const resourceRoots = [
path.join(process.cwd(), 'resources'),
path.join(process.cwd(), 'resources', 'resources'),
path.join(process.resourcesPath || '', 'resources'),
process.resourcesPath || ''
].filter((value, index, list) => value && list.indexOf(value) === index && fs.existsSync(value))
const resourcesRoot = resourceRoots[0] || path.join(process.cwd(), 'resources')
const dllDirs = resourceRoots.flatMap((root) => [
root,
path.join(root, 'wcdb', 'win32', archDir),
path.join(root, 'wcdb', 'win32', 'x64'),
path.join(root, 'key', 'win32', archDir),
path.join(root, 'key', 'win32', 'x64'),
path.join(root, 'runtime', 'win32')
])
process.env.WCDB_RESOURCES_PATH = process.env.WCDB_RESOURCES_PATH || resourcesRoot
process.env.WEFLOW_PROJECT_NAME = process.env.WEFLOW_PROJECT_NAME || 'WeFlow'
prependPath(dllDirs.filter((dir) => fs.existsSync(dir)))
} catch (error) {
console.error('[WechatExplorer] failed to enforce local DLL priority:', error)
}