UNPKG

@dolittle/sdk.resources

Version:

Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.

37 lines 3.25 kB
"use strict"; // Copyright (c) Dolittle. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. Object.defineProperty(exports, "__esModule", { value: true }); exports.ResourcesFetcher = void 0; const sdk_artifacts_1 = require("@dolittle/sdk.artifacts"); const sdk_execution_1 = require("@dolittle/sdk.execution"); const sdk_resilience_1 = require("@dolittle/sdk.resilience"); const MongoDBResourceCreator_1 = require("../MongoDB/Internal/MongoDBResourceCreator"); const Resources_1 = require("../Resources"); const ResourcesBuilder_1 = require("../ResourcesBuilder"); const IFetchResources_1 = require("./IFetchResources"); /** * Represents an implementation of {@link IFetchResources}. */ class ResourcesFetcher extends IFetchResources_1.IFetchResources { /** * Initialises a new instance of the {@link ResourcesFetcher} class. * @param {ResourcesClient} client - The resources client to make requests to the Runtime with. * @param {ExecutionContext} executionContext - The base execution context for the client. * @param {Logger} logger - The logger to use for logging. */ constructor(client, executionContext, logger) { super(); this._mongoDB = new MongoDBResourceCreator_1.MongoDBResourceCreator(client, executionContext, logger); } /** @inheritdoc */ async fetchResourcesFor(tenants, cancellation = sdk_resilience_1.Cancellation.default) { const resources = new sdk_artifacts_1.ComplexValueMap(sdk_execution_1.TenantId, _ => [_.value.toString()], 1); await Promise.all(tenants.map(async (tenant) => { resources.set(tenant.id, new Resources_1.Resources(await this._mongoDB.createFor(tenant.id, cancellation))); })); return new ResourcesBuilder_1.ResourcesBuilder(resources); } } exports.ResourcesFetcher = ResourcesFetcher; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzb3VyY2VzRmV0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzIjpbIkludGVybmFsL1Jlc291cmNlc0ZldGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxxR0FBcUc7OztBQUlyRywyREFBMEQ7QUFDMUQsMkRBQXFFO0FBQ3JFLDZEQUF3RDtBQUt4RCx1RkFBb0Y7QUFHcEYsNENBQXlDO0FBQ3pDLDBEQUF1RDtBQUN2RCx1REFBb0Q7QUFFcEQ7O0dBRUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLGlDQUFlO0lBR2pEOzs7OztPQUtHO0lBQ0gsWUFDSSxNQUF1QixFQUN2QixnQkFBa0MsRUFDbEMsTUFBYztRQUVkLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLCtDQUFzQixDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUEwQixFQUFFLGVBQTZCLDZCQUFZLENBQUMsT0FBTztRQUNqRyxNQUFNLFNBQVMsR0FBOEIsSUFBSSwrQkFBZSxDQUFDLHdCQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6RyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLEVBQUU7WUFDekMsU0FBUyxDQUFDLEdBQUcsQ0FDVCxNQUFNLENBQUMsRUFBRSxFQUNULElBQUkscUJBQVMsQ0FDVCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQ3pELENBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixPQUFPLElBQUksbUNBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNKO0FBbENELDRDQWtDQyJ9