Tiny and extendable library for class parameters type checking and reflection
npm install @ircam/parameters
> Tiny and extendable library for class parameters type checking and reflection.
```
npm install [--save] @ircam/parameters
`js
import parameters from '@ircam/parameters'
const definitions = {
myBooleanParam: {
type: 'boolean',
default: false,
constant: false,
metas: { kind: 'static' }
},
myIntegerParam: {
type: 'integer',
min: 0,
max: Infinity,
default: 0,
constant: false,
metas: {
kind: 'static',
shortDescr: 'My First Integer Param',
fullDescr: 'This parameter is my first integer parameter in this example.',
unit: '%',
step: 1,
max: 100,
}
},
// ...
};
class MyClass {
constructor(options) {
this.params = parameters(definitions, options);
this.params.addListener((name, value, metas) => {
// ...
});
this.params.addParamListener('myIntegerParam', (value, metas) => {
// ...
});
}
}
const myInstance = new MyClass({ myIntegerParam: 42 });
const bValue = myInstance.params.get('myBooleanParam');
> false
const iValue = myInstance.params.get('myIntegerParam');
> 42
myInstance.params.set('myIntegerParam', definitions.myIntegerParam.min - 1);
`
Kind: global class
* ParameterBag
* _instance_
* .getDefinitions() ⇒ Object
* .getValues() ⇒ Object
* .get(name) ⇒ Mixed
* [.set(name, value, [forcePropagation])](#ParameterBag+set) ⇒ Mixed
* .has(name) ⇒ Boolean
* [.reset([name])](#ParameterBag+reset)
* .addListener(callback)
* .removeListener(callback)
* [.addParamListener(name, callback, [trigger])](#ParameterBag+addParamListener)
* .removeParamListener(name, callback)
* _inner_
* ~listenerCallback : function
* ~paramListenerCallack : function
Kind: instance method of ParameterBag
Kind: instance method of ParameterBag
Kind: instance method of ParameterBag
Returns: Mixed - - Value of the parameter.
| Param | Type | Description |
| --- | --- | --- |
| name | String | Name of the parameter. |
Kind: instance method of ParameterBag
Returns: Mixed - - New value of the parameter.
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| name | String | | Name of the parameter. |
| value | Mixed | | Value of the parameter. |
| [forcePropagation] | Boolean | false | if true, propagate value even if the value has not changed. |
parameter exists or not.Kind: instance method of ParameterBag
| Param | Type | Description |
| --- | --- | --- |
| name | String | Name of the parameter. |
$3
Reset a parameter to its init value. Reset all parameters if no argument.Kind: instance method of ParameterBag
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| [name] | String | | Name of the parameter to reset. |
$3
Add listener to all param updates.Kind: instance method of ParameterBag
| Param | Type | Description |
| --- | --- | --- |
| callback | ParameterBag~listenerCallack | Listener to register. |
$3
Remove listener from all param changes.Kind: instance method of ParameterBag
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| callback | ParameterBag~listenerCallack | | Listener to remove. If
null remove all listeners. |$3
Add listener to a given param updates.Kind: instance method of ParameterBag
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| name | String | | Parameter name. |
| callback | paramListenerCallack | | Function to apply when the value of the parameter changes. |
| [trigger] | Boolean | false | Execute the callback immediately with current parameter value. |
$3
Remove listener from a given param updates.Kind: instance method of ParameterBag
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| name | String | | Parameter name. |
| callback | paramListenerCallack | | Listener to remove. If
null remove all listeners. |$3
Kind: inner typedef of ParameterBag | Param | Type | Description |
| --- | --- | --- |
| name | String | Parameter name. |
| value | Mixed | Updated value of the parameter. |
| [meta=] | Object | Given meta data of the parameter. |
$3
Kind: inner typedef of ParameterBag | Param | Type | Description |
| --- | --- | --- |
| value | Mixed | Updated value of the parameter. |
| [meta=] | Object | Given meta data of the parameter. |
parameters(definitions, values) ⇒ ParameterBag
Factory for the ParameterBag class.Kind: global function
| Param | Type | Description |
| --- | --- | --- |
| definitions | [ 'Object' ].<String, paramDefinition> | Object describing the parameters. |
| values | [ 'Object' ].<String, Mixed> | Initialization values for the parameters. |
$3
Register a new type for the parameters factory.Kind: static method of parameters
| Param | Type | Description |
| --- | --- | --- |
| typeName | String | Value that will be available as the
type of a param definition. |
| parameterDefinition | parameterDefinition | Object describing the parameter. |booleanDefinition : Object
Kind: global typedef
Properties| Name | Type | Default | Description |
| --- | --- | --- | --- |
| type | String | 'boolean' | Define a boolean parameter. |
| default | Boolean | | Default value of the parameter. |
| constant | Boolean | false | Define if the parameter is constant. |
| nullable | Boolean | false | Define if the parameter is nullable. |
| event | Boolean | true | Define if the parameter is a volatile, e.g. set its value back to null after propagation of its value. When
true, nullable is automatically set to true and default to null. |
| metas | Object | {} | Optionnal metadata of the parameter. |integerDefinition : Object
Kind: global typedef
Properties| Name | Type | Default | Description |
| --- | --- | --- | --- |
| type | String | 'integer' | Define a boolean parameter. |
| default | Mixed | | Default value of the parameter. |
| min | Number | -Infinity | Minimum value of the parameter. |
| max | Number | +Infinity | Maximum value of the parameter. |
| constant | Boolean | false | Define if the parameter is constant. |
| nullable | Boolean | false | Define if the parameter is nullable. |
| event | Boolean | true | Define if the parameter is a volatile, e.g. set its value back to null after propagation of its value. When
true, nullable is automatically set to true and default to null. |
| metas | Object | {} | Optionnal metadata of the parameter. |floatDefinition : Object
Kind: global typedef
Properties| Name | Type | Default | Description |
| --- | --- | --- | --- |
| type | String | 'float' | Define a boolean parameter. |
| default | Mixed | | Default value of the parameter. |
| min | Number | -Infinity | Minimum value of the parameter. |
| max | Number | +Infinity | Maximum value of the parameter. |
| constant | Boolean | false | Define if the parameter is constant. |
| nullable | Boolean | false | Define if the parameter is nullable. |
| event | Boolean | true | Define if the parameter is a volatile, e.g. set its value back to null after propagation of its value. When
true, nullable is automatically set to true and default to null. |
| metas | Object | {} | Optionnal metadata of the parameter. |stringDefinition : Object
Kind: global typedef
Properties| Name | Type | Default | Description |
| --- | --- | --- | --- |
| type | String | 'string' | Define a boolean parameter. |
| default | Mixed | | Default value of the parameter. |
| constant | Boolean | false | Define if the parameter is constant. |
| nullable | Boolean | false | Define if the parameter is nullable. |
| event | Boolean | true | Define if the parameter is a volatile, e.g. set its value back to null after propagation of its value. When
true, nullable is automatically set to true and default to null. |
| metas | Object | {} | Optionnal metadata of the parameter. |enumDefinition : Object
Kind: global typedef
Properties| Name | Type | Default | Description |
| --- | --- | --- | --- |
| type | String | 'enum' | Define a boolean parameter. |
| default | Mixed | | Default value of the parameter. |
| list | Array | | Possible values of the parameter. |
| constant | Boolean | false | Define if the parameter is constant. |
| nullable | Boolean | false | Define if the parameter is nullable. |
| event | Boolean | true | Define if the parameter is a volatile, e.g. set its value back to null after propagation of its value. When
true, nullable is automatically set to true and default to null. |
| metas | Object | {} | Optionnal metadata of the parameter. |anyDefinition : Object
Kind: global typedef
Properties| Name | Type | Default | Description |
| --- | --- | --- | --- |
| type | String | 'enum' | Define a parameter of any type. |
| default | Mixed | | Default value of the parameter. |
| constant | Boolean | false | Define if the parameter is constant. |
| nullable | Boolean | false | Define if the parameter is nullable. |
| event | Boolean | true | Define if the parameter is a volatile, e.g. set its value back to null after propagation of its value. When
true, nullable is automatically set to true and default to null`. |Object | {} | Optionnal metadata of the parameter. |BSD-3-Clause