stubborn-fs
Advanced tools
Comparing version 1.2.3 to 1.2.4
@@ -1,3 +0,3 @@ | ||
declare const attemptifyAsync: <Args extends unknown[], Return>(fn: (...args: Args) => Promise<Return>, onError: (error: unknown) => undefined) => (...args: Args) => Promise<Return | undefined>; | ||
declare const attemptifySync: <Args extends unknown[], Return>(fn: (...args: Args) => Return, onError: (error: unknown) => undefined) => (...args: Args) => Return | undefined; | ||
declare const attemptifyAsync: <FN extends Function>(fn: FN, onError: (error: unknown) => undefined) => FN; | ||
declare const attemptifySync: <FN extends Function>(fn: FN, onError: (error: unknown) => undefined) => FN; | ||
export { attemptifyAsync, attemptifySync }; |
/* MAIN */ | ||
//FIXME: The return type of these functions is wrong, it doesn't account for returning "undefined", but a correct type cannot be written because generics cannot be extended properly, it seems | ||
const attemptifyAsync = (fn, onError) => { | ||
@@ -3,0 +4,0 @@ return function attemptified(...args) { |
@@ -17,3 +17,3 @@ /* IMPORT */ | ||
isNodeError: (error) => { | ||
return error instanceof Error; | ||
return (error instanceof Error); | ||
}, | ||
@@ -20,0 +20,0 @@ isRetriableError: (error) => { |
/// <reference types="node" /> | ||
/// <reference types="node" /> | ||
/// <reference types="node" /> | ||
import fs from 'node:fs'; | ||
declare const FS: { | ||
attempt: { | ||
chmod: (path: fs.PathLike, mode: fs.Mode) => Promise<void | undefined>; | ||
chown: (path: fs.PathLike, uid: number, gid: number) => Promise<void | undefined>; | ||
close: (fd: number) => Promise<void | undefined>; | ||
fsync: (fd: number) => Promise<void | undefined>; | ||
mkdir: (path: fs.PathLike, options?: fs.Mode | fs.MakeDirectoryOptions | null | undefined) => Promise<string | undefined>; | ||
realpath: (path: fs.PathLike, options?: fs.EncodingOption) => Promise<string | Buffer | undefined>; | ||
stat: (path: fs.PathLike, options?: fs.StatOptions | undefined) => Promise<fs.Stats | fs.BigIntStats | undefined>; | ||
unlink: (path: fs.PathLike) => Promise<void | undefined>; | ||
chmodSync: (path: fs.PathLike, mode: fs.Mode) => void | undefined; | ||
chownSync: (path: fs.PathLike, uid: number, gid: number) => void | undefined; | ||
closeSync: (fd: number) => void | undefined; | ||
existsSync: (path: fs.PathLike) => boolean | undefined; | ||
fsyncSync: (fd: number, callback: fs.NoParamCallback) => void | undefined; | ||
mkdirSync: (path: fs.PathLike, options?: fs.Mode | fs.MakeDirectoryOptions | null | undefined) => string | undefined; | ||
realpathSync: (path: fs.PathLike, options?: fs.EncodingOption) => string | Buffer | undefined; | ||
statSync: (path: fs.PathLike, options?: fs.StatSyncOptions | undefined) => fs.Stats | fs.BigIntStats | undefined; | ||
unlinkSync: (path: fs.PathLike) => void | undefined; | ||
chmod: typeof fs.chmod.__promisify__; | ||
chown: typeof fs.chown.__promisify__; | ||
close: typeof fs.close.__promisify__; | ||
fsync: typeof fs.fsync.__promisify__; | ||
mkdir: typeof fs.mkdir.__promisify__; | ||
realpath: typeof fs.realpath.__promisify__; | ||
stat: typeof fs.stat.__promisify__; | ||
unlink: typeof fs.unlink.__promisify__; | ||
chmodSync: typeof fs.chmodSync; | ||
chownSync: typeof fs.chownSync; | ||
closeSync: typeof fs.closeSync; | ||
existsSync: typeof fs.existsSync; | ||
fsyncSync: typeof fs.fsync; | ||
mkdirSync: typeof fs.mkdirSync; | ||
realpathSync: typeof fs.realpathSync; | ||
statSync: fs.StatSyncFn; | ||
unlinkSync: typeof fs.unlinkSync; | ||
}; | ||
retry: { | ||
close: (timeout: number) => (fd: number) => Promise<void>; | ||
fsync: (timeout: number) => (fd: number) => Promise<void>; | ||
open: (timeout: number) => (path: fs.PathLike, flags: fs.OpenMode, mode?: fs.Mode | null | undefined) => Promise<number>; | ||
readFile: (timeout: number) => (path: fs.PathOrFileDescriptor, options?: BufferEncoding | (fs.ObjectEncodingOptions & { | ||
flag?: string | undefined; | ||
}) | null | undefined) => Promise<string | Buffer>; | ||
rename: (timeout: number) => (oldPath: fs.PathLike, newPath: fs.PathLike) => Promise<void>; | ||
stat: (timeout: number) => (path: fs.PathLike, options?: fs.StatOptions | undefined) => Promise<fs.Stats | fs.BigIntStats>; | ||
write: (timeout: number) => (fd: number, string: string, position?: number | null | undefined, encoding?: BufferEncoding | null | undefined) => Promise<{ | ||
bytesWritten: number; | ||
buffer: string; | ||
}>; | ||
writeFile: (timeout: number) => (path: fs.PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: fs.WriteFileOptions | undefined) => Promise<void>; | ||
closeSync: (timeout: number) => (fd: number) => void; | ||
fsyncSync: (timeout: number) => (fd: number) => void; | ||
openSync: (timeout: number) => (path: fs.PathLike, flags: fs.OpenMode, mode?: fs.Mode | null | undefined) => number; | ||
readFileSync: (timeout: number) => (path: fs.PathOrFileDescriptor, options?: BufferEncoding | (fs.ObjectEncodingOptions & { | ||
flag?: string | undefined; | ||
}) | null | undefined) => string | Buffer; | ||
renameSync: (timeout: number) => (oldPath: fs.PathLike, newPath: fs.PathLike) => void; | ||
statSync: (timeout: number) => (path: fs.PathLike, options?: fs.StatSyncOptions | undefined) => fs.Stats | fs.BigIntStats | undefined; | ||
writeSync: (timeout: number) => (fd: number, string: string, position?: number | null | undefined, encoding?: BufferEncoding | null | undefined) => number; | ||
writeFileSync: (timeout: number) => (file: fs.PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: fs.WriteFileOptions | undefined) => void; | ||
close: (timeout: number) => typeof fs.close.__promisify__; | ||
fsync: (timeout: number) => typeof fs.fsync.__promisify__; | ||
open: (timeout: number) => typeof fs.open.__promisify__; | ||
readFile: (timeout: number) => typeof fs.readFile.__promisify__; | ||
rename: (timeout: number) => typeof fs.rename.__promisify__; | ||
stat: (timeout: number) => typeof fs.stat.__promisify__; | ||
write: (timeout: number) => typeof fs.write.__promisify__; | ||
writeFile: (timeout: number) => typeof fs.writeFile.__promisify__; | ||
closeSync: (timeout: number) => typeof fs.closeSync; | ||
fsyncSync: (timeout: number) => typeof fs.fsyncSync; | ||
openSync: (timeout: number) => typeof fs.openSync; | ||
readFileSync: (timeout: number) => typeof fs.readFileSync; | ||
renameSync: (timeout: number) => typeof fs.renameSync; | ||
statSync: (timeout: number) => fs.StatSyncFn; | ||
writeSync: (timeout: number) => typeof fs.writeSync; | ||
writeFileSync: (timeout: number) => typeof fs.writeFileSync; | ||
}; | ||
}; | ||
export default FS; |
@@ -1,3 +0,3 @@ | ||
declare const retryifyAsync: <Args extends unknown[], Return>(fn: (...args: Args) => Promise<Return>, isRetriableError: (error: unknown) => boolean | void) => (timeout: number) => (...args: Args) => Promise<Return>; | ||
declare const retryifySync: <Args extends unknown[], Return>(fn: (...args: Args) => Return, isRetriableError: (error: unknown) => boolean | void) => (timeout: number) => (...args: Args) => Return; | ||
declare const retryifyAsync: <FN extends Function>(fn: FN, isRetriableError: (error: unknown) => boolean | void) => (timeout: number) => FN; | ||
declare const retryifySync: <FN extends Function>(fn: FN, isRetriableError: (error: unknown) => boolean | void) => (timeout: number) => FN; | ||
export { retryifyAsync, retryifySync }; |
/* IMPORT */ | ||
import RetryfyQueue from './retryify_queue.js'; | ||
/* MAIN */ | ||
//FIXME: There are a boatload of anys here, but apparently generics cannot be extended properly, so... | ||
const retryifyAsync = (fn, isRetriableError) => { | ||
@@ -5,0 +6,0 @@ return function retrified(timestamp) { |
@@ -5,3 +5,3 @@ { | ||
"description": "Stubborn versions of Node's fs functions that try really hard to do their job.", | ||
"version": "1.2.3", | ||
"version": "1.2.4", | ||
"type": "module", | ||
@@ -8,0 +8,0 @@ "main": "dist/index.js", |
/* MAIN */ | ||
const attemptifyAsync = <Args extends unknown[], Return> ( fn: ( ...args: Args ) => Promise<Return>, onError: (( error: unknown ) => undefined) ): (( ...args: Args ) => Promise<Return | undefined>) => { | ||
//FIXME: The return type of these functions is wrong, it doesn't account for returning "undefined", but a correct type cannot be written because generics cannot be extended properly, it seems | ||
return function attemptified ( ...args: Args ): Promise<Return | undefined> { | ||
const attemptifyAsync = <FN extends Function> ( fn: FN, onError: (( error: unknown ) => undefined) ): FN => { | ||
return function attemptified ( ...args: any ): any { | ||
return fn.apply ( undefined, args ).catch ( onError ); | ||
}; | ||
} as any; | ||
}; | ||
const attemptifySync = <Args extends unknown[], Return> ( fn: ( ...args: Args ) => Return, onError: (( error: unknown ) => undefined) ): (( ...args: Args ) => Return | undefined) => { | ||
const attemptifySync = <FN extends Function> ( fn: FN, onError: (( error: unknown ) => undefined) ): FN => { | ||
return function attemptified ( ...args: Args ): Return | undefined { | ||
return function attemptified ( ...args: any ): any { | ||
@@ -28,3 +30,3 @@ try { | ||
}; | ||
} as any; | ||
@@ -31,0 +33,0 @@ }; |
@@ -28,3 +28,3 @@ | ||
return error instanceof Error; | ||
return ( error instanceof Error ); | ||
@@ -31,0 +31,0 @@ }, |
@@ -8,11 +8,13 @@ | ||
const retryifyAsync = <Args extends unknown[], Return> ( fn: ( ...args: Args ) => Promise<Return>, isRetriableError: (( error: unknown ) => boolean | void) ): (( timeout: number ) => ( ...args: Args ) => Promise<Return>) => { | ||
//FIXME: There are a boatload of anys here, but apparently generics cannot be extended properly, so... | ||
const retryifyAsync = <FN extends Function> ( fn: FN, isRetriableError: (( error: unknown ) => boolean | void) ): (( timeout: number ) => FN) => { | ||
return function retrified ( timestamp: number ) { | ||
return function attempt ( ...args: Args ): Promise<Return> { | ||
return function attempt ( ...args: any ): any { | ||
return RetryfyQueue.schedule ().then ( cleanup => { | ||
const onResolve = ( result: Return ): Return => { | ||
const onResolve = ( result: any ): Promise<any> => { | ||
@@ -25,3 +27,3 @@ cleanup (); | ||
const onReject = ( error: unknown ): Promise<Return> => { | ||
const onReject = ( error: unknown ): Promise<any> => { | ||
@@ -49,3 +51,3 @@ cleanup (); | ||
}; | ||
} as any; | ||
@@ -56,7 +58,7 @@ }; | ||
const retryifySync = <Args extends unknown[], Return> ( fn: ( ...args: Args ) => Return, isRetriableError: (( error: unknown ) => boolean | void) ): (( timeout: number ) => ( ...args: Args ) => Return) => { | ||
const retryifySync = <FN extends Function> ( fn: FN, isRetriableError: (( error: unknown ) => boolean | void) ): (( timeout: number ) => FN) => { | ||
return function retrified ( timestamp: number ) { | ||
return function attempt ( ...args: Args ): Return { | ||
return function attempt ( ...args: any ): any { | ||
@@ -77,3 +79,3 @@ try { | ||
}; | ||
} as any; | ||
@@ -80,0 +82,0 @@ }; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
23501
505