## 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`: ```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. ```js 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. ```js const requires = require('export-files'); module.exports = requires(__dirname, undefined, { ignoreDirs: [] }); ``` ### .recursive Recurse into child directories. **Type:** `boolean` **Default:** `false` **Example** ```js 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** ```js 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`, 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 extension - `name` - alias for `stem` - `basename` - the full file name, including file extension - `pascal` - pasacal case `stem`, useful for class names - `camel` - camel case `stem` - `lower` - lower case `stem` - `snake` - snake case `stem` - `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** ```js const requires = require('export-files'); module.exports = requires(__dirname, undefined, { case: ['camel', 'pascal'] }); ``` ## Changes **v3.0.0 - breaking changes** - Changes were made to support recursion and renaming keys. See available [options](#options).