Giter Club home page Giter Club logo

folder-loader's Introduction

folder-loader

Load node modules from folder, acts as they are one module.

Example

Place index.js like this in the folder you want to export as a module:

const loader = require('folder-loader');

module.exports = loader(__dirname, __filename);

the code above will exports every file/folder in this dir as an object with filename as key.

if you are exports sequelize module use iterator:

const loader = require('folder-loader'),
    Sequelize = require('sequelize'),
    debug = require('debug')('models::index'),
    config = require('config'); // Add your real config file here.
    
let sequelize = Sequelize(config),
    db = {};

for (let model_func of loader.iterator(__dirname, __filename)) {
  try {
    let model = model_func(sequelize, Sequelize);
    db[model.name] = model;
    debug("Import model " + model.name + " success.");
  }
  catch (error) {
    debug("Import model error: " + error);
  }
}

for (let modelName in db) {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
}

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

Reference

loader(dirname, filename, options)

Param Type Description
dirname String folder to load.
filename String file call this function.(to avoid stack overflow call loop).
options.filter_regexp Regexp test if need to load this module file.( Default: /^[^\.\-_#~]/i to avoid EMACS temp file. )
options.ext_regexp Regexp test the file ext. ( Default: /\.js$/i )
options.subfolder boolean export subfolders as module, Default: true
options.loader function function used to load modules. sign as (file => { return module; })

loader.iterator(dirname, filename, options)

It's a generator alias of loader, have the same options.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.