adr
Version:
轻量级架构记录工具 - Command-line tools for working with Architecture Decision Records
83 lines • 6.78 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.generate = void 0;
let fs = require('fs');
const GenerateBuilder_1 = require("./base/GenerateBuilder");
const Config_1 = require("./Config");
const i18n_1 = require("./helpers/i18n");
function buildGraphBuildFun(index, decision, file, bodyString, filesLength) {
bodyString[index] = '\n _' + index + ' [label="' + index + '.' + decision + '"; URL="' + file.relativePath + '"]';
if (index !== 1) {
bodyString[filesLength + index] = '\n _' + (index - 1) + ' -> _' + index + ' [style="dotted"];';
}
return bodyString;
}
function buildTocBodyFun(index, decision, file, bodyString) {
bodyString[index] = '\n* [' + index + '. ' + decision + '](' + file.relativePath + ')';
return bodyString;
}
function buildAsciidocTocBodyFun(index, decision, file, bodyString) {
bodyString[index] = '\n* xref:' + file.relativePath + '[' + index + '. ' + decision + ']';
return bodyString;
}
function generateToc(options) {
let path = Config_1.default.getSavePath();
let graphGenerate = new GenerateBuilder_1.GenerateBuilder(path);
let header = '# ' + i18n_1.getI18n().tocHeader + '\n';
let results = graphGenerate
.setStart(header)
.setEnd('')
.setBody(buildTocBodyFun)
.build();
if (options && options.output) {
console.log(results);
}
return results;
}
function generateAsciidocToc(options) {
let path = Config_1.default.getSavePath();
let graphGenerate = new GenerateBuilder_1.GenerateBuilder(path);
let header = '.' + i18n_1.getI18n().tocHeader + '\n';
let results = graphGenerate
.setStart(header)
.setEnd('')
.setBody(buildAsciidocTocBodyFun)
.build();
if (options && options.output) {
console.log(results);
}
return results;
}
function generateGraph() {
let path = Config_1.default.getSavePath();
let graphGenerate = new GenerateBuilder_1.GenerateBuilder(path);
let header = 'digraph {\n node [shape=plaintext];';
let results = graphGenerate
.setStart(header)
.setEnd('\n}\n')
.setBody(buildGraphBuildFun)
.build();
console.log(results);
return results;
}
function generate(type, options) {
const fileExt = Config_1.default.getDocExtension();
if (type === 'toc') {
if (fileExt === 'adoc') {
let toc = generateAsciidocToc(options);
fs.writeFileSync(Config_1.default.getSavePath() + 'README.adoc', toc);
return toc;
}
let toc = generateToc(options);
fs.writeFileSync(Config_1.default.getSavePath() + 'README.md', toc);
return toc;
}
if (type === 'graph') {
return generateGraph();
}
let message = '\n error: type ' + type + ' current not supported';
console.log(message);
return message;
}
exports.generate = generate;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2dlbmVyYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUV0Qiw0REFBd0Q7QUFDeEQscUNBQTZCO0FBQzdCLHlDQUF3QztBQUV4QyxTQUFTLGtCQUFrQixDQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxXQUFXO0lBQ3pFLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLEdBQUcsS0FBSyxHQUFHLFdBQVcsR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLFFBQVEsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7SUFDbEgsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO1FBQ2YsVUFBVSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLEtBQUssR0FBRyxvQkFBb0IsQ0FBQTtLQUNqRztJQUNELE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVO0lBQ3pELFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxRQUFRLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFBO0lBQ3RGLE9BQU8sVUFBVSxDQUFBO0FBQ25CLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVU7SUFDakUsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLEdB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
;