@textlint/module-interop
TypeScript icon, indicating that this package has built-in type declarations

14.0.4 • Public • Published

@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

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.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

License

MIT © azu

Package Sidebar

Install

npm i @textlint/module-interop

Weekly Downloads

91,180

Version

14.0.4

License

MIT

Unpacked Size

86.4 kB

Total Files

14

Last publish

Collaborators

  • textlint-user
  • azu
  • 0x6b