All files / src index.ts

100% Statements 31/31
100% Branches 8/8
100% Functions 3/3
100% Lines 31/31

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  1x 1x 1x 1x               1x   8x   8x   8x 7x   7x   2x 2x 2x   2x 2x 2x   2x 2x 2x   1x       1x                         1x   7x     7x   2x 2x   2x 2x   2x 2x   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 'win32':
                    drivesInfo = Windows.run();
                    resolve(drivesInfo);
                    break;
                case 'linux':
                    drivesInfo = Linux.run();
                    resolve(drivesInfo);
                    break;
                case 'darwin':
                    drivesInfo = Darwin.run();
                    resolve(drivesInfo);
                    break;
                default:
                    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.
 */
export function getDiskInfoSync(): Drive[] {
 
    const platform = Utils.detectPlatform();
    let drivesInfo: Drive[];
 
    switch (platform) {
        case 'win32':
            drivesInfo = Windows.run();
            return drivesInfo;
        case 'linux':
            drivesInfo = Linux.run();
            return drivesInfo;
        case 'darwin':
            drivesInfo = Darwin.run();
            return drivesInfo;
        default:
            throw new Error(`Platform not recognized: ${platform}`);
    }
 
}