@opra/common
Version:
Opra common package
38 lines (37 loc) • 1.09 kB
JavaScript
import { ResponsiveMap } from '../../helpers/index.js';
import { ApiBase } from '../common/api-base.js';
import { HttpController } from './http-controller.js';
/**
* @class HttpApi
*/
export class HttpApi extends ApiBase {
// noinspection JSUnusedGlobalSymbols
_controllerReverseMap = new WeakMap();
transport = 'http';
controllers = new ResponsiveMap();
url;
constructor(init) {
super(init);
this.url = init.url;
}
findController(arg0) {
return HttpController.prototype.findController.call(this, arg0);
}
findOperation(arg0, operationName) {
const controller = this.findController(arg0);
return controller?.operations.get(operationName);
}
toJSON(options) {
const schema = super.toJSON();
const out = {
...schema,
transport: this.transport,
url: this.url,
controllers: {},
};
for (const v of this.controllers.values()) {
out.controllers[v.name] = v.toJSON(options);
}
return out;
}
}