pubkey / rxdb

A fast, local first, reactive Database for JavaScript Applications https://rxdb.info/
https://rxdb.info/
Apache License 2.0
21.58k stars 1.06k forks source link

react native : Can't find variable: BigInt #5386

Closed jwallet closed 10 months ago

jwallet commented 10 months ago

using the 15.0.0-beta.42 (cannot use .43 since it was not published for premium)

On react native ESMA Script 2020 seems to not be shipped with it, so we get an issue with BigInt https://github.com/facebook/react-native/issues/28492

the solution suggested is to add a new dependency but does not work, for both libs suggested, maybe adding it to babel plugins will work

image

pubkey commented 10 months ago

I think this is coming from the mingo library here https://github.com/kofrasa/mingo/blob/585992064ee2830eb78437ef15907c67b817bc53/src/util.ts#L90

pubkey commented 10 months ago

I created an issue https://github.com/kofrasa/mingo/pull/407

jwallet commented 10 months ago

After using patch-package it loaded and synchronized properly on v15. However patching lib was only used to go a bitter further and see if v15 breaks a expo project, but no it's just like v14. It works. So we will probably upgrade the whole stack to v15 around march

The newest expo sdk is coming with a new expo-sqlite version. I wonder if they updated it to the newest Android API which I think supports json_extract or maybe Im mistaking with xandroid

pubkey commented 10 months ago

This issue about sqlite android version in expo is still open and has no new comments, so I am not sure. Here @ide said they work on the sqlite update, but this was some months ago.

jwallet commented 10 months ago

there are mentions of sqlite3 with the latest sdk50, if you go back to the branch sdk49 you will see the current code. They have touched the files, but I'm still unsure since json_extract was introduced in v3.38 I think

edit: they use v3.42, the changelog of the sqlite3 version they are based on is available here and it has mentioned of adding improvements to the json functions, and it looks like they introduced it in 3.19 or even before, based on their search in the changelog. So fingers crossed, it looks like it's coming in Expo SDK 50

ide commented 10 months ago

The next version of expo-sqlite will include SQLite as a dependency allowing for SQLite extensions like CR-SQLite and for the library to be kept more up to date than the OS vendors do.

There is also an entirely new API exported from expo-sqlite/next that provides both sync and async functions (sometimes sync functions simplify your code so much it’s worth blocking the JS thread), Uint8Array support (storing blobs), prepared statements (when running one query many many times), a more native JS API with iterators and async iterators, and a more native React API with Context and Suspense. There is also support for Hermes BigInts, which has come up in API design discussions.

Since it is a new API, new adapters will need to be written. However, our hope is that it’s a mostly straightforward, mechanical change.

You can try the beta version of the package today. We are still discussing a couple more edge cases of the API before the non-beta release so there may be small breaking changes to the API during the beta period (things like varargs vs. explicit arrays). However, I expect the changes to be easy to keep up to date with if you decide to explore using the beta. SDK 50 beta notes

pubkey commented 10 months ago

@ide Thank you so much for the detailed answer of our question. Looking forward to SDK50.

@jwallet I am closing this issue because the original problem has been fixed and the mingo release has been added to RxDB.