13 lines
1.2 KiB
TypeScript
13 lines
1.2 KiB
TypeScript
import type { AssessorRepository } from '../persistence/assessor-repository';
|
|
|
|
export type RemediationReadMethods = Pick<AssessorRepository, 'getProject' | 'listAssessments' | 'loadAssessmentModel'
|
|
| 'queryUnifiedResults' | 'listPolicyEvaluations' | 'listCurrentPolicyEvaluationsForMetrics' | 'listMicrosoftSecurityBaselineAnalyses'>;
|
|
export interface RemediationReadPort extends RemediationReadMethods { currentRevision(): Promise<number> }
|
|
export function remediationReadPortFrom(repository: RemediationReadMethods, revision: () => Promise<number>): RemediationReadPort {
|
|
return Object.freeze({ currentRevision: revision, getProject: repository.getProject.bind(repository),
|
|
listAssessments: repository.listAssessments.bind(repository), loadAssessmentModel: repository.loadAssessmentModel.bind(repository),
|
|
queryUnifiedResults: repository.queryUnifiedResults.bind(repository), listPolicyEvaluations: repository.listPolicyEvaluations.bind(repository),
|
|
listCurrentPolicyEvaluationsForMetrics: repository.listCurrentPolicyEvaluationsForMetrics?.bind(repository),
|
|
listMicrosoftSecurityBaselineAnalyses: repository.listMicrosoftSecurityBaselineAnalyses.bind(repository) });
|
|
}
|