int0h / npm-hddSpace

This module provides getting information about free space and size of hdds
8 stars 1 forks source link
hdd nodejs space

hdd-space

This module provides getting information about free space and size of storage devices. Values represent amount of bytes.

Build Status Coverage Status

Update [August 2017]:

Update [November 2016]:

Installation:

npm i hdd-space

Example of usage:

// typescript:
import hddSpace from 'hdd-space';

hddSpace({format: 'auto'}, info => console.log(info));

or

// typescript:
import {getHddInfo} from 'hdd-space';

getHddInfo({format: 'auto'}, info => console.log(info));

or

// typescript:
import {fetchHddInfo} from 'hdd-space';

fetchHddInfo({format: 'auto'})
  .then(info => console.log(info));

// or

...
console.log(await fetchHddInfo({format: 'auto'}));
...
var hddSpace = require('hdd-space');
hddSpace(function(info){
    console.log(info);
});

Output:

//win32
{ parts:
   [ { free: 1895112704, size: 34359734272, place: 'C:', letter: 'C:' },
     { free: 144044032, size: 50925137920, place: 'D:', letter: 'D:' },
     { free: 109913382912,
       size: 990202818560,
       place: 'F:',
       letter: 'F:' },
     { free: 1714561073152,
       size: 2000396742656,
       place: 'I:',
       letter: 'I:' },
     { free: 1173352448, size: 7819231232, place: 'J:', letter: 'J:' } ],
  total: { free: 1827686965248, size: 3083703664640 } }

It's possible to pass option object as the first argument. Options:

format can be one of the following (case insesetive):

Custom format example

var hddSpace = require('hdd-space');
hddSpace({
    format: function (s) { return s.toLocaleString(); }
}, function (info) {
    console.log(info);
});

Output:

{ parts:
   [ { free: '1,895,206,912',
       size: '34,359,734,272',
       place: 'C:',
       letter: 'C:' },
     { free: '144,277,504',
       size: '50,925,137,920',
       place: 'D:',
       letter: 'D:' },
     ...],
  total: { free: '1,827,687,292,928', size: '3,083,703,664,640' } }

Auto format example

var hddSpace = require('hdd-space');
hddSpace({ format: 'auto' }, function (info) {
    console.log(info);
});

Output:

//win32:
{ parts:
   [ { free: '1.76 GB', size: '32.00 GB', place: 'C:', letter: 'C:' },
     { free: '147.07 MB', size: '47.43 GB', place: 'D:', letter: 'D:' },
     { free: '102.37 GB',
       size: '922.20 GB',
       place: 'F:',
       letter: 'F:' },
     { free: '1.56 TB', size: '1.82 TB', place: 'I:', letter: 'I:' },
     { free: '1.09 GB', size: '7.28 GB', place: 'J:', letter: 'J:' }
     ...],
  total: { free: '1.66 TB', size: '2.80 TB' } }

//linux:

{ parts:
   [ { free: '981.19 MB',
       size: '981.19 MB',
       place: '/dev',
       mountOn: '/dev' },
     { free: '196.18 MB',
       size: '200.05 MB',
       place: '/run',
       mountOn: '/run' },
     { free: '44.25 GB', size: '55.76 GB', place: '/', mountOn: '/' },
     ...]
  total: { free: '44.25 GB', size: '55.76 GB' } }

// MacOS:

{ parts:
   [ { free: '65.31 GB', size: '111.86 GB', place: '/', mountOn: '/' },
     { free: '0 Bytes',
       size: '184.00 KB',
       place: '/dev',
       mountOn: '/dev' },
     ...],
  total: { free: '65.31 GB', size: '111.86 GB' } }