ECMAScript module interop library
npm install @textlint/module-interopECMAScript module interop library.
import .default from ES module or CommonJS module.
example.mjs
``ts
const value = 42;
export default value;
`
`ts
import {moduleInterop} from "@textlint/module-interop";
// Doesn't matter if require uses module.exports or ES Module export`
const value = moduleInterop(require("./example"));
console.log(value); // 42
Notes: This library is for common use.
This library is not depended on textlint.
Some rule modules use export default.
If you creating rule preset for textlint, you should wrap the required result.
`js`
const rule = require("textlint-rule-es-export-default-example");
console.log(rule); // { default: ruleImplementation }
This library resolve this issue by moduleInterop function.
`js````
const {moduleInterop} = require("@textlint/module-interop");
const rule = moduleInterop(require("textlint-rule-es-export-default-example"));
console.log(rule); // ruleImplementation
Install with npm:
npm install @textlint/module-interop
`ts`
const {moduleInterop} = require("@textlint/module-interop");
const rule = moduleInterop(require("textlint-rule-example")); // rule implementation
- leebenson/module-interop: ES6 module interop
- Same purpose, but it has different API
- izaakschroeder/interop-require: Require babel ES6 modules from node land.
- Same function, but it prevent static analyzer
- It is just dynamic require that prevent static analyzer like Asset Relocator Loader for Webpack.
See Releases page.
Install devDependencies and Run npm test:
npm test
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
1. Fork it!
2. Create your feature branch: git checkout -b my-new-featuregit commit -am 'Add some feature'
3. Commit your changes: git push origin my-new-feature`
4. Push to the branch:
5. Submit a pull request :D
MIT © azu