@ng-doc/builder
Version:
<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>
29 lines • 823 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.findInterface = findInterface;
const ts_morph_1 = require("ts-morph");
/**
*
* @param int
* @param fn
*/
function findInterface(int, fn) {
const baseInterface = int;
if (fn(baseInterface)) {
return baseInterface;
}
const ext = baseInterface
.getExtends()
.map((expr) => expr.getType().getSymbol()?.getDeclarations()[0])
.filter((node) => ts_morph_1.Node.isInterfaceDeclaration(node))
// Reverse interfaces because the latest one overrides previous one
.reverse();
for (const i of ext) {
const deepResult = findInterface(i, fn);
if (deepResult) {
return i;
}
}
return undefined;
}
//# sourceMappingURL=find-interface.js.map
;