💉
aquinas
API

Docks

docks are just big objects

Docks

Docks are responsible for holding together all injectables.

Use

get

Get an instance of a registered injectable using the get method and the injectable reference:

import { dock } from "aquinas";
import { AppDock } from "./app.dock";
import { UserServiceReference } from "./user-service.reference";

const userService = AppDock.get(UserServiceReference);

register

Create a dock using the Dock object, and then use the register method to register your injectables:

import { dock } from "aquinas";
import { UserService } from "./user-service.injectable";

const AppDock = dock();

AppDock.register(UserService)

export { AppDock };

merge

Merge docks together using the merge method:

import { dock } from "aquinas";
import { UserDock } from "./user.dock";

const AppDock = dock();

AppDock.merge(UserDock);

override

Override injectables in a dock using the override method:

import { dock } from "aquinas";
import { DatabaseServiceReference } from "./database-service.reference";
import { MockDatabaseService } from "./mock-database-service.injectable";

const AppDock = dock();

AppDock.override(DatabaseServiceReference, MockDatabaseService);

// You can also override with an implementation function
AppDock.override(DatabaseServiceReference, (dock) => {
  return new MockDatabaseService();
});