@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
JavaScript
;
// 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