import * as plugins from './commitinfo.plugins.js'; export class CommitInfo { // Instance public projectDir: string; public plannedCommitVersionTypeArg: 'patch' | 'minor' | 'major'; public projectinfoNpmRef: plugins.projectinfo.ProjectinfoNpm; public smartVersionRef: plugins.smartversion.SmartVersion; constructor(projectDirArg: string, plannedCommitVersionTypeArg: 'patch' | 'minor' | 'major') { this.projectDir = projectDirArg; this.plannedCommitVersionTypeArg = plannedCommitVersionTypeArg; this.projectinfoNpmRef = new plugins.projectinfo.ProjectinfoNpm(projectDirArg); this.smartVersionRef = new plugins.smartversion.SmartVersion(this.projectinfoNpmRef.version); } public async writeIntoPotentialDirs(potentialDirs: string[] = ['ts', 'ts_web']) { const expectedDefinitiveVersion = this.smartVersionRef.getNewVersion( this.plannedCommitVersionTypeArg ); for (const dir of potentialDirs) { const dirExists = plugins.smartfile.fs.isDirectory(plugins.path.join(this.projectDir, dir)); if (dirExists) { const writePath = plugins.path.join(this.projectDir, dir, '00_commitinfo_data.ts'); await plugins.smartfile.memory.toFs( ` export const version = '${expectedDefinitiveVersion.versionString}'; `, writePath ); } } } }