tzero-classes
v2.0.0
Published
Autoloads JS files based on file path.
Readme
About
Autoloads JS files based on file path.
Register namespaces for different modules to merge packages.
Usage
1. Structure
module_root/
classes/
Foo.class.js
foo/
Bar.class.js
other_module_root/
other_classes/
other/
Other.class.js2. Register classes in your index.js.
const classes = require('tzero-classes');
classes.register('yournamespace', __dirname + '/classes');3. You can register more path's to one namespace.
classes.register('yournamespace', __dirname + '/other_classes');4. Autoload a class in your project.
let foo = new yournamespace.Foo();
let bar = new yournamespace.foo.Bar();
let other = new yournamespace.other.Other();API
register(namespace, path, options = {})
Register a path for autoload classes.
- Parameters:
{String} namespace- namespace is a global object to access the autoloader{String} path- the path to the classes (example:__dirname + '/classes'){Object} options- the options
Options
path
- Type:
String
The root path to look for classes. (It will be overridden by the path parameter of register function.)
classExtension
- Type:
String - Default:
'.class.js'
The extension of a filename to detect classes. (Only will work with default search function.)
search(path, search, options)
- Type:
Function - Default:
'./lib/TZeroLoaderProxy.search'
The function to search for classes or packages.
For easy use, use the return this.foundClass(path); or return this.foundPackage(path); function.
Parameters:
{String} path- the current path to look for packages and classes{String} search- the search key to look for{Object} options- the options object for this proxy (it will inherit from register function)
Return
{Object|null}:Object- return an object with a field'type'and'path'{String} type- the type of the found object either'class'or'package'{String} path- the full path of the found object
null- if no object with this name is foundreturn null
