Skip to content

@half0wl/container / BaseService

Abstract Class: BaseService<TDeps>

Defined in: base.ts:86

Abstract base class that all container-managed services extend.

Receives injected dependencies via its constructor and exposes them as this.deps (user-defined) and this.registry (the container).

Example

ts
interface ContainerDeps {
  db: DatabaseClient;
  logger: Logger;
}

@Service()
class UserService extends BaseService<ContainerDeps> {
  findById(id: string) {
    return this.deps.db.users.findUnique({ where: { id } });
  }
}

Type Parameters

Type ParameterDefault typeDescription
TDepsunknownUser-defined dependency interface

Constructors

Constructor

ts
new BaseService<TDeps>(dependencies): BaseService<TDeps>;

Defined in: base.ts:93

Parameters

ParameterType
dependenciesServiceDependencies<TDeps>

Returns

BaseService<TDeps>

Properties

deps

ts
protected readonly deps: TDeps;

Defined in: base.ts:88

The user-defined dependencies (everything except registry).


registry

ts
protected readonly registry: IContainer;

Defined in: base.ts:91

The container instance, used internally by Inject to resolve other services.