Package Exports
- @textlint/module-interop
- @textlint/module-interop/lib/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@textlint/module-interop) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@textlint/module-interop
ECMAScript module interop library.
import .default
from ES module or CommonJS module.
example.mjs
const value = 42;
export default value;
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.
Why it is needed?
Some rule modules use export default
.
If you creating rule preset for textlint, you should wrap the required result.
const rule = require("textlint-rule-es-export-default-example");
console.log(rule); // { default: ruleImplementation }
This library resolve this issue by moduleInterop
function.
const {moduleInterop} = require("@textlint/module-interop");
const rule = moduleInterop(require("textlint-rule-es-export-default-example"));
console.log(rule); // ruleImplementation
Install
Install with npm:
npm install @textlint/module-interop
Usage
const {moduleInterop} = require("@textlint/module-interop");
const rule = moduleInterop(require("textlint-rule-example")); // rule implementation
Related
- 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.
Changelog
See Releases page.
Running tests
Install devDependencies and Run npm test
:
npm test
Contributing
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
Author
License
MIT © azu