UNPKG

adr

Version:

轻量级架构记录工具 - Command-line tools for working with Architecture Decision Records

54 lines 4.87 kB
///<reference path="generate.ts"/> let fs = require('fs'); import Utils from './utils'; import { generate } from './generate'; import Config from './Config'; import getAdrFiles from './helpers/getAdrFiles'; let savePath = Config.getSavePath(); function generateNewFileName(newIndex, title) { let fileExt = Config.getDocExtension(); let indexString = Utils.createIndexByNumber(newIndex); let decisionInfile = Utils.generateFileName(title); return indexString + '-' + decisionInfile + '.' + fileExt; } function updateNameByTitle() { let files = getAdrFiles(); files.forEach(function (file) { let fileName = file.relativePath; let fileExt = Config.getDocExtension(); let startChar = fileExt === 'adoc' ? '=' : '#'; let fileData = fs.readFileSync(savePath + fileName, 'utf8'); let firstLine = fileData.split('\n')[0]; let indexRegexValue = new RegExp(String.raw `${startChar}\s(\d+)\.\s`, ''); let title = firstLine.replace(indexRegexValue, ''); let indexRegex = indexRegexValue.exec(firstLine); let oldIndex; if (!indexRegex) { oldIndex = Utils.getIndexByString(fileName); if (!oldIndex) { return; } } else { oldIndex = indexRegex[1]; } let newIndex = parseInt(oldIndex, 10); let newFileName = generateNewFileName(newIndex, title); if (fileName !== newFileName) { console.log(fileName + ' -> ' + newFileName); fs.renameSync(savePath + fileName, savePath + newFileName); } }); } function updateToc() { let fileExt = Config.getDocExtension(); let toc = generate('toc', { output: false }); fs.writeFileSync(savePath + 'README.' + fileExt, toc + '\n'); } export function update() { console.log('update decisions ...'); updateNameByTitle(); console.log('update adr toc ...'); updateToc(); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi91cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0NBQWtDO0FBQ2xDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUV0QixPQUFPLEtBQUssTUFBTSxTQUFTLENBQUE7QUFDM0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNyQyxPQUFPLE1BQU0sTUFBTSxVQUFVLENBQUE7QUFDN0IsT0FBTyxXQUFXLE1BQU0sdUJBQXVCLENBQUE7QUFFL0MsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFBO0FBRW5DLFNBQVMsbUJBQW1CLENBQUUsUUFBZ0IsRUFBRSxLQUFtQjtJQUNqRSxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDdEMsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3JELElBQUksY0FBYyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNsRCxPQUFPLFdBQVcsR0FBRyxHQUFHLEdBQUcsY0FBYyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUE7QUFDM0QsQ0FBQztBQUVELFNBQVMsaUJBQWlCO0lBQ3hCLElBQUksS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFBO0lBRXpCLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJO1FBQzFCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDaEMsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFBO1FBQ3RDLElBQUksU0FBUyxHQUFHLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO1FBQzlDLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUMzRCxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksZUFBZSxHQUFHLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUEsR0FBRyxTQUFTLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUN6RSxJQUFJLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNsRCxJQUFJLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2hELElBQUksUUFBUSxDQUFBO1FBQ1osSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLFFBQVEsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDM0MsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDYixPQUFNO2FBQ1A7U0FDRjthQUFNO1lBQ0wsUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUN6QjtRQUVELElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDckMsSUFBSSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3RELElBQUksUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUM1QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxNQUFNLEdBQUcsV0FBVyxDQUFDLENBQUE7WUFDNUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxFQUFFLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQTtTQUMzRDtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELFNBQVMsU0FBUztJQUNoQixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDdEMsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0lBQzVDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLFNBQVMsR0FBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFBO0FBQzlELENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTTtJQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDbkMsaUJBQWlCLEVBQUUsQ0FBQTtJQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDakMsU0FBUyxFQUFFLENBQUE7QUFDYixDQUFDIn0=