All files / src index.ts

100% Statements 50/50
100% Branches 18/18
100% Functions 3/3
100% Lines 50/50

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 99 100 101 102 103  1x 1x 1x 1x               1x   18x   18x   18x 14x   14x   1x 1x   1x 1x   2x 2x 2x   2x 2x 2x   2x 2x 2x   2x 2x 2x   1x 1x   2x 2x 2x   1x       4x                           1x   18x     18x   1x   1x   2x 2x   2x 2x   2x 2x   2x 2x   1x   6x 6x   1x        
import Drive from './classes/drive';
import {Darwin} from './platforms/darwin';
import {Linux} from './platforms/linux';
import {Windows} from './platforms/windows';
import {Utils} from './utils/utils';
 
/**
 * Get disk info according current platform.
 *
 * @author Cristiam Mercado
 * @return {Promise<Drive[]>} Promise resolves array of disks and their info.
 */
export function getDiskInfo(): Promise<Drive[]> {
 
    return new Promise((resolve, reject) => {
 
        try {
 
            const platform = Utils.detectPlatform();
            let drivesInfo: Drive[];
 
            switch (platform) {
                case 'aix': // IBM AIX platform
                    reject(new Error(`Platform not supported: ${platform}`));
                    break;
                case 'android': // Android platform
                    reject(new Error(`Platform not supported: ${platform}`));
                    break;
                case 'darwin': // Darwin platfrom(MacOS, IOS etc)
                    drivesInfo = Darwin.run();
                    resolve(drivesInfo);
                    break;
                case 'freebsd': // FreeBSD Platform
                    drivesInfo = Darwin.run();
                    resolve(drivesInfo);
                    break;
                case 'linux': // Linux Platform
                    drivesInfo = Linux.run();
                    resolve(drivesInfo);
                    break;
                case 'openbsd': // OpenBSD platform
                    drivesInfo = Darwin.run();
                    resolve(drivesInfo);
                    break;
                case 'sunos': // SunOS platform
                    reject(new Error(`Platform not supported: ${platform}`));
                    break;
                case 'win32': // windows platform
                    drivesInfo = Windows.run();
                    resolve(drivesInfo);
                    break;    
                default: // unknown platform
                    reject(new Error(`Platform not recognized: ${platform}`));
            }
 
        } catch (e) {
            reject(e);
        }
 
    })
 
}
 
/**
 * Get disk info according current platform in an syncronous way.
 *
 * @author Cristiam Mercado
 * @return {Drive[]} Array of disks and their info.
 * @throws {Error} Current platform must be win32, linux or darwin.
 */
export function getDiskInfoSync(): Drive[] {
 
    const platform = Utils.detectPlatform();
    let drivesInfo: Drive[];
 
    switch (platform) {
        case 'aix': // IBM AIX platform
            throw new Error("Platform not supported: " + platform);
        case 'android': // Android platform
            throw new Error("Platform not supported: " + platform);
        case 'darwin': // Darwin platfrom(MacOS, IOS etc)
            drivesInfo = Darwin.run();
            return drivesInfo;
        case 'freebsd': // FreeBSD Platform
            drivesInfo = Darwin.run();
            return drivesInfo;
        case 'linux': // Linux Platform
            drivesInfo = Linux.run();
            return drivesInfo;
        case 'openbsd': // OpenBSD platform
            drivesInfo = Darwin.run();
            return drivesInfo;
        case 'sunos': // SunOS platform
            throw new Error("Platform not supported: " + platform);
        case 'win32': // windows platform
            drivesInfo = Windows.run();
            return drivesInfo;
        default: // unknown platform
            throw new Error("Platform not recognized: " + platform);
    }
 
}