59 lines
2.1 KiB
JavaScript
59 lines
2.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.GetServiceInterfaces = void 0;
|
|
exports.getOwnServiceInterfaces = getOwnServiceInterfaces;
|
|
exports.getServiceInterfaces = getServiceInterfaces;
|
|
const deepEqual_1 = require("./deepEqual");
|
|
const getServiceInterface_1 = require("./getServiceInterface");
|
|
const Watchable_1 = require("./Watchable");
|
|
const makeManyInterfaceFilled = async ({ effects, packageId, callback, }) => {
|
|
const serviceInterfaceValues = await effects.listServiceInterfaces({
|
|
packageId,
|
|
callback,
|
|
});
|
|
const serviceInterfacesFilled = await Promise.all(Object.values(serviceInterfaceValues).map(async (serviceInterfaceValue) => {
|
|
const hostId = serviceInterfaceValue.addressInfo.hostId;
|
|
const host = await effects.getHostInfo({
|
|
packageId,
|
|
hostId,
|
|
callback,
|
|
});
|
|
if (!host) {
|
|
throw new Error(`host ${hostId} not found!`);
|
|
}
|
|
return {
|
|
...serviceInterfaceValue,
|
|
host,
|
|
addressInfo: (0, getServiceInterface_1.filledAddress)(host, serviceInterfaceValue.addressInfo),
|
|
};
|
|
}));
|
|
return serviceInterfacesFilled;
|
|
};
|
|
class GetServiceInterfaces extends Watchable_1.Watchable {
|
|
constructor(effects, opts, options) {
|
|
super(effects, options);
|
|
this.opts = opts;
|
|
this.label = 'GetServiceInterfaces';
|
|
}
|
|
fetch(callback) {
|
|
return makeManyInterfaceFilled({
|
|
effects: this.effects,
|
|
packageId: this.opts.packageId,
|
|
callback,
|
|
});
|
|
}
|
|
}
|
|
exports.GetServiceInterfaces = GetServiceInterfaces;
|
|
function getOwnServiceInterfaces(effects, map, eq) {
|
|
return new GetServiceInterfaces(effects, {}, {
|
|
map: map ?? ((a) => a),
|
|
eq: eq ?? ((a, b) => (0, deepEqual_1.deepEqual)(a, b)),
|
|
});
|
|
}
|
|
function getServiceInterfaces(effects, opts, map, eq) {
|
|
return new GetServiceInterfaces(effects, opts, {
|
|
map: map ?? ((a) => a),
|
|
eq: eq ?? ((a, b) => (0, deepEqual_1.deepEqual)(a, b)),
|
|
});
|
|
}
|
|
//# sourceMappingURL=getServiceInterfaces.js.map
|