All files / src mixin-file-manager.function.ts

4.65% Statements 2/43
0% Branches 0/11
0% Functions 0/8
4.65% Lines 2/43

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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98            1x               1x                                                                                                                                                                      
/**
 * Exports file manager mixin function.
 *
 * @module
 */
import type { FileManager } from './file-manager.interface';
import { createFileSystemModule as getFileSystem } from './file-system-module';
 
/**
 * File manager mixin.
 *
 * @param subject Mixin subject.
 * @returns Reference to mixin subject.
 */
export function mixinFileManager<T extends object>(subject: T) {
  const self = subject as T & FileManager;
 
  self.createDirectory = function (path, callback) {
    const fs = getFileSystem();
 
    if (fs) {
      fs.createDirectory(path, callback);
    } else {
      callback(false, 'File system module not found');
    }
 
    return self;
  };
 
  self.isAbsolutePath = function (path) {
    const fs = getFileSystem();
 
    Iif (fs) {
      return fs.isAbsolutePath(path);
    }
 
    return false;
  };
 
  self.isDirectory = function (path) {
    const fs = getFileSystem();
 
    Iif (fs) {
      return fs.isDirectory(path);
    }
 
    return false;
  };
 
  self.isFile = function (path) {
    const fs = getFileSystem();
 
    Iif (fs) {
      return fs.isFile(path);
    }
 
    return false;
  };
 
  self.removeDirectory = function (path, callback) {
    const fs = getFileSystem();
 
    if (fs) {
      fs.removeDirectory(path, callback);
    } else {
      callback(false, 'File system module not found');
    }
 
    return self;
  };
 
  self.removeFile = function (path, callback) {
    const fs = getFileSystem();
 
    if (fs) {
      fs.removeFile(path, callback);
    } else {
      callback(false, 'File system module not found');
    }
 
    return self;
  };
 
  self.renameFile = function (dirPath, oldName, newName, callback) {
    const fs = getFileSystem();
 
    if (fs) {
      fs.renameFile(dirPath, oldName, newName, callback);
    } else {
      callback(false, 'File system module not found');
    }
 
    return self;
  };
 
  return self;
}