mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 16:02:32 +00:00
Migrate fileURLToPath(import.meta.url) / dirname(...) boilerplate to the
native import.meta.dirname / import.meta.filename, then enable the rule
at error so new code stays on the native form.
The oxlint autofix rewrites the expression but leaves the now-unused
node:url / node:path imports behind (which the already-enabled
no-unused-vars=error would then flag), so this commit also removes those
34 orphaned imports — trimming the named import where other names are
still used, deleting the line where it was the sole import.
Scope is build scripts + Node-env tests only (config/scripts, tools/
benchmarks, *.test.{ts,mjs}, vitest configs); zero shipped runtime code.
The native properties are exact equivalents (Node >= 20.11; repo is on
24), so behavior is unchanged.
Verified: oxlint 0 errors tree-wide (root + mobile), oxfmt clean,
typecheck (node+cli+web) + mobile tsc pass, root vitest 22825 passed /
0 failed, mobile vitest 1018 passed. Exercised the rewritten scripts
directly: build:relay (6 targets), ensure-native-runtime,
verify-macos-entitlements all run correctly with import.meta.dirname.
50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
import { spawn } from 'node:child_process'
|
|
import path from 'node:path'
|
|
import process from 'node:process'
|
|
import { ensureMobileExpoCli } from './mobile-expo-cli.mjs'
|
|
|
|
const scriptDir = import.meta.dirname
|
|
const mobileDir = path.resolve(scriptDir, '..')
|
|
|
|
function pnpmCommand(args) {
|
|
return {
|
|
command: 'pnpm',
|
|
args,
|
|
shell: process.platform === 'win32'
|
|
}
|
|
}
|
|
|
|
function runPnpm(args) {
|
|
const pnpm = pnpmCommand(args)
|
|
return new Promise((resolve, reject) => {
|
|
const child = spawn(pnpm.command, pnpm.args, {
|
|
cwd: mobileDir,
|
|
env: process.env,
|
|
shell: pnpm.shell,
|
|
stdio: 'inherit'
|
|
})
|
|
child.on('error', reject)
|
|
child.on('exit', (code, signal) => {
|
|
if (signal) {
|
|
reject(new Error(`pnpm ${args.join(' ')} was terminated by ${signal}`))
|
|
} else if (code === 0) {
|
|
resolve()
|
|
} else {
|
|
reject(new Error(`pnpm ${args.join(' ')} exited with code ${code}`))
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
async function main() {
|
|
await ensureMobileExpoCli(mobileDir)
|
|
await runPnpm(['exec', 'expo', 'start', ...process.argv.slice(2)])
|
|
}
|
|
|
|
main().catch((error) => {
|
|
console.error(`[start] ${error.message}`)
|
|
process.exit(1)
|
|
})
|