UNPKG

ydb-sdk

Version:

Node.js bindings for working with YDB API over gRPC

45 lines (44 loc) 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const events_1 = require("events"); const scheme_service_1 = require("./scheme-service"); class SchemeClient extends events_1.EventEmitter { constructor(settings) { super(); this.settings = settings; this.schemeServices = new Map(); } async getSchemeService() { const endpoint = await this.settings.discoveryService.getEndpoint(); if (!this.schemeServices.has(endpoint)) { const { database, authService, sslCredentials, clientOptions, logger } = this.settings; const service = new scheme_service_1.SchemeService(endpoint, database, authService, logger, sslCredentials, clientOptions); this.schemeServices.set(endpoint, service); } return this.schemeServices.get(endpoint); } async makeDirectory(path, settings) { const service = await this.getSchemeService(); return await service.makeDirectory(path, settings); } async removeDirectory(path, settings) { const service = await this.getSchemeService(); return await service.removeDirectory(path, settings); } async listDirectory(path, settings) { const service = await this.getSchemeService(); return await service.listDirectory(path, settings); } async describePath(path, settings) { const service = await this.getSchemeService(); return await service.describePath(path, settings); } async modifyPermissions(path, permissionActions, clearPermissions, settings) { const service = await this.getSchemeService(); return await service.modifyPermissions(path, permissionActions, clearPermissions, settings); } async destroy() { return; } } exports.default = SchemeClient;