1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- "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((err, indexes) => {
- if (err)
- return callback(err);
- if (!Array.isArray(indexes))
- return callback(undefined, []);
- if (full)
- return callback(undefined, indexes);
- callback(undefined, processResults(indexes));
- });
- }
- exports.indexInformation = indexInformation;
- function prepareDocs(coll, docs, options) {
- var _a;
- const forceServerObjectId = typeof options.forceServerObjectId === 'boolean'
- ? options.forceServerObjectId
- : (_a = coll.s.db.options) === null || _a === void 0 ? void 0 : _a.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
|