fs.access doens' do anything
import {promises as fs} from "fs";
import * as oldfs from "fs";
(async function() {
// fs.stat has higher level abstraction
const stat = await fs.stat(__dirname);
console.log(stat.isDirectory());
console.log(stat.isFile());
console.log(stat.ctime);
console.log(stat.size);
try {
// fs.access is low level API, it throws error when it doesn't match any of the flags
// is dir exists? writable? readable?
await fs.access(__dirname, oldfs.constants.F_OK | oldfs.constants.W_OK | oldfs.constants.R_OK);
} catch (error) {
console.log(`${__dirname} is not exists / writable / readable`);
}
})();