UNPKG

@dolittle/sdk.resources

Version:

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

45 lines 3.31 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.MongoDBResourceCreator = void 0; const mongodb_1 = require("mongodb"); const Resources_pb_1 = require("@dolittle/contracts/Runtime/Resources/Resources_pb"); const ResourceCreator_1 = require("../../Internal/ResourceCreator"); const ResourceName_1 = require("../../ResourceName"); const MongoDBResource_1 = require("./MongoDBResource"); /** * Represents an implementation of {@link ResourceCreator} for MongoDB. */ class MongoDBResourceCreator extends ResourceCreator_1.ResourceCreator { /** * Initialises a new instance of the {@link MongoDBResourceCreator} 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(ResourceName_1.ResourceName.from('MongoDB'), client.getMongoDB, client, executionContext, logger); } /** @inheritdoc */ createResourceRequest(callContext) { const request = new Resources_pb_1.GetRequest(); request.setCallcontext(callContext); return request; } /** @inheritdoc */ requestFailed(response) { if (response.hasFailure()) { return [true, response.getFailure()]; } return [false]; } /** @inheritdoc */ async createResourceFrom(response) { const client = new mongodb_1.MongoClient(response.getConnectionstring()); await client.connect(); return new MongoDBResource_1.MongoDBResource(client); } } exports.MongoDBResourceCreator = MongoDBResourceCreator; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uZ29EQlJlc291cmNlQ3JlYXRvci5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzIjpbIk1vbmdvREIvSW50ZXJuYWwvTW9uZ29EQlJlc291cmNlQ3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHFHQUFxRzs7O0FBRXJHLHFDQUFzQztBQVF0QyxxRkFBb0c7QUFFcEcsb0VBQWlFO0FBQ2pFLHFEQUFrRDtBQUNsRCx1REFBb0Q7QUFFcEQ7O0dBRUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLGlDQUFnRTtJQUV4Rzs7Ozs7T0FLRztJQUNILFlBQ0ksTUFBdUIsRUFDdkIsZ0JBQWtDLEVBQ2xDLE1BQWM7UUFFZCxLQUFLLENBQUMsMkJBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELGtCQUFrQjtJQUNSLHFCQUFxQixDQUFDLFdBQStCO1FBQzNELE1BQU0sT0FBTyxHQUFHLElBQUkseUJBQVUsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEMsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGFBQWEsQ0FBQyxRQUE0QjtRQUNoRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN2QixPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUcsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBNEI7UUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxxQkFBVyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLGlDQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNKO0FBdENELHdEQXNDQyJ9