mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-08-18 03:57:02 +08:00
38 lines
1.4 KiB
TypeScript
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)
|
|
}
|