@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.

Dependencies (0)

    Dev Dependencies (14)

    Package Sidebar

    Install

    npm i @rxstack/service-registry

    Weekly Downloads

    1

    Version

    0.6.1

    License

    MIT

    Unpacked Size

    11 kB

    Total Files

    18

    Last publish

    Collaborators

    • zender