chore: initialize recovered claude workspace
This commit is contained in:
43
src/utils/lockfile.ts
Normal file
43
src/utils/lockfile.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* Lazy accessor for proper-lockfile.
|
||||
*
|
||||
* proper-lockfile depends on graceful-fs, which monkey-patches every fs
|
||||
* method on first require (~8ms). Static imports of proper-lockfile pull this
|
||||
* cost into the startup path even when no locking happens (e.g. `--help`).
|
||||
*
|
||||
* Import this module instead of `proper-lockfile` directly. The underlying
|
||||
* package is only loaded the first time a lock function is actually called.
|
||||
*/
|
||||
|
||||
import type { CheckOptions, LockOptions, UnlockOptions } from 'proper-lockfile'
|
||||
|
||||
type Lockfile = typeof import('proper-lockfile')
|
||||
|
||||
let _lockfile: Lockfile | undefined
|
||||
|
||||
function getLockfile(): Lockfile {
|
||||
if (!_lockfile) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
||||
_lockfile = require('proper-lockfile') as Lockfile
|
||||
}
|
||||
return _lockfile
|
||||
}
|
||||
|
||||
export function lock(
|
||||
file: string,
|
||||
options?: LockOptions,
|
||||
): Promise<() => Promise<void>> {
|
||||
return getLockfile().lock(file, options)
|
||||
}
|
||||
|
||||
export function lockSync(file: string, options?: LockOptions): () => void {
|
||||
return getLockfile().lockSync(file, options)
|
||||
}
|
||||
|
||||
export function unlock(file: string, options?: UnlockOptions): Promise<void> {
|
||||
return getLockfile().unlock(file, options)
|
||||
}
|
||||
|
||||
export function check(file: string, options?: CheckOptions): Promise<boolean> {
|
||||
return getLockfile().check(file, options)
|
||||
}
|
||||
Reference in New Issue
Block a user