13 lines
311 B
TypeScript
13 lines
311 B
TypeScript
import { move } from 'fs-extra/esm'
|
|
import { rename } from 'fs/promises'
|
|
|
|
export async function tryAtomicMove (src: string, destination: string) {
|
|
try {
|
|
await rename(src, destination)
|
|
} catch (err) {
|
|
if (err?.code !== 'EXDEV') throw err
|
|
|
|
return move(src, destination, { overwrite: true })
|
|
}
|
|
}
|