1.3.0 • Published 8 months ago
@storecraft/database-turso v1.3.0
Storecraft Turso (libsql) Database support
Official libSql / Turso driver for StoreCraft on any platform.
Includes a vector store.
npm i @storecraft/database-tursoLocal usage
import 'dotenv/config';
import http from "node:http";
import { App } from '@storecraft/core'
import { NodePlatform } from '@storecraft/core/platform/node';
import { NodeLocalStorage } from '@storecraft/core/storage/node'
import { LibSQL, LibSQLVectorStore } from '@storecraft/database-turso'
import { migrateToLatest } from '@storecraft/database-turso/migrate.js'
const app = new App(
{
auth_admins_emails: ['admin@sc.com'],
}
)
.withPlatform(new NodePlatform())
.withDatabase(
new LibSQL(
{
url: 'file:local.db',
}
)
)
.withStorage(new NodeLocalStorage('storage'))
.withVectorStore(
new LibSQLVectorStore(
{
embedder: new OpenAIEmbedder(),
url: 'file:local-vector.db'
}
)
).init();
await migrateToLatest(app.__show_me_everything.db, false);
await app.__show_me_everything.vector_store.createVectorIndex();
http.createServer(app.handler).listen(
8000,
() => {
app.print_banner('http://localhost:8000');
}
); Storecraft will search the following env variables
LIBSQL_URL=./data.db
# optional, if absent will use the same as LIBSQL_URL
LIBSQL_VECTOR_URL=./data-vector.dbSo, you can instantiate with empty config
.withDatabase(
new Turso()
)
.withVectorStore(
new LibSQLVectorStore(
{
embedder: new OpenAIEmbedder(),
}
)
)Cloud usage
connect to a cloud libsql and Turso platform
- First, login to your turso account.
- Create a database.
- Create an API Key.
usage
import 'dotenv/config';
import http from "node:http";
import { App } from '@storecraft/core'
import { NodePlatform } from '@storecraft/core/platform/node';
import { NodeLocalStorage } from '@storecraft/core/storage/node'
import { Turso, LibSQLVectorStore } from '@storecraft/database-turso'
import { migrateToLatest } from '@storecraft/database-turso/migrate.js'
const app = new App(
{
auth_admins_emails: ['admin@sc.com'],
}
)
.withPlatform(new NodePlatform())
.withDatabase(
new Turso(
{
prefers_batch_over_transactions: true,
// all of these configurations can be inferred by env variables at init
url: process.env.LIBSQL_URL,
authToken: process.env.LIBSQL_API_TOKEN,
}
)
)
.withStorage(new NodeLocalStorage('storage'))
.withVectorStore(
new LibSQLVectorStore(
{
embedder: new OpenAIEmbedder(),
url: process.env.LIBSQL_URL,
authToken: process.env.LIBSQL_API_TOKEN,
}
)
).init();
await migrateToLatest(app.__show_me_everything.db, false);
await app.__show_me_everything.vector_store.createVectorIndex();
http.createServer(app.handler).listen(
8000,
() => {
app.print_banner('http://localhost:8000');
}
); Storecraft will search the following env variables
LIBSQL_URL=libsql://<your_database_name>.something.com
LIBSQL_AUTH_TOKEN=your_api_keySo, you can instantiate with empty config
.withDatabase(
new Turso()
)
.withVectorStore(
new LibSQLVectorStore(
{
embedder: new OpenAIEmbedder(),
}
)
)Author: Tomer Shalev <tomer.shalev@gmail.com>1.0.19
10 months ago
1.0.18
10 months ago
1.0.17
10 months ago
1.0.16
10 months ago
1.2.5
9 months ago
1.3.0
8 months ago
1.0.22
9 months ago
1.0.21
9 months ago
1.0.20
10 months ago
1.0.23
9 months ago
1.0.15
10 months ago
1.0.14
10 months ago
1.0.13
11 months ago
1.0.12
11 months ago
1.0.11
11 months ago
1.0.10
11 months ago
1.0.9
11 months ago
1.0.8
12 months ago
1.0.7
12 months ago
1.0.6
1 year ago
1.0.5
1 year ago
1.0.2
1 year ago
1.0.4
1 year ago
1.0.3
1 year ago
1.0.1
1 year ago
1.0.0
1 year ago