README
@discordx/importer
You can use this library without discordx
Support esm and cjs at the same time
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
console.log(resolve(`${__dirname}/commands/**.js`));
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 convinient to write code by eleminating DIRNAME
import { importx } from "@discordx/importer";
// relative path start from root folder
importx("./tests/commands/**.js").then(() => console.log("All files imported"));