29 lines
1.0 KiB
TypeScript
29 lines
1.0 KiB
TypeScript
|
|
import { MusicCatalogService } from "../domain/services/MusicCatalogService"
|
|
import { IMusicRepository } from "../domain/ports/IMusicRepository";
|
|
import { Track } from "../domain/models/Track";
|
|
import { VinylCatalog } from "../adapters/music/VinylCatalog";
|
|
|
|
import { Wiring } from "../wiring/Wiring";
|
|
|
|
export class MusicComponent {
|
|
constructor() {
|
|
|
|
console.log('registering IMusicRepository');
|
|
Wiring.register('IMusicRepository', () => new VinylCatalog());
|
|
|
|
var injector = Wiring.GetInjector();
|
|
let musicRepository = injector.inject<IMusicRepository>("IMusicRepository");
|
|
console.log('IMusicRepository is', musicRepository);
|
|
|
|
//let musicCatalogService = new MusicCatalogService(injector.inject<IMusicRepository>("IMusicRepository"));
|
|
let musicCatalogService = MusicCatalogService.new(injector);
|
|
|
|
let track = new Track(8, "Niels 1st", "Niels Kooiman", 45);
|
|
musicCatalogService.add(track);
|
|
|
|
let tracks = musicCatalogService.get();
|
|
console.log(tracks);
|
|
}
|
|
}
|