Add telemetry for TRAP caching

This commit is contained in:
Edoardo Pirovano 2022-08-15 14:44:43 +01:00
parent ca10a6d552
commit 4139682b64
No known key found for this signature in database
GPG key ID: 047556B5D93FFE28
63 changed files with 1195 additions and 126 deletions

37
node_modules/get-folder-size/README.md generated vendored Normal file
View file

@ -0,0 +1,37 @@
# get-folder-size
Get the size of a folder by iterating through its sub-files and folders.
## Usage
```js
getFolderSize(folder, [regexIgnorePattern], callback)
```
Example:
```js
const getSize = require('get-folder-size');
getSize(myFolder, (err, size) => {
if (err) { throw err; }
console.log(size + ' bytes');
console.log((size / 1024 / 1024).toFixed(2) + ' MB');
});
```
## CLI tool
```bash
npm i -g get-folder-size
get-folder-size --folder=/my/folder --ignore=node_modules
```
## Size vs Size on disk
[This module calculates the actual file size, and not the size on disk.](https://web.archive.org/web/20140712235443/https://stackoverflow.com/questions/15470787/please-help-me-understand-size-vs-size-on-disk)
## License
MIT

22
node_modules/get-folder-size/bin/get-folder-size generated vendored Executable file
View file

@ -0,0 +1,22 @@
#!/usr/bin/env node
const getSize = require('../');
const argv = require('gar')(process.argv.slice(2));
const path = require('path');
// --folder or -f or last argument passed
const folder = argv.folder || argv.f || argv._[argv._.length - 1];
if (!folder) {
console.error('missing folder argument');
console.error('\n Usage:\n');
console.error('get-folder-size --folder=/home/alex/www');
process.exit(1);
}
const ignore = argv.ignore ? new RegExp(argv.ignore) : null;
getSize(path.resolve(folder), ignore, (err, bytes) => {
if (err) { throw err; }
console.log((bytes / 1024 / 1024).toFixed(2) + ' Mb');
});

15
node_modules/get-folder-size/example.js generated vendored Normal file
View file

@ -0,0 +1,15 @@
'use strict';
const path = require('path');
const getSize = require('./');
if (!process.env.FOLDER) {
throw new Error('FOLDER env var needed');
}
getSize(path.resolve(process.env.FOLDER), (err, size) => {
if (err) { throw err; }
console.log(size + ' bytes');
console.log((size / 1024 / 1024).toFixed(2) + ' Mb');
});

66
node_modules/get-folder-size/index.js generated vendored Normal file
View file

@ -0,0 +1,66 @@
'use strict';
const fs = require('fs');
const path = require('path');
const eachAsync = require('tiny-each-async');
function readSizeRecursive(seen, item, ignoreRegEx, callback) {
let cb;
let ignoreRegExp;
if (!callback) {
cb = ignoreRegEx;
ignoreRegExp = null;
} else {
cb = callback;
ignoreRegExp = ignoreRegEx;
}
fs.lstat(item, function lstat(e, stats) {
let total = !e ? (stats.size || 0) : 0;
if (stats) {
if (seen.has(stats.ino)) { return cb(null, 0); }
seen.add(stats.ino);
}
if (!e && stats.isDirectory()) {
fs.readdir(item, (err, list) => {
if (err) { return cb(err); }
eachAsync(
list,
5000,
(dirItem, next) => {
readSizeRecursive(
seen,
path.join(item, dirItem),
ignoreRegExp,
(error, size) => {
if (!error) { total += size; }
next(error);
}
);
},
(finalErr) => {
cb(finalErr, total);
}
);
});
} else {
if (ignoreRegExp && ignoreRegExp.test(item)) {
total = 0;
}
cb(e, total);
}
});
}
module.exports = (...args) => {
args.unshift(new Set());
return readSizeRecursive(...args);
};

33
node_modules/get-folder-size/package.json generated vendored Normal file
View file

@ -0,0 +1,33 @@
{
"name": "get-folder-size",
"version": "2.0.1",
"description": "Get the size of a folder by recursively iterating through all its sub(files && folders).",
"main": "index.js",
"bin": {
"get-folder-size": "bin/get-folder-size"
},
"dependencies": {
"gar": "^1.0.4",
"tiny-each-async": "2.0.3"
},
"devDependencies": {
"husky": "^0.10.1",
"mocha": "^5.2.0",
"proxyquire": "^1.7.3",
"should": "^7.1.1"
},
"scripts": {
"test": "mocha",
"precommit": "npm test"
},
"keywords": [
"folder",
"size"
],
"repository": {
"type": "git",
"url": "https://github.com/alessioalex/get-folder-size.git"
},
"author": "Alexandru Vladutu <alexandru.vladutu@gmail.com>",
"license": "MIT"
}

102
node_modules/get-folder-size/test.js generated vendored Normal file
View file

@ -0,0 +1,102 @@
'use strict';
const proxyquire = require('proxyquire');
const path = require('path');
require('should');
let files = [
'/root',
'/root/folder',
'/root/folder/subfolder',
'/root/folder/subfolder/file4',
'/root/folder/file3',
'/root/file1',
'/root/file2'
];
const sizes = {
'/root/folder/subfolder/file4': 4,
'/root/folder/file3': 3,
'/root/file1': 1,
'/root/file2': 2
};
let inos = {};
Object.keys(sizes).forEach(file => {
const file2 = file.replace(/\//g, path.sep);
sizes[file2] = sizes[file];
});
files = files.map(file => file.replace(/\//g, path.sep));
let inoCounter = 0;
const fs = {
lstat: (item, cb) => {
const stats = {
size: sizes[item],
isDirectory: () => {
return ((item === files[0]) || /folder$/.test(item));
},
ino: inos[item] || ++inoCounter
};
setImmediate(() => cb(null, stats));
},
readdir: (item, cb) => {
setImmediate(() => {
const list = files.filter(file => {
return ((file !== item) && (file.indexOf(item) !== -1));
}).map(file => {
return file.replace(item, '');
}).filter(it => {
return (it.lastIndexOf(path.sep) <= 0);
});
cb(null, list);
});
}
};
describe('getSize', () => {
let getSize;
before(() => {
getSize = proxyquire.load('./index', {
fs: fs
});
});
it('should get the size of the folder', (done) => {
getSize(files[0], (err, total) => {
total.should.eql(10);
done();
});
});
it('should ignore files', (done) => {
getSize(files[0], /(file1|file2)/, (err, total) => {
total.should.eql(7);
done();
});
});
it('should not count hardlinks twice', (done) => {
inos['/root/file1'] = 222;
inos['/root/file2'] = inos['/root/file1'];
getSize(files[0], (err, total) => {
total.should.eql(8);
delete inos['/root/file1'];
delete inos['/root/file2'];
done();
});
});
});