tzero-classes v2.0.0
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.js
2. 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 objectnull
- if no object with this name is foundreturn null