babel-plugin-transform-fs-promises
v1.0.5
Published
A Babel plugin to transform fs promises APIs
Maintainers
Readme
babel-plugin-transform-fs-promises
A Babel plugin to transform fs/promises imports and requires into their fs equivalents for compatibility with Node.js 14 and below.
Both fs/promises and node:fs/promises module specifiers are supported.
Compatible with Babel@^7.0.0.
Installation
npm install babel-plugin-transform-fs-promises --save-devUsage
Via .babelrc / babel.config.json
{
"plugins": ["babel-plugin-transform-fs-promises"]
}Via babel.config.js
module.exports = {
plugins: ["babel-plugin-transform-fs-promises"],
};Via Babel API
import { transformSync } from "@babel/core";
import babelPluginTransformFsPromises from "babel-plugin-transform-fs-promises";
const result = transformSync(code, {
plugins: [babelPluginTransformFsPromises],
});Transformations
The plugin handles all common ways of importing fs/promises (and its node: prefixed form node:fs/promises).
CJS — require()
| Input | Output |
|---|---|
| require('fs/promises') | require('fs').promises |
| module.require('fs/promises') | module.require('fs').promises |
Example:
// Input
const fs = require("fs/promises");
const { readFile, stat } = require("node:fs/promises");
// Output
const fs = require("fs").promises;
const { readFile, stat } = require("fs").promises;ESM — Dynamic import()
| Input | Output |
|---|---|
| import('fs/promises') | import('fs').then(_esModule => _esModule.promises) |
Example:
// Input
const fs = await import("fs/promises");
// Output
const fs = await import("fs").then(_esModule => _esModule.promises);ESM — Default import
| Input | Output |
|---|---|
| import fs from 'fs/promises' | import { promises as fs } from 'fs' |
Example:
// Input
import fs from "fs/promises";
// Output
import { promises as fs } from "fs";ESM — Named imports
| Input | Output |
|---|---|
| import { readFile } from 'fs/promises' | import { promises as _promises } from 'fs'; const { readFile } = _promises; |
Example:
// Input
import { readFile, stat } from "fs/promises";
// Output
import { promises as _promises } from "fs";
const { readFile, stat } = _promises;ESM — Default + named imports
| Input | Output |
|---|---|
| import fs, { readFile } from 'fs/promises' | import fs, { promises as _promises } from 'fs'; const { readFile } = _promises; |
Example:
// Input
import fs, { readFile } from "fs/promises";
// Output
import fs, { promises as _promises } from "fs";
const { readFile } = _promises;ESM — Namespace import
| Input | Output |
|---|---|
| import * as fs from 'fs/promises' | import { promises as fs } from 'fs' |
Example:
// Input
import * as fs from "fs/promises";
// Output
import { promises as fs } from "fs";ESM — Export all
| Input | Output |
|---|---|
| export * from 'fs/promises' | import { promises as _promises } from 'fs'; export default _promises; |
Example:
// Input
export * from "fs/promises";
// Output
import { promises as _promises } from "fs";
export default _promises;ESM — Named re-exports
| Input | Output |
|---|---|
| export { readFile } from 'fs/promises' | import { promises as _promises } from 'fs'; const { readFile: _readFile } = _promises; export { _readFile as readFile }; |
Example:
// Input
export { readFile } from "fs/promises";
// Output
import { promises as _promises } from "fs";
const { readFile: _readFile } = _promises;
export { _readFile as readFile };Relative
License
The Anti 996 License
