charts-embed-sdk icon indicating copy to clipboard operation
charts-embed-sdk copied to clipboard

Runtime error in version 3.3.1

Open bsrikanth-tby opened this issue 1 year ago • 2 comments

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 }}

bsrikanth-tby avatar Aug 18 '24 08:08 bsrikanth-tby

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.

mhdejonge-tby avatar Aug 20 '24 21:08 mhdejonge-tby

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"
  }

FredM7 avatar Oct 11 '24 16:10 FredM7