change in domain strategy

This commit is contained in:
2019-03-14 20:55:15 +01:00
parent 6d3f0fcabd
commit 73272d37b2
15 changed files with 108 additions and 70 deletions

View File

@@ -1,18 +1,24 @@
import { IPortResolver, setCurrentPortResolver } from "../domain/ports/IPortResolver";
import domain from "../domain/domain"
import dependencies from "../domain/dependencies"
import { PortResolver } from "../adapters/PortResolver";
import { VinylCatalog } from "../adapters/music/VinylCatalog";
import { IMusicRepository } from "../domain/ports/IMusicRepository";
import { IMusicRepository } from "../domain/imports/IMusicRepository";
import { IMusicCatalog } from "../domain/exports/IMusicCatalog";
import { MusicCatalogService } from "../domain/services/MusicCatalogService";
export class Wiring {
public apply() : void {
constructor() {
const portResolver = new PortResolver();
portResolver.register<IMusicRepository>('IMusicRepository', () => new VinylCatalog());
domain.setResolver(portResolver);
dependencies.setResolver(portResolver);
setCurrentPortResolver(portResolver);
// register imports
portResolver.registerInstance<IMusicRepository>('IMusicRepository', () => new VinylCatalog());
// register exports
portResolver.registerInstance<IMusicCatalog>('IMusicCatalog', () => new MusicCatalogService());
}
}
const wiring = new Wiring();
wiring.apply();
export default wiring;