Mass require is a package meant for modular packages. It's able to require iterative content in a fast and simple format with configurable settings
-
Commands for a Discord bot
If your bot's commands are in separate files in a folder, you would be able to require them all using mass require
-
JSON data storage
If using JSON to store data for separate entities in different files, you would be able to require it all in a format that would be easy to handle and manipulate
The best practice for using mass require would be to have an index.js
file in a folder with code along the lines of
const {
toObject
} = require('mass-require')
module.exports = toObject(__dirname, {
exclude: /^index\.js$/ // Don't require the file that is mass requiring or else your code will break
})
When importing the library into your code, you will be presented with an object containing two functions.
toArray
This will require all the specified files and insert their values into an array. If recursion is enabled, all values from a subfolder will be put in an array entry (that is inside the root array). Meaning, your array would look like this:
['foo', ['bar', 'baz']]
toObject
This will require all the specified files and insert their values into an object where the key pertains to the name of the file. The files of a subfolder will be under a property named after the subfolder's name. (If removeExtension is true
, it will be the name of the file without its extension)
Configure import properties by specifying an object as the second parameter for both functions (The first being the directory)
Name | Type | Description | Default |
---|---|---|---|
recursive |
Boolean |
Whether subfolder files should be required | false |
flatten |
Boolean |
If recursive, whether subfolder files should be placed in the root structure rather than a nested one | false |
removeExtension (toObject only) |
Boolean |
Whether file extensions should be removed from the property name | true |
exclude |
RegExp |
A Regex pattern to exclude files from being required |