jsii-docgen
Version:
generates api docs for jsii modules
33 lines • 5.42 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Interface = void 0;
const instance_methods_1 = require("./instance-methods");
const properties_1 = require("./properties");
const schema_1 = require("../schema");
class Interface {
static isStruct(iface) {
return iface.datatype;
}
constructor(transpile, iface) {
this.iface = iface;
this.transpiled = transpile.interface(iface);
this.instanceMethods = new instance_methods_1.InstanceMethods(transpile, iface.ownMethods);
this.properties = new properties_1.Properties(transpile, iface.allProperties);
this.implementations = iface.allImplementations.map((impl) => transpile.type(impl));
this.bases = iface.interfaces.map((base) => transpile.type(base));
}
toJson() {
return {
fqn: this.transpiled.type.fqn,
displayName: this.transpiled.type.fqn.split('.').pop(),
id: this.iface.fqn,
implementations: this.implementations.map((impl) => impl.toJson()),
interfaces: this.bases.map((base) => base.toJson()),
instanceMethods: this.instanceMethods.toJson(),
properties: this.properties.toJson(),
docs: (0, schema_1.extractDocs)(this.iface.docs),
};
}
}
exports.Interface = Interface;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RvY2dlbi92aWV3L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5REFBcUQ7QUFDckQsNkNBQTBDO0FBQzFDLHNDQUF5RDtBQUd6RCxNQUFhLFNBQVM7SUFDYixNQUFNLENBQUMsUUFBUSxDQUFDLEtBQTRCO1FBQ2pELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBU0QsWUFDRSxTQUFvQixFQUNILEtBQTRCO1FBQTVCLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBRTdDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksa0NBQWUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSx1QkFBVSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRztZQUN2RCxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHO1lBQ2xCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25ELGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUM5QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDcEMsSUFBSSxFQUFFLElBQUEsb0JBQVcsRUFBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNuQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBbkNELDhCQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJlZmxlY3QgZnJvbSAnanNpaS1yZWZsZWN0JztcbmltcG9ydCB7IEluc3RhbmNlTWV0aG9kcyB9IGZyb20gJy4vaW5zdGFuY2UtbWV0aG9kcyc7XG5pbXBvcnQgeyBQcm9wZXJ0aWVzIH0gZnJvbSAnLi9wcm9wZXJ0aWVzJztcbmltcG9ydCB7IGV4dHJhY3REb2NzLCBJbnRlcmZhY2VTY2hlbWEgfSBmcm9tICcuLi9zY2hlbWEnO1xuaW1wb3J0IHsgVHJhbnNwaWxlLCBUcmFuc3BpbGVkSW50ZXJmYWNlLCBUcmFuc3BpbGVkVHlwZSB9IGZyb20gJy4uL3RyYW5zcGlsZS90cmFuc3BpbGUnO1xuXG5leHBvcnQgY2xhc3MgSW50ZXJmYWNlIHtcbiAgcHVibGljIHN0YXRpYyBpc1N0cnVjdChpZmFjZTogcmVmbGVjdC5JbnRlcmZhY2VUeXBlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlmYWNlLmRhdGF0eXBlO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpbXBsZW1lbnRhdGlvbnM6IFRyYW5zcGlsZWRUeXBlW107XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZXM6IFRyYW5zcGlsZWRUeXBlW107XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5zdGFuY2VNZXRob2RzOiBJbnN0YW5jZU1ldGhvZHM7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcGVydGllczogUHJvcGVydGllcztcblxuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zcGlsZWQ6IFRyYW5zcGlsZWRJbnRlcmZhY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdHJhbnNwaWxlOiBUcmFuc3BpbGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpZmFjZTogcmVmbGVjdC5JbnRlcmZhY2VUeXBlLFxuICApIHtcbiAgICB0aGlzLnRyYW5zcGlsZWQgPSB0cmFuc3BpbGUuaW50ZXJmYWNlKGlmYWNlKTtcbiAgICB0aGlzLmluc3RhbmNlTWV0aG9kcyA9IG5ldyBJbnN0YW5jZU1ldGhvZHModHJhbnNwaWxlLCBpZmFjZS5vd25NZXRob2RzKTtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBuZXcgUHJvcGVydGllcyh0cmFuc3BpbGUsIGlmYWNlLmFsbFByb3BlcnRpZXMpO1xuICAgIHRoaXMuaW1wbGVtZW50YXRpb25zID0gaWZhY2UuYWxsSW1wbGVtZW50YXRpb25zLm1hcCgoaW1wbCkgPT4gdHJhbnNwaWxlLnR5cGUoaW1wbCkpO1xuICAgIHRoaXMuYmFzZXMgPSBpZmFjZS5pbnRlcmZhY2VzLm1hcCgoYmFzZSkgPT4gdHJhbnNwaWxlLnR5cGUoYmFzZSkpO1xuICB9XG5cbiAgcHVibGljIHRvSnNvbigpOiBJbnRlcmZhY2VTY2hlbWEge1xuICAgIHJldHVybiB7XG4gICAgICBmcW46IHRoaXMudHJhbnNwaWxlZC50eXBlLmZxbixcbiAgICAgIGRpc3BsYXlOYW1lOiB0aGlzLnRyYW5zcGlsZWQudHlwZS5mcW4uc3BsaXQoJy4nKS5wb3AoKSEsXG4gICAgICBpZDogdGhpcy5pZmFjZS5mcW4sXG4gICAgICBpbXBsZW1lbnRhdGlvbnM6IHRoaXMuaW1wbGVtZW50YXRpb25zLm1hcCgoaW1wbCkgPT4gaW1wbC50b0pzb24oKSksXG4gICAgICBpbnRlcmZhY2VzOiB0aGlzLmJhc2VzLm1hcCgoYmFzZSkgPT4gYmFzZS50b0pzb24oKSksXG4gICAgICBpbnN0YW5jZU1ldGhvZHM6IHRoaXMuaW5zdGFuY2VNZXRob2RzLnRvSnNvbigpLFxuICAgICAgcHJvcGVydGllczogdGhpcy5wcm9wZXJ0aWVzLnRvSnNvbigpLFxuICAgICAgZG9jczogZXh0cmFjdERvY3ModGhpcy5pZmFjZS5kb2NzKSxcbiAgICB9O1xuICB9XG59XG4iXX0=
;