https://github.com/coderaiser/simport
Import like with require but using await
https://github.com/coderaiser/simport
Last synced: 9 months ago
JSON representation
Import like with require but using await
- Host: GitHub
- URL: https://github.com/coderaiser/simport
- Owner: coderaiser
- License: mit
- Created: 2020-12-25T17:27:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-01-14T14:07:22.000Z (about 4 years ago)
- Last Synced: 2025-05-20T19:06:52.463Z (11 months ago)
- Language: JavaScript
- Homepage:
- Size: 47.9 KB
- Stars: 30
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
README
# Simport [![License][LicenseIMGURL]][LicenseURL] [![NPM version][NPMIMGURL]][NPMURL] [![Build Status][BuildStatusIMGURL]][BuildStatusURL] [![Coverage Status][CoverageIMGURL]][CoverageURL]
Use [dynamic imports](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Dynamic_Imports) just like plain old [require](https://nodejs.org/api/esm.html#esm_require).
With simport you can:
- get `require`
- get `__filename` or `__dirname`
- load json
- avoid extensions
- avoid destructuring default
- pass `simport` into functions like [tryToCatch](https://github.com/coderaiser/try-to-catch)
- use [absolute path in windows](https://github.com/nodejs/node/issues/31710#issuecomment-587434048)
## Install
`npm i simport`
## API
### createSimport
Commonjs:
```js
const {createSimport} = require('simport');
const simport = createSimport(__filename);
```
ESM:
```js
import {createSimport} from 'simport';
const simport = createSimport(import.meta.url);
// you can import json
await simport('./package.json');
// returns
({
name: simport,
});
// you can avoid .js extension
await simport('./server');
// you can avoid destructure default
const validate = await simport('./validate');
// same as
const {default: validate2} = await import('./validate.js');
```
### createCommons
```js
import {createCommons} from 'simport';
const {
__filename,
__dirname,
require,
} = createCommons(import.meta.url);
// now you have plain old CommonJS variables
```
## License
MIT
[NPMIMGURL]: https://img.shields.io/npm/v/simport.svg?style=flat
[BuildStatusIMGURL]: https://travis-ci.com/coderaiser/simport.svg?branch=master
[LicenseIMGURL]: https://img.shields.io/badge/license-MIT-317BF9.svg?style=flat
[NPMURL]: https://npmjs.org/package/simport "npm"
[BuildStatusURL]: https://travis-ci.com/coderaiser/simport "Build Status"
[LicenseURL]: https://tldrlegal.com/license/mit-license "MIT License"
[CoverageURL]: https://coveralls.io/github/coderaiser/simport?branch=master
[CoverageIMGURL]: https://coveralls.io/repos/coderaiser/simport/badge.svg?branch=master&service=github