0.1.3 • Published 8 years ago

hmvc_loader v0.1.3

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

hmvc_loader

A non opnionated HMVC loader for node. It traverses the folders indexing JS files trhough an MVC logic

Usage

Giving a structure like:

  • root
    • componentName1
      • controllers
        • A.js
      • models B.js
      • views C.js
      • components
        • componentName2
          • controllers
            • D.js

It loads the namespace on a sensible way, can be used to build urls or simply acess components by

Factory initialization

    const Loader = require('hmvc_loader').Loader
    const path = 'myPath/root'
    const myLoader = Loader.getLoaderFromPath(path)

Map initialization

    const Loader = require('hmvc_loader').Loader
    const componentMap = {'controllers':{'TheNameSpaceThatIWant':{'SomeElem€ntname':'file.js'}}}
    const myLoader = new Loader(componentMap)

Component loading

    //Acessing A 
    const aInstance = myLoader.getComponent('controllers','componentName1','A')
    //Acessing D
    const dInstance = myLoader.getComponent('controllers','componentName1/componentName2','D')
    //Notice how the components was sliced

URl handling

The motivation for this library is to make the components acessible within itself and to make urls based on the controllers Withing each controller you may expect an url on the form of

    namespace/controllerName 

And a map on the form of

{method:[param1,param2]}

so you can call it like this

    
    const urlBuilder = (url,methods,obj){
    }
    myLoader.buildRoutes(urlBuilder)

Making your own structur and creation

The factory function has the follow structure

   const factory = (loader, namespace, name, file) => {
       return new require(file)(someMongooseInstance, loader, namespace)
   }
0.1.3

8 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago