export-files

node.js utility for exporting a directory of files as modules.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
Install
Install with npm (requires Node.js >=10):
$ npm install --save export-files
Heads up!
Currently this library only works with require
.
Usage
Specify the directory with files to export:
Example
Given that __dirname
has three files, a.js
, b.js
, and c.js
:
module.exports = require('export-files')(__dirname);
//=> { a: [getter], b: [getter], c: [getter] }
The second argment may be an object to intialize with. This is useful when you want to use export-files to extend an existing object.
const utils = {};
utils.doSomething = () => {};
module.exports = require('export-files')(__dirname, utils);
//=> { doSomething: [function], a: [getter], b: [getter], c: [getter] }
Options
.ignoreDirs
Directories to ignore.
Type: string|array
Default: ['.git', 'node_modules', 'test', 'tmp', 'temp', 'vendor']
Example
The following examples shows how to override the default values and, in this case, not ignore any directories.
const requires = require('export-files');
module.exports = requires(__dirname, undefined, { ignoreDirs: [] });
.recursive
Recurse into child directories.
Type: boolean
Default: false
Example
const requires = require('export-files');
module.exports = requires(__dirname, undefined, { recursive: true });
.filter
Function to exclude files from the result.
Type: function
Default: Excludes files named index.js
Example
const requires = require('export-files');
module.exports = requires(__dirname, undefined, file => file.name !== 'a.js');
.case
Modify the casing of keys for exported files.
Type: string
, array<string>
, or function
.case
may be defined as a function to use custom casing on exported names.
If defined as an array or string, valid values are any of the following:
stem
- the file name without modification, excluding file extensionname
- alias forstem
basename
- the full file name, including file extensionpascal
- pasacal casestem
, useful for class namescamel
- camel casestem
lower
- lower casestem
snake
- snake casestem
auto
- (default) attempts to automatically determine casing when exports might be a mixture of casings, like class names and camel case method names.
You may define multiple cases.
Default: auto
Example
const requires = require('export-files');
module.exports = requires(__dirname, undefined, { case: ['camel', 'pascal'] });
Changes
v3.0.0 - breaking changes
- Improvements were made to support recursion and renaming keys. See readme for more details and available options.
v0.2.0 - breaking changes
- Non-javascript files are no longer handled. That functionality was moved to to-exports. This decision was made to keep this lib as fast as possible.
- This library no longer takes any arguments besides the directory to read.
About
sh
$ npm install && npm test
sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Related projects
You might also be interested in these projects:
- export-dirs: Export directories and their files as node.js modules. | homepage
- file-reader: Read a glob of files, dynamically choosing the reader or requiring the files based on… more | homepage
- map-files: Return an object for a glob of files. Pass a
rename
function for the keys… more | homepage - to-exports: Create exports from a directory of non-javascript or javascript files. | homepage
Contributors
Commits | Contributor |
---|---|
43 | jonschlinkert |
4 | doowb |
Author
Jon Schlinkert
License
Copyright © 2021, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.8.0, on April 27, 2021.