1.0.11 • Published 6 years ago

autoloader.js v1.0.11

Weekly downloads
46
License
ISC
Repository
github
Last release
6 years ago

autoloader.js

This package is used to load directories and files in objects.

autoloader(dir, configs)

  • configs
    • rootParent: Set's the object where files will be loaded over using their name as key and they module.exports as value.
    • deep: Set's how many levels below the loader will go to load files.
    • only: (explained below in conditions)
    • without: (explained below in conditions)
    • withoutExtension: Set this to true to set conditions without file extensions.
    • indexNames: Autoloader by default loads all files on a directory into an object which is received from an index file's module.exports. If there is no index file then it uses an empty object {}. By default it has build in index.js and index.json as index names.
    • formatName: Used to set a function that will format file names Ex: (name) => name.replace('Controller', '')
    • formatNames: Same as formatName but it sets an object with dir name of dir full path as key and formatName-Function as value. This means that the format will only be applied on matched dirnames or dir full paths.
  • conditions: Is an array with values and functions used to check fulfillment. Here is an example to check if some specific name is fulfilled: [['index.js', 'test.js'], (name) => name.includes('.json'), 'hello.js'] in this case fulfillments are only index.js, test.js, *.json, hello.js, this conditional logic can be used in only and without configs to load all files without some or only some files.

Example

// configs folder with 3 files
// + configs
// |-- index.js
// |-- conf1.js
// |-- conf2.js

// conf1.js
module.exports = {
    a: 123,
};

// conf1.js
module.exports = {
    b: 345,
};

// conf2.js
module.exports = {
    c: 678,
};

// main.js
const autoloader = require('autoloader.js');
const path = require('path');

async function main() {
    // Example 1
    const configs = await autoloader(path.join(__dirname, 'configs'));
    // configs = { a: 123, conf1: { b: 456 }, conf2: { c: 678 } }
    // Example 2
    const configs = await autoloader(path.join(__dirname, 'configs'), { rootParent: {} });
    // configs = { conf1: { b: 456 }, conf2: { c: 678 } }
    // Example 3
    const configs = await autoloader(path.join(__dirname, 'configs'), { without: ['conf1.js'] });
    // configs = { a: 123, conf2: { c: 678 } }
}

main().catch(console.log);
1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago