Skip to content

Latest commit

 

History

History

importer

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Discord server NPM version NPM downloads Build status paypal

Create a discord bot with TypeScript and Decorators!

📖 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?

💖 Thank you

You can support discordx by giving it a GitHub star.