@discordx/importer
v1.3.1
Published
A solution to import files on the module and commonjs at the same time
Downloads
7,152
Maintainers
Readme
📖 Introduction
You can use this library without discordx
Support esm and cjs at the same time
💻 Installation
Version 16.6.0 or newer of Node.js is required
npm install @discordx/importer
yarn add @discordx/importer
Usage
If you use this code with esm or ejs, it will tell you about your environment.
import { isESM } from "@discordx/importer";
console.log(`isESM: ${isESM()}`);
Resolve glob paths
const resolvedPaths = await resolve(`${__dirname}/commands/**.js`);
console.log(resolvedPaths);
Import glob paths
Here is an example that could be used with the commonjs or esm modules
Module - CommonJS
importx(`${__dirname}/commands/**.js`).then(() =>
console.log("All files imported"),
);
Module - ESNext
Remember: In esm, __dirname
is not defined, so here is a workaround
import { dirname, importx } from "@discordx/importer";
const __dirname = dirname(import.meta.url);
importx(`${__dirname}/commands/**.js`).then(() =>
console.log("All files imported"),
);
Combine - CommonJS and ESNext
If you are creating a module or extension of your own library, you can set it to auto-import paths based on the user module
import { dirname, importx, isESM } from "@discordx/importer";
const folder = isESM() ? dirname(import.meta.url) : __dirname;
importx(`${folder}/commands/**.js`).then(() =>
console.log("All files imported"),
);
Use relative path
You can use relative path, which will be more convenient to write code by eliminating DIRNAME
import { importx } from "@discordx/importer";
// relative path start from root folder
importx("./tests/commands/**.js").then(() => console.log("All files imported"));
📜 Documentation
☎️ Need help?
- Check frequently asked questions
- Check examples
- Ask in the community Discord server