@rxstack/service-registry
TypeScript icon, indicating that this package has built-in type declarations

0.6.1 • Public • Published

The Service Registry

Simple registry component useful for all types of applications.

Installation

npm install @rxstack/service-registry --save

// peerDependencies
npm install @rxstack/exceptions@^0.6

Documentation

Usage

A registry object acts as a collection of objects. It allows you to store objects which implement a specific interface.

Each service should implement NamedServiceInterface:

    import {NamedServiceInterface} from '@rxstack/registry';

    export class MyService implements NamedServiceInterface {
      getName(): string {
        return 'service-1';
      }
    }

Here we go:

    import {ServiceRegistry} from '@rxstack/registry';

    const registry = new ServiceRegistry<MyServiceInterface>();
    registry.register(new MyService1());
    registry.register(new MyService2());
    
    registry.has('service-1'); // should return true
    registry.get('service-1'); // should get service instance
    registry.all(); // should retun an array of all registered service
    registry.reset(); // clears all services from registry

Removing a service from the registry is as easy as adding:

// ...
registry.unregister('service-1');
registry.has('service-1'); //should return false

Exceptions

ExistingServiceException is thrown when you try to register a service that is already in the registry.

NonExistingServiceException is thrown when you try to unregister or get a service which is not in the registry.

License

Licensed under the MIT license.

Package Sidebar

Install

npm i @rxstack/service-registry

Weekly Downloads

9

Version

0.6.1

License

MIT

Unpacked Size

11 kB

Total Files

18

Last publish

Collaborators

  • zender