@ircam/parameters
Tiny and extendable library for class parameters type checking and reflection.
Install
npm install [--save] @ircam/parameters
Usage
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);
API
ParameterBag
Bag of parameters. Main interface of the library
Kind: global class
-
ParameterBag
- instance
-
inner
-
~listenerCallback :
function
-
~paramListenerCallack :
function
-
~listenerCallback :
Object
parameterBag.getDefinitions() ⇒ Return the given definitions along with the initialization values.
Kind: instance method of ParameterBag
Object
parameterBag.getValues() ⇒ Return values of all parameters as a flat object.
Kind: instance method of ParameterBag
Mixed
parameterBag.get(name) ⇒ Return the value of the given parameter.
Kind: instance method of ParameterBag
Returns: Mixed
- - Value of the parameter.
Param | Type | Description |
---|---|---|
name | String |
Name of the parameter. |
Mixed
parameterBag.set(name, value, [forcePropagation]) ⇒ Set the value of a parameter. If the value of the parameter is updated (aka if previous value is different from new value) all registered callbacks are registered.
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. |
Boolean
parameterBag.has(name) ⇒ Define if the name
parameter exists or not.
Kind: instance method of ParameterBag
Param | Type | Description |
---|---|---|
name | String |
Name of the parameter. |
parameterBag.reset([name])
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. |
parameterBag.addListener(callback)
Add listener to all param updates.
Kind: instance method of ParameterBag
Param | Type | Description |
---|---|---|
callback | ParameterBag~listenerCallack |
Listener to register. |
parameterBag.removeListener(callback)
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. |
parameterBag.addParamListener(name, callback, [trigger])
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. |
parameterBag.removeParamListener(name, callback)
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. |
function
ParameterBag~listenerCallback : 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. |
function
ParameterBag~paramListenerCallack : Kind: inner typedef of ParameterBag
Param | Type | Description |
---|---|---|
value | Mixed |
Updated value of the parameter. |
[meta=] | Object |
Given meta data of the parameter. |
ParameterBag
parameters(definitions, values) ⇒ 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. |
parameters.defineType(typeName, parameterDefinition)
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. |
Object
booleanDefinition : 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. |
Object
integerDefinition : 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. |
Object
floatDefinition : 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. |
Object
stringDefinition : 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. |
Object
enumDefinition : 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. |
Object
anyDefinition : 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 . |
metas | Object |
{} |
Optionnal metadata of the parameter. |
License
BSD-3-Clause