adr
Version:
轻量级架构记录工具 - Command-line tools for working with Architecture Decision Records
58 lines • 4.58 kB
JavaScript
import Utils from '../utils';
import getAdrFiles from '../helpers/getAdrFiles';
import Config from '../Config';
export class GenerateBuilder {
constructor(path) {
this.path = path;
this.bodyString = [''];
this.files = getAdrFiles();
}
setBody(handleBody) {
let files = this.files;
let bodyString = this.bodyString;
this.files.forEach(function (file) {
let fileName = file.relativePath;
let fileExt = Config.getDocExtension();
let fileNameLength = fileName.length;
let numberLength = Utils.getNumberLength(fileName) + '-'.length;
let fileExtLength = ('.' + fileExt).length;
let index = Utils.getIndexByString(fileName);
if (index) {
let decision = fileName.substring(numberLength, fileNameLength - fileExtLength);
handleBody(index, decision, file, bodyString, files.length);
}
});
return this;
}
setStart(startSting) {
this.startString = startSting;
return this;
}
setEnd(endString) {
if (endString) {
this.endString = endString;
}
else if (typeof endString === 'string') {
this.endString = '';
}
return this;
}
build() {
if (typeof this.startString === 'string') {
return this.startString + this.bodyString.join('') + this.endString;
}
if (typeof this.startString === 'object') {
let results = [];
results.push(this.startString);
for (let i = 0; i < this.bodyString.length; i++) {
let currentBodyString = this.bodyString[i];
if (currentBodyString) {
results.push(currentBodyString);
}
}
return results;
}
return '';
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2VuZXJhdGVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9iYXNlL0dlbmVyYXRlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssTUFBTSxVQUFVLENBQUE7QUFDNUIsT0FBTyxXQUFXLE1BQU0sd0JBQXdCLENBQUE7QUFFaEQsT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFBO0FBRTlCLE1BQU0sT0FBTyxlQUFlO0lBTzFCLFlBQWEsSUFBWTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQTtJQUM1QixDQUFDO0lBRUQsT0FBTyxDQUFFLFVBQWU7UUFDdEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN0QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSTtZQUMvQixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFBO1lBQ2hDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQTtZQUN0QyxJQUFJLGNBQWMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFBO1lBQ3BDLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtZQUMvRCxJQUFJLGFBQWEsR0FBRyxDQUFDLEdBQUcsR0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUE7WUFDeEMsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQzVDLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLGNBQWMsR0FBRyxhQUFhLENBQUMsQ0FBQTtnQkFDL0UsVUFBVSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDNUQ7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFFBQVEsQ0FBRSxVQUE2QjtRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQTtRQUM3QixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLENBQUUsU0FBNkI7UUFDbkMsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtTQUMzQjthQUFNLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFBO1NBQ3BCO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRTtZQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQTtTQUNwRTtRQUNELElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRTtZQUN4QyxJQUFJLE9BQU8sR0FBZSxFQUFFLENBQUE7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRyxFQUFFO2dCQUNoRCxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQzFDLElBQUksaUJBQWlCLEVBQUU7b0JBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtpQkFDaEM7YUFDRjtZQUNELE9BQU8sT0FBTyxDQUFBO1NBQ2Y7UUFDRCxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7Q0FDRiJ9