60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
# asteroid-module
|
|
v0.0.1
|
|
|
|
## About
|
|
|
|
An `AsteroidModule` is an abstract class that provides a base for all asteroid modules. Its constructor takes an `options` argument provided by a `config.json`. It is also supplied with dependencies it lists on its constructor based on information in the `config.json` file.
|
|
|
|
## Example
|
|
|
|
See [resource](../resource) for an example asteroid module.
|
|
|
|
## AsteroidModule.dependencies
|
|
|
|
An asteroid module may define dependencies on other modules that can be configured in `config.json`. Eg. the [collection](../collection/lib/collection.js) module defines a [model](../model) dependency.
|
|
|
|
Collection.dependencies = {
|
|
model: 'model'
|
|
}
|
|
|
|
A configuration then must define:
|
|
|
|
{
|
|
"dependencies": {
|
|
"model": "some-model-module"
|
|
}
|
|
}
|
|
|
|
Where `some-model-module` is an existing `model` instance.
|
|
|
|
## AsteroidModule.optionsDefinition
|
|
|
|
Asteroid Modules may also describe the options they accept. This will validate the configuration and make sure users have supplied required information and in a way that the module can use to construct a working instance.
|
|
|
|
Here is an example options description for the [oracle database connection module](../connections/oracle-connection).
|
|
|
|
// must come after `inherits()`
|
|
OracleConnection.defineOption('hostname', 'string', {required: true});
|
|
OracleConnection.defineOption('port', 'number', {min: 10, max: 99999});
|
|
OracleConnection.defineOption('username', 'string');
|
|
OracleConnection.defineOption('password', 'string');
|
|
|
|
|
|
### AsteroidModule.defineOption(key, type, [options])
|
|
|
|
**key** the option name given in `config.json`.
|
|
|
|
**type** must be one of:
|
|
|
|
- string
|
|
- boolean
|
|
- number
|
|
- array
|
|
|
|
**options** depend on the type
|
|
|
|
{
|
|
required: true, // options are optional by default
|
|
min: 10, // minimum length or value
|
|
max: 100, // max length or value
|
|
} |