adr
Version:
轻量级架构记录工具 - Command-line tools for working with Architecture Decision Records
32 lines • 2.99 kB
JavaScript
let fs = require('fs');
let moment = require('moment');
import StatusHelper from '../StatusHelper';
import Utils from '../utils';
import Config from '../Config';
import BasicOutput from './BasicOutput';
import { GenerateBuilder } from '../base/GenerateBuilder';
let savePath = Config.getSavePath();
class CSVBuilder extends BasicOutput {
buildFunc(index, decision, file, bodyString) {
let lastStatus = StatusHelper.getLatestStatus(savePath + file.relativePath);
let body = `${index}, ${decision}, ${moment(file.mtime).format('YYYY-MM-DD')}, ${lastStatus}\n`;
return bodyString.push(body);
}
buildContent() {
let path = Config.getSavePath();
let i18n = Utils.getI18n();
let graphGenerate = new GenerateBuilder(path);
let startString = `Index, ${i18n.decision}, ${i18n.modifiedDate}, ${i18n.lastStatus}\n`;
this.result = graphGenerate
.setStart(startString)
.setEnd('')
.setBody(this.buildFunc)
.build();
return this.result;
}
output() {
fs.writeFileSync(this.workDir + '/export.csv', this.result);
}
}
export default CSVBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1NWQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvb3V0cHV0L0NTVkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ3RCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUU5QixPQUFPLFlBQVksTUFBTSxpQkFBaUIsQ0FBQTtBQUMxQyxPQUFPLEtBQUssTUFBTSxVQUFVLENBQUE7QUFDNUIsT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFekQsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFBO0FBRW5DLE1BQU0sVUFBVyxTQUFRLFdBQVc7SUFDbEMsU0FBUyxDQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVU7UUFDMUMsSUFBSSxVQUFVLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzNFLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxLQUFLLFFBQVEsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxVQUFVLElBQUksQ0FBQTtRQUMvRixPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFOUIsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLElBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDL0IsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBQzFCLElBQUksYUFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdDLElBQUksV0FBVyxHQUFHLFVBQVUsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQTtRQUN2RixJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWE7YUFDeEIsUUFBUSxDQUFDLFdBQVcsQ0FBQzthQUNyQixNQUFNLENBQUMsRUFBRSxDQUFDO2FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDdkIsS0FBSyxFQUFFLENBQUE7UUFFVixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDcEIsQ0FBQztJQUVELE1BQU07UUFDSixFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM3RCxDQUFDO0NBQ0Y7QUFFRCxlQUFlLFVBQVUsQ0FBQSJ9