base.Service(shortName)

Base class for building services that can be turned on and off.

Subclasses should NOT override methods here, except for the constructor. Instead they should register listeners for appropriate events.

new Service(shortName)

Parameters:
Name Type Description
shortName string

Custom name portion of this instance.

Example
class DummyService extends Service {

  constructor(instanceName, dummyArgs) {
    super(`The ${instanceName}`);
    this.args = dummyArgs
    this.on('activate', this.#onActivate)
      .on('deactivate', this.#onDeactivate);
  }

  #onActivate = (event) => {
    // do activate stuff with this.args ...
  }

  #onDeactivate = (event) => {
    // do deactivate stuff with this.args ...
  }

}

// else where ...
function dummyEventCallback(event, svc) {
  console.info(`${svc.name}` was ${event}`);
}

const service = new DummyService('Bob', bobInfo)
  .on('activated', dummyEventCallback)
  .on('deactivated', dummyEventCallback);
service.activate();
service.deactivate();

Members

logger :module:base.Logger

name :string

shortName :string

inner, constant eventTypes :Array.<module:base.Dispatcher~EventType>

Service events.

Methods

activate()

Called each time service is activated.

Fires:

allowReactivation(allow) → {module:base.Service}

Parameters:
Name Type Description
allow boolean

Whether to allow this service to be activated when already active.

Returns:
module:base.Service -

This instance, for chaining.

deactivate()

Called each time service is deactivated.

Fires:

off(eventType, func) → {module:base.Service}

Remove all instances of a function registered to an eventType.

Parameters:
Name Type Description
eventType module:base.Dispatcher~EventType

Event type to disconnect from.

func module:base.Dispatcher~Handler

Function to remove.

Returns:
module:base.Service -

This instance, for chaining.

on(eventType, func) → {module:base.Service}

Attach a function to an eventType.

Parameters:
Name Type Description
eventType module:base.Dispatcher~EventType

Event type to connect with.

func module:base.Dispatcher~Handler

Single argument function to call.

Returns:
module:base.Service -

This instance, for chaining.

setShortName(shortName) → {module:base.Service}

Parameters:
Name Type Description
shortName string

Custom name portion of this instance.

Returns:
module:base.Service -

This instance, for chaining.

Events

activate

activated

deactivate

deactivated