ryu1kn/vscode-annotator

View on GitHub
src/lib/git-annotation/git-annotation-html-body-generator.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import {GitAnnotationLineDirectorFactory} from './git-annotation-line-director-factory';

export class GitAnnotationHtmlBodyGenerator {
    private readonly _gitAnnotationLineDirectorFactory: GitAnnotationLineDirectorFactory;

    constructor(params) {
        this._gitAnnotationLineDirectorFactory = params.gitAnnotationLineDirectorFactory;
    }

    generate(lineBlames, repositoryRootPath) {
        const digitsCount = String(lineBlames.length).length;
        return lineBlames.map((lineBlame, index) => {
            const director = this._gitAnnotationLineDirectorFactory.create();
            return director.construct({
                lineBlame,
                lineNumber: index + 1,
                lineNumberWidth: digitsCount,
                repositoryRoot: repositoryRootPath
            });
        }).join('');
    }

}