pakt-api
Version:
This is a API HTML Documentation Generator
38 lines (37 loc) • 1.34 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.AbstractProcessor = void 0;
class AbstractProcessor {
processRecord(object) {
return `{${Object.keys(object).map(key => `${this.processElement(object[key], key)}`, this)}}`;
}
processArray(array) {
return `[${array.map(item => (item.type ? `${this.processElement(item)}` : this.processRecord(item)), this)}]`;
}
processRecordOrElement(elements) {
if (elements.type) {
return this.processElement(elements);
}
else {
return `{\n${Object.keys(elements)
.map(key => {
const item = elements[key];
const required = item.required === true ? '' : '?';
const element = this.processRecordOrElement(item);
return `\t${key}${required}: ${element}\n`;
}, this)
.join('')}}`;
}
}
process(content) {
let typeString = '';
if (content instanceof Array) {
typeString = content.map(this.processRecordOrElement, this).join();
}
else if (typeof content === 'object') {
typeString = this.processRecordOrElement(content);
}
return typeString;
}
}
exports.AbstractProcessor = AbstractProcessor;
;