ngrx-uml
Version:
NGRX to Plant UML diagram
44 lines (43 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActionReferenceRenderer = void 0;
const os_1 = require("os");
class ActionReferenceRenderer {
render(item) {
return this.toPlantUml(item);
}
getName(item) {
const contextName = item.declarationContext ?
item.declarationContext.map(dc => dc.name).find(name => !!name) || ''
: '';
return `${item.fileName}:: ${contextName} ${item.isCall ? 'D' : 'L'}`;
}
toPlantUml(item) {
const stereotyp = item.isCall ? '<< (D,orchid) dispatch >>' : '<< (L,orchid) listen >>';
// ${item.fileName ? `src: ${item.fileName}` : ''}
let content = `interface "${this.getName(item)}" ${stereotyp} {
name: ${item.name}
action: ${item.action && item.action.name}
..
${this.declarationContext(item) || ''}
__
}
`;
if (item.action) {
content += this.linkToPlantUml(item.action, item);
}
return content;
}
linkToPlantUml(action, ref) {
return `"${action.name}" ${ref.isCall ? '-down->' : '<.down.'} "${this.getName(ref)}"${os_1.EOL}`;
}
declarationContext(item) {
if (item.declarationContext) {
return item.declarationContext
.map(dc => `${dc.kindText.replace('Declaration', '')}: ${dc.name || ''}`)
.join(os_1.EOL);
}
return;
}
}
exports.ActionReferenceRenderer = ActionReferenceRenderer;