First commit
This commit is contained in:
69
node_modules/mongodb/lib/operations/common_functions.js
generated
vendored
Normal file
69
node_modules/mongodb/lib/operations/common_functions.js
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.prepareDocs = exports.indexInformation = void 0;
|
||||
const error_1 = require("../error");
|
||||
const utils_1 = require("../utils");
|
||||
function indexInformation(db, name, _optionsOrCallback, _callback) {
|
||||
let options = _optionsOrCallback;
|
||||
let callback = _callback;
|
||||
if ('function' === typeof _optionsOrCallback) {
|
||||
callback = _optionsOrCallback;
|
||||
options = {};
|
||||
}
|
||||
// If we specified full information
|
||||
const full = options.full == null ? false : options.full;
|
||||
let topology;
|
||||
try {
|
||||
topology = (0, utils_1.getTopology)(db);
|
||||
}
|
||||
catch (error) {
|
||||
return callback(error);
|
||||
}
|
||||
// Did the user destroy the topology
|
||||
if (topology.isDestroyed())
|
||||
return callback(new error_1.MongoTopologyClosedError());
|
||||
// Process all the results from the index command and collection
|
||||
function processResults(indexes) {
|
||||
// Contains all the information
|
||||
const info = {};
|
||||
// Process all the indexes
|
||||
for (let i = 0; i < indexes.length; i++) {
|
||||
const index = indexes[i];
|
||||
// Let's unpack the object
|
||||
info[index.name] = [];
|
||||
for (const name in index.key) {
|
||||
info[index.name].push([name, index.key[name]]);
|
||||
}
|
||||
}
|
||||
return info;
|
||||
}
|
||||
// Get the list of indexes of the specified collection
|
||||
db.collection(name)
|
||||
.listIndexes(options)
|
||||
.toArray()
|
||||
.then(indexes => {
|
||||
if (!Array.isArray(indexes))
|
||||
return callback(undefined, []);
|
||||
if (full)
|
||||
return callback(undefined, indexes);
|
||||
callback(undefined, processResults(indexes));
|
||||
}, error => callback(error));
|
||||
}
|
||||
exports.indexInformation = indexInformation;
|
||||
function prepareDocs(coll, docs, options) {
|
||||
const forceServerObjectId = typeof options.forceServerObjectId === 'boolean'
|
||||
? options.forceServerObjectId
|
||||
: coll.s.db.options?.forceServerObjectId;
|
||||
// no need to modify the docs if server sets the ObjectId
|
||||
if (forceServerObjectId === true) {
|
||||
return docs;
|
||||
}
|
||||
return docs.map(doc => {
|
||||
if (doc._id == null) {
|
||||
doc._id = coll.s.pkFactory.createPk();
|
||||
}
|
||||
return doc;
|
||||
});
|
||||
}
|
||||
exports.prepareDocs = prepareDocs;
|
||||
//# sourceMappingURL=common_functions.js.map
|
Reference in New Issue
Block a user