Node.js MongoDB Driver API

Source: node_modules/mongodb-client-encryption/lib/common.js

'use strict';
/**
 * @ignore
 * Helper function for logging. Enabled by setting the environment flag MONGODB_CRYPT_DEBUG.
 * @param {*} msg Anything you want to be logged.
 */
function debug(msg) {
 if (process.env.MONGODB_CRYPT_DEBUG) {
 console.log(msg);
 }
}
/**
 * @ignore
 * Gets the database portion of a namespace string
 * @param {string} ns A string in the format of a namespace (database.collection)
 * @returns {string} The database portion of the namespace
 */
function databaseNamespace(ns) {
 return ns.split('.')[0];
}
/**
 * @ignore
 * Gets the colleciton portion of a namespace string
 * @param {string} ns A string in the format of a namespace (database.collection)
 * @returns {string} The collection portion of the namespace
 */
function collectionNamespace(ns) {
 return ns
 .split('.')
 .slice(1)
 .join('.');
}
/**
 * @class
 * An error indicating that something went wrong specifically with MongoDB Client Encryption
 */
class MongoCryptError extends Error {
 constructor(message) {
 super(message);
 this.name = 'MongoCryptError';
 Error.captureStackTrace(this, this.constructor);
 }
}
/**
 * @ignore
 * A helper function. Invokes a function that takes a callback as the final
 * parameter. If a callback is supplied, then it is passed to the function.
 * If not, a Promise is returned that resolves/rejects with the result of the
 * callback
 * @param {Function} [callback] an optional callback.
 * @param {Function} fn A function that takes a callback
 * @returns {Promise|void} Returns nothing if a callback is supplied, else returns a Promise.
 */
function promiseOrCallback(callback, fn) {
 if (typeof callback === 'function') {
 fn(function(err) {
 if (err != null) {
 try {
 callback(err);
 } catch (error) {
 return process.nextTick(() => {
 throw error;
 });
 }
 return;
 }
 callback.apply(this, arguments);
 });
 return;
 }
 return new Promise((resolve, reject) => {
 fn(function(err, res) {
 if (err != null) {
 return reject(err);
 }
 if (arguments.length> 2) {
 return resolve(Array.prototype.slice.call(arguments, 1));
 }
 resolve(res);
 });
 });
}
module.exports = {
 debug,
 databaseNamespace,
 collectionNamespace,
 MongoCryptError,
 promiseOrCallback
};

AltStyle によって変換されたページ (->オリジナル) /