Open
Description
- Review the documentation: https://docs.sentry.io/
- Search for existing issues: https://github.com/getsentry/sentry-javascript/issues
- Use the latest release: https://github.com/getsentry/sentry-javascript/releases
- N/A - Provide a link to the affected event from your Sentry account
Relates to PR #3077
Package + Version
-
@sentry/browser
-
@sentry/node
-
raven-js
-
raven-node
(raven for node) - other:
Version:
5.29.0
Description
Sentry must be imported using import * as Sentry
instead of import Sentry
in order to work.
With the esModuleInterop compiler option enabled, TypeScript does not complain about import Sentry
.
(With the option off, TS recognizes that the module does not have a default import and forbids import Sentry
)
This appears to be because the Sentry index.js module declares __esModule: true
but does not actually have a value for the default export:
// import Sentry from "@sentry/node" - transpiled
node_1 = tslib_1.__importDefault(node_1);
//tslib
__importDefault = function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Can the library be updated so the default import works as TypeScript thinks it does?
This is only an issue when the esModuleInterop setting is on, but it's a pretty valuable setting and a dangerous mistake
for the developer.
// Either
// vv - Can this be added?
exports.default = exports;
// Or
// vv - Can this be removed? Though it would make the `import *` less efficient.
Object.defineProperty(exports, "__esModule", { value: true });
Thanks!
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
No status
Status
No status
Status
No status