@putout/plugin-nodejs 
🐊Putout plugin adds ability to transform to new nodejs.org API and best practices.
Install
npm i putout @putout/plugin-nodejs -D
Options
{
"rules": {
"nodejs/convert-fs-promises": "on",
"nodejs/convert-promisify-to-fs-promises": "on",
"nodejs/convert-dirname-to-url": "on",
"nodejs/remove-process-exit": "on"
}
}
Rules
convert-fs-promises
Convert fs.promises into form that will be simpler to use and convert from in ESM to:
import {readFile} from 'fs/promises';
❌ Incorrect code example
const {readFile} = require('fs').promises;
✅ Correct code Example
const {readFile} = require('fs/promises');
convert-promisify-to-fs-promises
❌ Incorrect code example
const fs = require('fs');
const readFile = promisify(fs.readFile);
✅ Correct code Example
const {readFile} = require('fs/promises');
convert-dirname-to-url
Only for EcmaScript Modules.
❌ Incorrect code example
import {readFile} from 'fs/promises';
const file1 = join(__dirname, '../../package.json');
const file2 = path.join(__dirname, '../../package.json');
✅ Correct code Example
import {readFile} from 'fs/promises';
const file1 = new URL('../../package.json', import.meta.url);
const file2 = new URL('../../package.json', import.meta.url);
remove-process-exit
In most cases process.exit() is called from bin directory, if not - disable this rule using match.
-process.exit();
License
MIT