Nihil Prius Modulus

    @ircam/parameters

    1.2.2 • Public • Published

    @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.getDefinitions() ⇒ Object

    Return the given definitions along with the initialization values.

    Kind: instance method of ParameterBag

    parameterBag.getValues() ⇒ Object

    Return values of all parameters as a flat object.

    Kind: instance method of ParameterBag

    parameterBag.get(name) ⇒ Mixed

    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.

    parameterBag.set(name, value, [forcePropagation]) ⇒ Mixed

    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.

    parameterBag.has(name) ⇒ Boolean

    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.

    ParameterBag~listenerCallback : function

    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.

    ParameterBag~paramListenerCallack : function

    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.

    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.

    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.
    metas Object {} Optionnal metadata of the parameter.

    License

    BSD-3-Clause

    Install

    npm i @ircam/parameters

    DownloadsWeekly Downloads

    3

    Version

    1.2.2

    License

    BSD-3-Clause

    Unpacked Size

    76.2 kB

    Total Files

    5

    Last publish

    Collaborators

    • jipodine
    • norbert.schnell
    • b-ma