mono/packages/fs/dist/utils/fs.js
2025-01-23 08:30:04 +01:00

39 lines
1.1 KiB
JavaScript

import * as fs from 'fs';
import { promisify } from '../promisify.js';
const isCallbackMethod = (key) => {
return [
typeof fs[key] === 'function',
!key.match(/Sync$/),
!key.match(/^[A-Z]/),
!key.match(/^create/),
!key.match(/^(un)?watch/),
].every(Boolean);
};
const adaptMethod = (name) => {
const original = fs[name];
return promisify(original);
};
const adaptAllMethods = () => {
const adapted = {};
Object.keys(fs).forEach((key) => {
if (isCallbackMethod(key)) {
if (key === 'exists') {
// fs.exists() does not follow standard
// Node callback conventions, and has
// no error object in the callback
adapted['exists'] = () => {
throw new Error('fs.exists() is deprecated');
};
}
else {
adapted[key] = adaptMethod(key);
}
}
else {
adapted[key] = fs[key];
}
});
return adapted;
};
module.exports = adaptAllMethods();