obsidian-sample-plugin/common/ExoContext.ts

49 lines
2.5 KiB
TypeScript

import {App} from "obsidian";
import DailyNoteRepository from "../core/src/ports/output/DailyNoteRepository";
import Utils from "../core/src/utils/Utils";
import DailyNoteCreator from "../app/src/utils/DailyNoteCreator";
import KObjectCreator from "../app/src/utils/KObjectCreator";
import AppUtils from "../app/src/utils/AppUtils";
import CountNotesUseCase from "../core/src/ports/input/CountNotesUseCase";
import CountNotesService from "../core/src/service/CountNotesService";
import DailyNotePersistenceAdapter from "../app/src/adapters/output/DailyNotePersistenceAdapter";
import GetCurrentDailyNoteUseCase from "../core/src/ports/input/GetCurrentDailyNoteUseCase";
import GetCurrentDailyNoteService from "../core/src/service/GetCurrentDailyNoteService";
import CreateEffortUseCase from "../core/src/ports/input/CreateEffortUseCase";
import CreateEffortService from "../core/src/service/CreateEffortService";
import EffortRepository from "../core/src/ports/output/EffortRepository";
import EffortPersistenceAdapter from "../app/src/adapters/output/EffortPersistenceAdapter";
import KObjectUtility from "../app/src/utils/KObjectUtility";
import EffortPathRulesHelper from "../app/src/helpers/EffortPathRulesHelper";
export default class ExoContext {
public readonly utils: Utils;
public readonly kObjectCreator: KObjectCreator
public readonly dailyNoteCreator: DailyNoteCreator;
public readonly dailyNoteRepository: DailyNoteRepository;
public readonly kObjectUtility: KObjectUtility;
public readonly appUtils: AppUtils;
public readonly countNotesUseCase: CountNotesUseCase;
public readonly getCurrentDNUseCase: GetCurrentDailyNoteUseCase;
public readonly createEffortUseCase: CreateEffortUseCase;
public readonly effortRepository: EffortRepository;
public readonly effortPathRulesHelper: EffortPathRulesHelper;
constructor(public app: App) {
this.utils = new Utils(this.app);
this.appUtils = new AppUtils(this.app);
this.kObjectCreator = new KObjectCreator(this.appUtils);
this.dailyNoteCreator = new DailyNoteCreator(this.appUtils);
this.dailyNoteRepository = new DailyNotePersistenceAdapter(this.appUtils, this.dailyNoteCreator);
this.kObjectUtility = new KObjectUtility(this);
this.countNotesUseCase = new CountNotesService(this.appUtils);
this.getCurrentDNUseCase = new GetCurrentDailyNoteService(this.dailyNoteRepository);
this.effortRepository = new EffortPersistenceAdapter(this);
this.createEffortUseCase = new CreateEffortService(this.effortRepository);
this.effortPathRulesHelper = new EffortPathRulesHelper(this);
}
}