All files / json-pack/src/nfs/v4/server/operations/node util.ts

48.48% Statements 16/33
44.82% Branches 13/29
100% Functions 2/2
55.55% Lines 10/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24      26x 47x   26x 11x 5x 5x 4x 4x 4x 3x                    
import {Nfsv4Stat} from '../../..';
import type {Logger} from '../../types';
 
export const isErrCode = (code: unknown, error: unknown): boolean =>
  !!error && typeof error === 'object' && (error as any).code === code;
 
export const normalizeNodeFsError = (err: unknown, logger: Logger): Nfsv4Stat => {
  if (isErrCode('ENOENT', err)) return Nfsv4Stat.NFS4ERR_NOENT;
  Iif (isErrCode('EACCES', err)) return Nfsv4Stat.NFS4ERR_ACCESS;
  if (isErrCode('EEXIST', err)) return Nfsv4Stat.NFS4ERR_EXIST;
  Iif (isErrCode('ENOTDIR', err)) return Nfsv4Stat.NFS4ERR_NOTDIR;
  Iif (isErrCode('EISDIR', err)) return Nfsv4Stat.NFS4ERR_ISDIR;
  if (isErrCode('EINVAL', err)) return Nfsv4Stat.NFS4ERR_INVAL;
  Eif (isErrCode('ENOTEMPTY', err)) return Nfsv4Stat.NFS4ERR_NOTEMPTY;
  if (isErrCode('ENOSPC', err)) return Nfsv4Stat.NFS4ERR_NOSPC;
  if (isErrCode('EROFS', err)) return Nfsv4Stat.NFS4ERR_ROFS;
  if (isErrCode('EXDEV', err)) return Nfsv4Stat.NFS4ERR_XDEV;
  if (isErrCode('EFBIG', err)) return Nfsv4Stat.NFS4ERR_FBIG;
  if (isErrCode('EMLINK', err)) return Nfsv4Stat.NFS4ERR_MLINK;
  if (isErrCode('ENAMETOOLONG', err)) return Nfsv4Stat.NFS4ERR_NAMETOOLONG;
  logger.error('UNEXPECTED_FS_ERROR', err);
  return Nfsv4Stat.NFS4ERR_IO;
};