Files
agentic-dev/turbo/generators/templates/feature/src/di/module.ts.hbs
2026-07-12 08:15:46 +00:00

40 lines
1.6 KiB
Handlebars

import { ContainerModule, type interfaces } from "inversify";
import type { I{{pascalCase entity}}Repository } from "../application/repositories/{{kebabCase entity}}.repository.interface";
import { Mock{{pascalCase entity}}Repository } from "../infrastructure/repositories/{{kebabCase entity}}.repository.mock";
import {
get{{pascalCase entity}}UseCase,
type IGet{{pascalCase entity}}UseCase,
} from "../application/use-cases/get-{{kebabCase entity}}.use-case";
import {
get{{pascalCase entity}}Controller,
type IGet{{pascalCase entity}}Controller,
} from "../interface-adapters/controllers/get-{{kebabCase entity}}.controller";
import { {{constantCase name}}_SYMBOLS } from "./symbols";
export const {{pascalCase name}}Module = new ContainerModule((bind: interfaces.Bind) => {
bind<I{{pascalCase entity}}Repository>({{constantCase name}}_SYMBOLS.I{{pascalCase entity}}Repository).to(
Mock{{pascalCase entity}}Repository,
);
bind<IGet{{pascalCase entity}}UseCase>(
{{constantCase name}}_SYMBOLS.IGet{{pascalCase entity}}UseCase,
).toDynamicValue((ctx) =>
get{{pascalCase entity}}UseCase(
ctx.container.get<I{{pascalCase entity}}Repository>(
{{constantCase name}}_SYMBOLS.I{{pascalCase entity}}Repository,
),
),
);
bind<IGet{{pascalCase entity}}Controller>(
{{constantCase name}}_SYMBOLS.IGet{{pascalCase entity}}Controller,
).toDynamicValue((ctx) =>
get{{pascalCase entity}}Controller(
ctx.container.get<IGet{{pascalCase entity}}UseCase>(
{{constantCase name}}_SYMBOLS.IGet{{pascalCase entity}}UseCase,
),
),
);
});