Files
lancedb/nodejs
Weston Pace 9148cd6d47 feat: page_token / limit to native table_names function. Use async table_names function from sync table_names function (#1059)
The synchronous table_names function in python lancedb relies on arrow's
filesystem which behaves slightly differently than object_store. As a
result, the function would not work properly in GCS.

However, the async table_names function uses object_store directly and
thus is accurate. In most cases we can fallback to using the async
table_names function and so this PR does so. The one case we cannot is
if the user is already in an async context (we can't start a new async
event loop). Soon, we can just redirect those users to use the async API
instead of the sync API and so that case will eventually go away. For
now, we fallback to the old behavior.
2024-03-05 08:38:18 -08:00
..

(New) LanceDB NodeJS SDK

It will replace the NodeJS SDK when it is ready.

Development

npm run build
npm t

Running lint / format

LanceDb uses eslint for linting. VSCode does not need any plugins to use eslint. However, it may need some additional configuration. Make sure that eslint.experimental.useFlatConfig is set to true. Also, if your vscode root folder is the repo root then you will need to set the eslint.workingDirectories to ["nodejs"]. To manually lint your code you can run:

npm run lint

LanceDb uses prettier for formatting. If you are using VSCode you will need to install the "Prettier - Code formatter" extension. You should then configure it to be the default formatter for typescript and you should enable format on save. To manually check your code's format you can run:

npm run chkformat

If you need to manually format your code you can run:

npx prettier --write .

Generating docs

npm run docs

cd ../docs
# Asssume the virtual environment was created
# python3 -m venv venv
# pip install -r requirements.txt
. ./venv/bin/activate
mkdocs build