mongodb-js / charts-embed-sdk

The easiest way to embed MongoDB Charts visualisations into your web app
https://docs.mongodb.com/charts/master/embedding-charts-sdk/
Apache License 2.0
43 stars 31 forks source link

Runtime error in version 3.3.1 #99

Open bsrikanth-tby opened 2 months ago

bsrikanth-tby commented 2 months ago

In my angular project after upgrading @mongodb-js/charts-embed-dom to version 3.3.1 code compiles fine but I see this runtime error.

TypeError: _mongodb_js_charts_embed_dom__WEBPACK_IMPORTED_MODULE_0___default(...) is not a constructor

This runtime error is thrown exactly when the below code is run

const sdk = new EmbedSDK({ baseUrl: 'https://charts.mongodb.com' });

I'm using import statement like this in my angular component.

import EmbedSDK from '@mongodb-js/charts-embed-dom';

I'm using ES2022 module system in my tsconfig file. (compilerOptions.module: 'ES2022' and compilerOptions.target: 'ES2022')

image

Note: Just after upgrading to 3.3.1 I got an error mentioned in https://github.com/mongodb-js/charts-embed-sdk/issues/98. To fix it I added this to webpack.config.js file.

experiments: {topLevelAwait: true, outputModule: true}, resolve: {fallback: { "crypto": false }}

mhdejonge-tby commented 2 months ago

The import is resulting in a promise that resolves to the module, instead of the module itself. We can work around that by reading the default field on the result of the promise. But obviously we'd like to use the import as intended.

FredM7 commented 2 weeks ago

The webpack experiments solution did not work for us. It broke the rest of our project unfortunately.

We ended up overriding the bson package as mentioned here: https://github.com/mongodb-js/charts-embed-sdk/issues/98#issuecomment-2334659867

 "overrides": {
    "bson": "^4.5.2"
  }