basant307/AI_Governance_Project
048
1 2/* IMPORT */3 4import {IS_USER_ROOT} from './constants';5 6/* MAIN */7 8const Handlers = {9 10 /* API */11 12 isChangeErrorOk: ( error: unknown ): boolean => { //URL: https://github.com/isaacs/node-graceful-fs/blob/master/polyfills.js#L315-L34213 14 if ( !Handlers.isNodeError ( error ) ) return false;15 16 const {code} = error;17 18 if ( code === 'ENOSYS' ) return true;19 20 if ( !IS_USER_ROOT && ( code === 'EINVAL' || code === 'EPERM' ) ) return true;21 22 return false;23 24 },25 26 isNodeError: ( error: unknown ): error is NodeJS.ErrnoException => {27 28 return ( error instanceof Error );29 30 },31 32 isRetriableError: ( error: unknown ): boolean => {33 34 if ( !Handlers.isNodeError ( error ) ) return false;35 36 const {code} = error;37 38 if ( code === 'EMFILE' || code === 'ENFILE' || code === 'EAGAIN' || code === 'EBUSY' || code === 'EACCESS' || code === 'EACCES' || code === 'EACCS' || code === 'EPERM' ) return true;39 40 return false;41 42 },43 44 onChangeError: ( error: unknown ): undefined => {45 46 if ( !Handlers.isNodeError ( error ) ) throw error;47 48 if ( Handlers.isChangeErrorOk ( error ) ) return;49 50 throw error;51 52 }53 54};55 56/* EXPORT */57 58export default Handlers;59 