refactor: use global.$MongooseDriver
to store current driver to remove webpack warnings
#6771
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This refactor is just a bit too meaty for me to merge into master directly, I'd like to review it a couple more times.
The problem with #6705 is that we use
global.MONGOOSE_DRIVER_PATH
all over the place inrequire()
statements to support the existing custom driver paradigm, which is what makes the browser library possible. This PR changes it so that we look atglobal.MONGOOSE_DRIVER_PATH
once when mongoose is firstrequire()
-ed in node and store it in aglobal.$MongooseDriver
variable. Thelib/browser.js
entry point won't look atglobal.MONGOOSE_DRIVER_PATH
at all.The hard part is that this added the potential for messy cycling dependencies, because
require('./driver')
->require('./collection')
->require('./utils')
->require('./types/Decimal128')
->require('./driver')
and the alternative is to useglobal.$MongooseDriver
in transactional code, which sounds gross.