2.0.0 • Published 7 years ago

tzero-classes v2.0.0

Weekly downloads
5
License
ISC
Repository
github
Last release
7 years ago

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 object

    • null - if no object with this name is found return null
2.0.0

7 years ago

1.0.1

8 years ago

1.0.0

8 years ago