UNPKG

adr

Version:

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

58 lines 4.58 kB
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