123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- "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
|