123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 'use strict';
- const require_optional = require('require_optional');
- function debugOptions(debugFields, options) {
- var finaloptions = {};
- debugFields.forEach(function(n) {
- finaloptions[n] = options[n];
- });
- return finaloptions;
- }
- function retrieveBSON() {
- var BSON = require('bson');
- BSON.native = false;
- try {
- var optionalBSON = require_optional('bson-ext');
- if (optionalBSON) {
- optionalBSON.native = true;
- return optionalBSON;
- }
- } catch (err) {} // eslint-disable-line
- return BSON;
- }
- // Throw an error if an attempt to use Snappy is made when Snappy is not installed
- function noSnappyWarning() {
- throw new Error(
- 'Attempted to use Snappy compression, but Snappy is not installed. Install or disable Snappy compression and try again.'
- );
- }
- // Facilitate loading Snappy optionally
- function retrieveSnappy() {
- var snappy = null;
- try {
- snappy = require_optional('snappy');
- } catch (error) {} // eslint-disable-line
- if (!snappy) {
- snappy = {
- compress: noSnappyWarning,
- uncompress: noSnappyWarning,
- compressSync: noSnappyWarning,
- uncompressSync: noSnappyWarning
- };
- }
- return snappy;
- }
- module.exports = {
- debugOptions,
- retrieveBSON,
- retrieveSnappy
- };
|