@log4brains/core
Version:
Log4brains architecture knowledge base core API
39 lines • 1.54 kB
TypeScript
import { AdrRepository as IAdrRepository } from "@src/adr/application";
import { Adr, AdrFile, AdrSlug, PackageRef } from "@src/adr/domain";
import { Log4brainsConfig } from "@src/infrastructure/config";
import { PackageRepository } from "./PackageRepository";
declare type Deps = {
config: Log4brainsConfig;
workdir: string;
packageRepository: PackageRepository;
};
export declare class AdrRepository implements IAdrRepository {
private readonly config;
private readonly workdir;
private readonly packageRepository;
private readonly git;
private gitAvailable?;
private anonymousAuthor?;
private readonly markdownAdrLinkResolver;
constructor({ config, workdir, packageRepository }: Deps);
private isGitAvailable;
find(slug: AdrSlug): Promise<Adr>;
findFromFile(adrFile: AdrFile): Promise<Adr | undefined>;
findAll(): Promise<Adr[]>;
private getGitMetadata;
/**
* In preview mode, we set the Anonymous author as the current Git `user.name` global config.
* It should not append in CI. But if this is the case, it will appear as "Anonymous".
* Response is cached.
*/
private getAnonymousAuthor;
private getLastEditDateFromFilesystem;
private findInPath;
private findAllInPath;
generateAvailableSlug(title: string, packageRef?: PackageRef): AdrSlug;
private getPackageRef;
private getAdrFolderPath;
save(adr: Adr): Promise<void>;
}
export {};
//# sourceMappingURL=AdrRepository.d.ts.map