https://github.com/chancehudson/not-index
Require all lowercase-file.js files that are not index.js
https://github.com/chancehudson/not-index
Last synced: about 1 year ago
JSON representation
Require all lowercase-file.js files that are not index.js
- Host: GitHub
- URL: https://github.com/chancehudson/not-index
- Owner: chancehudson
- License: mit
- Created: 2017-05-12T01:18:53.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-05-23T05:33:25.000Z (about 4 years ago)
- Last Synced: 2025-03-05T06:57:04.319Z (over 1 year ago)
- Language: JavaScript
- Size: 14.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# not-index
Require all `lowercase-filenames.js` that are not `index.js`
This package makes including directories easier by making `require('./dir')`
return an array of required files
Example `dir/index.js`
```js
// Synchronous
module.exports = require('not-index')(__dirname);
// Promised - using async fs call for reading the directory
// All require calls still block though
module.exports = require('not-index').promise(__dirname);
// Access subdirectory
// Arguments will be put into path.join
module.exports = require('not-index')([__dirname, 'subdir'])
// Access subdirectory and use a custom regex
module.exports = require('not-index')([__dirname, 'subdir'], /[a-z0-9]\.js/)
```
Example: the current directory contains the following files. Entries with a
trailing slash are directories.
```
my-dir/
file.js
file-with-dashes.js
file.with.js
file.with
file.js.notjs
index.js
tmp/
zzz/
```
The default file matching regex is `/^(?!index)[0-9a-z\-]+\.js$/`. This can be overridden by passing a regex as the last argument (see above).
Synchronous
```js
const requires = require('not-index')(__dirname);
// requires is an array with the following:
[
require('./file.js'),
require('./file-with-dashes.js'),
require('./file.with.js')
]
```
Asynchronous
```js
require('not-index')
.promise()
.then(requires => {
// requires is the same as above but the asynchronous fs call is used for
// reading the current directory
});
```
Example exporting classes by name on a single object
```js
const requires = require('not-index')(__dirname);
module.exports = requires.reduce((_classes, _class) => {
return {
..._classes,
[_class.name]: _class,
}
}, {})
```