{"version":3,"sources":["jsdelivr-header.js","/npm/nodejs-mongodb-driver@1.0.0/index.js"],"names":[],"mappings":"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","file":"/npm/nodejs-mongodb-driver@1.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/nodejs-mongodb-driver@1.0.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*\n * This MongoDB Handler was written by depascaldc\n * Copyright (C) 2020 | depascaldc - All Rights Reserved\n * \n * You may use, distribute and modify this code under the\n * terms of the GPL-3.0 license, which unfortunately won't be\n * written for another century.\n * \n * You should have received a copy of the GPL-3.0 license with\n * this file. If not, please write to: , or visit : https://www.gnu.org/licenses/gpl-3.0.txt\n */\n\"use strict\";\n\nconst MongoClient = require('mongodb').MongoClient;\n\nconst DRIVER_OPTIONS = {\n    useNewUrlParser: true,\n    useUnifiedTopology: true\n}\n\nmodule.exports.NodeJSMongoDriver = class NodeJSMongoDriver {\n\n    /**\n     * Get the instance of the driver by giving a connection String\n     * @param {String} connectionstring \n     */\n    constructor(connectionstring) {\n        this.connectionstring = connectionstring\n    }\n\n    /**\n     * Get the instance of the driver by giving simply the following parameter ( wthout connection String )\n     * @param {String} username \n     * @param {String} password \n     * @param {String} host \n     * @param {Integer} port \n     * @param {String} authenticationDatabase \n     */\n    static simple(username, password, host, port, authenticationDatabase) {\n        if (!username || !password || !host) {\n            throw new Error(\"Username Password and Host MUST be given.\");\n        }\n        return new NodejsMongoDriver(`mongodb://${username}:${password}@${host}:${port != null ? port : \"27017\"}/${authenticationDatabase != null ? authenticationDatabase : \"admin\"}`)\n    }\n\n    /**\n     * Create a database at your MongoDB instance\n     * @param {String} databaseName \n     * @param {CallableFunction} callbackFunction \n     */\n    createDatabase = (databaseName, callbackFunction) => {\n        MongoClient.connect(this.connectionstring + databaseName, DRIVER_OPTIONS, function (error, db) {\n            if (error) return callbackFunction(false, error);\n            db.close();\n            if (callbackFunction) callbackFunction(true);\n        });\n    }\n\n    /**\n     * Async creation of a database at your MongoDB instance\n     * @param {String} databaseName \n     * @returns {Promise<Object>}\n     */\n    createDatabaseAsync = async (databaseName) => {\n        return new Promise((resolve, reject) => {\n            this.createDatabase(this.connectionstring, databaseName, (err, result) => {\n                if (err) reject(err);\n                else resolve(result);\n            });\n        });\n    }\n\n    /**\n     * Create a collection in your given database\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @param {CallableFunction} callbackFunction \n     */\n    createCollection = (databaseName, collectionName, callbackFunction) => {\n        MongoClient.connect(this.connectionstring, DRIVER_OPTIONS, (error, db) => {\n            if (error) return callbackFunction(false, error);\n            var dbf = db.db(databaseName);\n            dbf.createCollection(collectionName, function (err, result) {\n                if (err) return callbackFunction(false, err);\n                db.close();\n                if (callbackFunction) callbackFunction(true)\n            });\n        })\n    }\n\n    /**\n     * Async creation of a collection in your given database\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @returns {Promise<Object>}\n     */\n    createCollectionAsync = async (databaseName, collectionName) => {\n        return new Promise((resolve, reject) => {\n            this.createCollection(this.connectionstring, databaseName, collectionName, (err, result) => {\n                if (err) reject(err);\n                else resolve(result);\n            });\n        });\n    }\n\n    /**\n     * Search for an Object by give em an object to match\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @param {Object} queryObject \n     * @param {CallableFunction} callbackFunction \n     */\n    query = (databaseName, collectionName, queryObject, callbackFunction) => {\n        MongoClient.connect(this.connectionstring, DRIVER_OPTIONS, (error, db) => {\n            if (error) return callbackFunction(false, error);\n            var dbf = db.db(databaseName);\n            dbf.collection(collectionName).find(queryObject).toArray(function (err, result) {\n                if (err) return callbackFunction(false, err);\n                db.close();\n                if (callbackFunction) callbackFunction(result);\n            });\n        })\n    }\n\n    /**\n     * async search for an Object by give em an object to match\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @param {Object} queryObject \n     * @returns {Promise<Object>}\n     */\n    queryAsync = async (databaseName, collectionName, queryObject) => {\n        return new Promise((resolve, reject) => {\n            this.query(databaseName, collectionName, queryObject, (err, result) => {\n                if (err) reject(err);\n                else resolve(result);\n            });\n        });\n    }\n\n    /**\n     * Insert a new Object to the given Collection\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @param {Object} onject \n     * @param {CallableFunction} callbackFunction \n     */\n    insertObject = (databaseName, collectionName, object, callbackFunction) => {\n        MongoClient.connect(this.connectionstring, DRIVER_OPTIONS, (error, db) => {\n            if (error) return callbackFunction(false, error);\n            var dbf = db.db(databaseName);\n            dbf.collection(collectionName).insertOne(object, (err, result) => {\n                if (err) return callbackFunction(false, err);\n                db.close();\n                if (callbackFunction) callbackFunction(true);\n            })\n        })\n    }\n\n    /**\n     * Async insert a new Object to the given Collection\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @param {Object} object \n     * @returns {Promise<Object>}\n     */\n    insertObjectAsync = async (databaseName, collectionName, object) => {\n        return new Promise((resolve, reject) => {\n            this.insertObject(databaseName, collectionName, object, (err, result) => {\n                if (err) reject(err);\n                else resolve(result);\n            });\n        });\n    }\n\n    /**\n     * Delete a queried object\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @param {Object} queryObject \n     * @param {CallableFunction} callbackFunction \n     */\n    deleteObject = (databaseName, collectionName, queryObject, callbackFunction) => {\n        MongoClient.connect(this.connectionstring, DRIVER_OPTIONS, (error, db) => {\n            if (error) return callbackFunction(false, error);\n            var dbf = db.db(databaseName);\n            dbf.collection(collectionName).deleteOne(queryObject, function (err, result) {\n                if (err) return callbackFunction(false, err);\n                db.close();\n                if (callbackFunction) callbackFunction(true)\n            });\n        })\n    }\n\n    /**\n     * Async delete a queried object\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @param {Object} queryObject \n     * @returns {Promise<Object>}\n     */\n    deleteObjectAsync = async (databaseName, collectionName, queryObject) => {\n        return new Promise((resolve, reject) => {\n            this.deleteObject(databaseName, collectionName, queryObject, (err, result) => {\n                if (err) reject(err);\n                else resolve(result);\n            });\n        });\n    }\n\n    /**\n     * Update a queried object.. it inserts the given object key value pairs\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @param {Object} queryObject \n     * @param {Object} newValues \n     * @param {CallableFunction} callbackFunction \n     */\n    updateObject = (databaseName, collectionName, queryObject, newValues, callbackFunction) => {\n        MongoClient.connect(this.connectionstring, DRIVER_OPTIONS, (error, db) => {\n            if (error) return callbackFunction(false, error);\n            var dbf = db.db(databaseName);\n            let obj = {\n                $set: newValues\n            }\n            dbf.collection(collectionName).updateOne(queryObject, obj, function (err, result) {\n                if (err) return callbackFunction(false, err);\n                db.close();\n                if (callbackFunction) callbackFunction(true);\n            });\n        })\n    }\n\n    /**\n     * Async Update a queried object.. it inserts the given object key value pairs\n     * @param {String} databaseName \n     * @param {String} collectionName \n     * @param {Object} queryObject \n     * @param {Object} newValues \n     * @returns {Promise<Object>}\n     */\n    updateObjectAsync = async (databaseName, collectionName, queryObject, newValues) => {\n        return new Promise((resolve, reject) => {\n            this.updateObject(databaseName, collectionName, queryObject, newValues, (err, result) => {\n                if (err) reject(err);\n                else resolve(result);\n            });\n        });\n    }\n\n}"]}