Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uncaught TypeError: BTree is not a constructor #36

Open
invegat opened this issue Jun 16, 2022 · 7 comments
Open

Uncaught TypeError: BTree is not a constructor #36

invegat opened this issue Jun 16, 2022 · 7 comments

Comments

@invegat
Copy link

invegat commented Jun 16, 2022

const tree = new BTree()

get error
Uncaught TypeError: BTree is not a constructor

@qwertie
Copy link
Owner

qwertie commented Jun 16, 2022

How are you importing it? import BTree from 'sorted-btree'; should work. But if not, try this:

import BTree_ from 'sorted-btree';
const BTree = (BTree_ as any).default as typeof BTree_;

Let me know how it goes.

@paolodina
Copy link

image

Though I was able to import with your code.

@mindreframer
Copy link

I hit the same problem with bun.sh.

Here a repo with reproduction:

@qwertie
Copy link
Owner

qwertie commented Jun 4, 2023

Please try the code above and let me know how it goes.

@mindreframer
Copy link

@qwertie Thanks for the response! This works:

import BTree_ from "sorted-btree";
const BTree = (BTree_ as any).default as typeof BTree_;

let tree = new BTree();

I have this issue with a 3rd party lib (https://github.com/blinkdb-js/blinkdb), would it be possible to make it work in the expected way? Is this workaround necessary to keep the ES5 compatibility?

And if there is no other way, maybe this should be documented in the Readme.

Cheers and have a great Sunday!
Roman

@mindreframer
Copy link

The workaround is problematic in that sense, that it would be not compatible with npm or yarn anymore. That means if we consider a library for publishing, to be used either in Node.js or Bun.sh projects, this approach would not work.

@qwertie
Copy link
Owner

qwertie commented Jun 4, 2023

Unfortunately I don't understand the cause of the problem, and I am generally too busy to investigate, so it is unlikely that I will find time to figure out the problem. It appears that enabling esnext in TypeScript options is problematic? Maybe if BTree were recompiled in esnext mode, it would work properly, but we can't do that, because we need to maintain es5 compatibility.

@qwertie qwertie changed the title new Btree fails Uncaught TypeError: BTree is not a constructor Jan 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants