mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-21 05:50:55 +08:00
32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
const fs = require("node:fs");
|
|
const { pathToFileURL } = require("node:url");
|
|
const { join } = require("node:path");
|
|
async function main() {
|
|
const root = fs.mkdtempSync(join(require("node:os").tmpdir(), "scriptc-statfs-callback-"));
|
|
try {
|
|
let returned = false;
|
|
await new Promise((resolve, reject) => {
|
|
const result = fs.statfs(pathToFileURL(root), (err, stats) => {
|
|
if (err) reject(err); else { console.log("default", returned, typeof stats.bsize, stats.blocks > 0); resolve(undefined); }
|
|
});
|
|
console.log("return", result);
|
|
returned = true;
|
|
});
|
|
const stored = fs.statfs;
|
|
await new Promise((resolve, reject) => stored(Buffer.from(root), { bigint: true }, (err, stats) => {
|
|
if (err) reject(err); else { console.log("captured", err, typeof stats.bsize, stats.blocks * stats.bsize > 0n); resolve(undefined); }
|
|
}));
|
|
returned = false;
|
|
const missing = join(root, "absent", "nested");
|
|
await new Promise(resolve => {
|
|
fs.statfs(missing, (...args) => {
|
|
const err = args[0], stats = args[1];
|
|
console.log("error", returned, args.length, stats, err.name, err.code, err.message.includes("statfs"), err.message.includes(missing));
|
|
resolve(undefined);
|
|
});
|
|
returned = true;
|
|
});
|
|
} finally { fs.rmSync(root, { recursive: true, force: true }); }
|
|
}
|
|
main();
|