@ultipa-graph/ultipa-driver
Version:
NodeJS SDK for Ultipa GQL
122 lines • 12.5 kB
JavaScript
;
/**
* gRPC service clients for GQLDB Node.js driver.
* Uses @grpc/proto-loader for dynamic proto loading.
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.createServiceClients = createServiceClients;
exports.promisifyCall = promisifyCall;
exports.promisifyCallWithDeadline = promisifyCallWithDeadline;
const grpc = __importStar(require("@grpc/grpc-js"));
const protoLoader = __importStar(require("@grpc/proto-loader"));
const path = __importStar(require("path"));
// Proto loading options
const PROTO_OPTIONS = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
};
// Load proto definition (bundled with the package)
const PROTO_PATH = path.resolve(__dirname, './proto/gqldb.proto');
let packageDefinition;
let grpcObject;
let gqldbPackage;
/**
* Load the proto file and return the gqldb package.
* Caches the result for subsequent calls.
*/
function loadProto() {
if (!gqldbPackage) {
packageDefinition = protoLoader.loadSync(PROTO_PATH, PROTO_OPTIONS);
grpcObject = grpc.loadPackageDefinition(packageDefinition);
gqldbPackage = grpcObject.gqldb;
}
return gqldbPackage;
}
/**
* Create all gRPC service clients for a given host.
*/
function createServiceClients(host, credentials, options) {
const proto = loadProto();
return {
sessionService: new proto.SessionService(host, credentials, options),
queryService: new proto.QueryService(host, credentials, options),
graphService: new proto.GraphService(host, credentials, options),
transactionService: new proto.TransactionService(host, credentials, options),
dataService: new proto.DataService(host, credentials, options),
healthService: new proto.Health(host, credentials, options),
adminService: new proto.AdminService(host, credentials, options),
bulkImportService: new proto.BulkImportService(host, credentials, options),
};
}
/**
* Helper to promisify unary gRPC calls.
*/
function promisifyCall(client, method, request, metadata) {
return new Promise((resolve, reject) => {
const fn = client[method].bind(client);
const meta = metadata || new grpc.Metadata();
fn(request, meta, (error, response) => {
if (error) {
reject(error);
}
else {
resolve(response);
}
});
});
}
/**
* Helper to promisify unary gRPC calls with deadline.
*/
function promisifyCallWithDeadline(client, method, request, timeoutMs, metadata) {
return new Promise((resolve, reject) => {
const fn = client[method].bind(client);
const meta = metadata || new grpc.Metadata();
const deadline = new Date(Date.now() + timeoutMs);
fn(request, meta, { deadline }, (error, response) => {
if (error) {
reject(error);
}
else {
resolve(response);
}
});
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrREgsb0RBaUJDO0FBS0Qsc0NBa0JDO0FBS0QsOERBb0JDO0FBakhELG9EQUFzQztBQUN0QyxnRUFBa0Q7QUFDbEQsMkNBQTZCO0FBRTdCLHdCQUF3QjtBQUN4QixNQUFNLGFBQWEsR0FBd0I7SUFDekMsUUFBUSxFQUFFLElBQUk7SUFDZCxLQUFLLEVBQUUsTUFBTTtJQUNiLEtBQUssRUFBRSxNQUFNO0lBQ2IsUUFBUSxFQUFFLElBQUk7SUFDZCxNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFFRixtREFBbUQ7QUFDbkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUVsRSxJQUFJLGlCQUFnRCxDQUFDO0FBQ3JELElBQUksVUFBMkIsQ0FBQztBQUNoQyxJQUFJLFlBQWlCLENBQUM7QUFFdEI7OztHQUdHO0FBQ0gsU0FBUyxTQUFTO0lBQ2hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixpQkFBaUIsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNwRSxVQUFVLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0QsWUFBWSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDbEMsQ0FBQztJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFjRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxJQUFZLEVBQ1osV0FBb0MsRUFDcEMsT0FBNkI7SUFFN0IsTUFBTSxLQUFLLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFFMUIsT0FBTztRQUNMLGNBQWMsRUFBRSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUM7UUFDcEUsWUFBWSxFQUFFLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQztRQUNoRSxZQUFZLEVBQUUsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDO1FBQ2hFLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDO1FBQzVFLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUM7UUFDOUQsYUFBYSxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQztRQUMzRCxZQUFZLEVBQUUsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDO1FBQ2hFLGlCQUFpQixFQUFFLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDO0tBQzNFLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixhQUFhLENBQzNCLE1BQVcsRUFDWCxNQUFjLEVBQ2QsT0FBaUIsRUFDakIsUUFBd0I7SUFFeEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLFFBQVEsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU3QyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQStCLEVBQUUsUUFBbUIsRUFBRSxFQUFFO1lBQ3pFLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQix5QkFBeUIsQ0FDdkMsTUFBVyxFQUNYLE1BQWMsRUFDZCxPQUFpQixFQUNqQixTQUFpQixFQUNqQixRQUF3QjtJQUV4QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsTUFBTSxJQUFJLEdBQUcsUUFBUSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUVsRCxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBK0IsRUFBRSxRQUFtQixFQUFFLEVBQUU7WUFDdkYsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGdSUEMgc2VydmljZSBjbGllbnRzIGZvciBHUUxEQiBOb2RlLmpzIGRyaXZlci5cbiAqIFVzZXMgQGdycGMvcHJvdG8tbG9hZGVyIGZvciBkeW5hbWljIHByb3RvIGxvYWRpbmcuXG4gKi9cblxuaW1wb3J0ICogYXMgZ3JwYyBmcm9tICdAZ3JwYy9ncnBjLWpzJztcbmltcG9ydCAqIGFzIHByb3RvTG9hZGVyIGZyb20gJ0BncnBjL3Byb3RvLWxvYWRlcic7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vLyBQcm90byBsb2FkaW5nIG9wdGlvbnNcbmNvbnN0IFBST1RPX09QVElPTlM6IHByb3RvTG9hZGVyLk9wdGlvbnMgPSB7XG4gIGtlZXBDYXNlOiB0cnVlLFxuICBsb25nczogU3RyaW5nLFxuICBlbnVtczogU3RyaW5nLFxuICBkZWZhdWx0czogdHJ1ZSxcbiAgb25lb2ZzOiB0cnVlLFxufTtcblxuLy8gTG9hZCBwcm90byBkZWZpbml0aW9uIChidW5kbGVkIHdpdGggdGhlIHBhY2thZ2UpXG5jb25zdCBQUk9UT19QQVRIID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vcHJvdG8vZ3FsZGIucHJvdG8nKTtcblxubGV0IHBhY2thZ2VEZWZpbml0aW9uOiBwcm90b0xvYWRlci5QYWNrYWdlRGVmaW5pdGlvbjtcbmxldCBncnBjT2JqZWN0OiBncnBjLkdycGNPYmplY3Q7XG5sZXQgZ3FsZGJQYWNrYWdlOiBhbnk7XG5cbi8qKlxuICogTG9hZCB0aGUgcHJvdG8gZmlsZSBhbmQgcmV0dXJuIHRoZSBncWxkYiBwYWNrYWdlLlxuICogQ2FjaGVzIHRoZSByZXN1bHQgZm9yIHN1YnNlcXVlbnQgY2FsbHMuXG4gKi9cbmZ1bmN0aW9uIGxvYWRQcm90bygpOiBhbnkge1xuICBpZiAoIWdxbGRiUGFja2FnZSkge1xuICAgIHBhY2thZ2VEZWZpbml0aW9uID0gcHJvdG9Mb2FkZXIubG9hZFN5bmMoUFJPVE9fUEFUSCwgUFJPVE9fT1BUSU9OUyk7XG4gICAgZ3JwY09iamVjdCA9IGdycGMubG9hZFBhY2thZ2VEZWZpbml0aW9uKHBhY2thZ2VEZWZpbml0aW9uKTtcbiAgICBncWxkYlBhY2thZ2UgPSBncnBjT2JqZWN0LmdxbGRiO1xuICB9XG4gIHJldHVybiBncWxkYlBhY2thZ2U7XG59XG5cbi8qKiBTZXJ2aWNlIGNsaWVudCB0eXBlcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlQ2xpZW50cyB7XG4gIHNlc3Npb25TZXJ2aWNlOiBncnBjLkNsaWVudDtcbiAgcXVlcnlTZXJ2aWNlOiBncnBjLkNsaWVudDtcbiAgZ3JhcGhTZXJ2aWNlOiBncnBjLkNsaWVudDtcbiAgdHJhbnNhY3Rpb25TZXJ2aWNlOiBncnBjLkNsaWVudDtcbiAgZGF0YVNlcnZpY2U6IGdycGMuQ2xpZW50O1xuICBoZWFsdGhTZXJ2aWNlOiBncnBjLkNsaWVudDtcbiAgYWRtaW5TZXJ2aWNlOiBncnBjLkNsaWVudDtcbiAgYnVsa0ltcG9ydFNlcnZpY2U6IGdycGMuQ2xpZW50O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbGwgZ1JQQyBzZXJ2aWNlIGNsaWVudHMgZm9yIGEgZ2l2ZW4gaG9zdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlcnZpY2VDbGllbnRzKFxuICBob3N0OiBzdHJpbmcsXG4gIGNyZWRlbnRpYWxzOiBncnBjLkNoYW5uZWxDcmVkZW50aWFscyxcbiAgb3B0aW9ucz86IGdycGMuQ2hhbm5lbE9wdGlvbnNcbik6IFNlcnZpY2VDbGllbnRzIHtcbiAgY29uc3QgcHJvdG8gPSBsb2FkUHJvdG8oKTtcblxuICByZXR1cm4ge1xuICAgIHNlc3Npb25TZXJ2aWNlOiBuZXcgcHJvdG8uU2Vzc2lvblNlcnZpY2UoaG9zdCwgY3JlZGVudGlhbHMsIG9wdGlvbnMpLFxuICAgIHF1ZXJ5U2VydmljZTogbmV3IHByb3RvLlF1ZXJ5U2VydmljZShob3N0LCBjcmVkZW50aWFscywgb3B0aW9ucyksXG4gICAgZ3JhcGhTZXJ2aWNlOiBuZXcgcHJvdG8uR3JhcGhTZXJ2aWNlKGhvc3QsIGNyZWRlbnRpYWxzLCBvcHRpb25zKSxcbiAgICB0cmFuc2FjdGlvblNlcnZpY2U6IG5ldyBwcm90by5UcmFuc2FjdGlvblNlcnZpY2UoaG9zdCwgY3JlZGVudGlhbHMsIG9wdGlvbnMpLFxuICAgIGRhdGFTZXJ2aWNlOiBuZXcgcHJvdG8uRGF0YVNlcnZpY2UoaG9zdCwgY3JlZGVudGlhbHMsIG9wdGlvbnMpLFxuICAgIGhlYWx0aFNlcnZpY2U6IG5ldyBwcm90by5IZWFsdGgoaG9zdCwgY3JlZGVudGlhbHMsIG9wdGlvbnMpLFxuICAgIGFkbWluU2VydmljZTogbmV3IHByb3RvLkFkbWluU2VydmljZShob3N0LCBjcmVkZW50aWFscywgb3B0aW9ucyksXG4gICAgYnVsa0ltcG9ydFNlcnZpY2U6IG5ldyBwcm90by5CdWxrSW1wb3J0U2VydmljZShob3N0LCBjcmVkZW50aWFscywgb3B0aW9ucyksXG4gIH07XG59XG5cbi8qKlxuICogSGVscGVyIHRvIHByb21pc2lmeSB1bmFyeSBnUlBDIGNhbGxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvbWlzaWZ5Q2FsbDxUUmVxdWVzdCwgVFJlc3BvbnNlPihcbiAgY2xpZW50OiBhbnksXG4gIG1ldGhvZDogc3RyaW5nLFxuICByZXF1ZXN0OiBUUmVxdWVzdCxcbiAgbWV0YWRhdGE/OiBncnBjLk1ldGFkYXRhXG4pOiBQcm9taXNlPFRSZXNwb25zZT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGZuID0gY2xpZW50W21ldGhvZF0uYmluZChjbGllbnQpO1xuICAgIGNvbnN0IG1ldGEgPSBtZXRhZGF0YSB8fCBuZXcgZ3JwYy5NZXRhZGF0YSgpO1xuXG4gICAgZm4ocmVxdWVzdCwgbWV0YSwgKGVycm9yOiBncnBjLlNlcnZpY2VFcnJvciB8IG51bGwsIHJlc3BvbnNlOiBUUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEhlbHBlciB0byBwcm9taXNpZnkgdW5hcnkgZ1JQQyBjYWxscyB3aXRoIGRlYWRsaW5lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvbWlzaWZ5Q2FsbFdpdGhEZWFkbGluZTxUUmVxdWVzdCwgVFJlc3BvbnNlPihcbiAgY2xpZW50OiBhbnksXG4gIG1ldGhvZDogc3RyaW5nLFxuICByZXF1ZXN0OiBUUmVxdWVzdCxcbiAgdGltZW91dE1zOiBudW1iZXIsXG4gIG1ldGFkYXRhPzogZ3JwYy5NZXRhZGF0YVxuKTogUHJvbWlzZTxUUmVzcG9uc2U+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBmbiA9IGNsaWVudFttZXRob2RdLmJpbmQoY2xpZW50KTtcbiAgICBjb25zdCBtZXRhID0gbWV0YWRhdGEgfHwgbmV3IGdycGMuTWV0YWRhdGEoKTtcbiAgICBjb25zdCBkZWFkbGluZSA9IG5ldyBEYXRlKERhdGUubm93KCkgKyB0aW1lb3V0TXMpO1xuXG4gICAgZm4ocmVxdWVzdCwgbWV0YSwgeyBkZWFkbGluZSB9LCAoZXJyb3I6IGdycGMuU2VydmljZUVycm9yIHwgbnVsbCwgcmVzcG9uc2U6IFRSZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=