tursodatabase / libsql-client-ts

TypeScript/JavaScript client API for libSQL
https://docs.turso.tech/sdk/ts/quickstart
MIT License
226 stars 32 forks source link

Build error when building it for cloudflare edge runtime #142

Closed nooblyf closed 9 months ago

nooblyf commented 9 months ago

@libsql/client: 0.4.0-pre.5 drizzle-orm: 0.29.1

Build error occurred Error: Failed to collect page data for /api/ping at /Users/nooblyf/github.com/projects/turso-drizzle-starter/node_modules/.pnpm/next@14.0.4_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/build/utils.js:1220:15 at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { type: 'Error' } Collecting page data . ELIFECYCLE  Command failed with exit code 1.

This is how i'm creating the client

import { drizzle } from 'drizzle-orm/libsql';
import { createClient } from '@libsql/client';

const client = createClient({
    url: process.env.DATABASE_URL,
    authToken: process.env.DATABASE_AUTH_TOKEN,
});

export const db = drizzle(client);

it works fine in dev but only fails when i'm doing a production build

Minimal reproducible code: https://github.com/nooblyf/turso-drizzle-starter

nooblyf commented 9 months ago

Downgrading next worked

meech-ward commented 9 months ago

I think it's a next.js issue because everything seems fine if you downgrade your next.js version from 14.0.4 to 14.0.3 or any other lower version. This issue is also in the next.js canary builds.

Also, the newer next.js versions cause this error:

SyntaxError: Invalid regular expression: /^((?<username>[^:]*)(:(?<password>.*))?@)?((?<host>[^:\\[\\]]*)|(\\[(?<host_br>[^\\[\\]]*)\\]))(:(?<port>[0-9]*))?$/su: Lone quantifier brackets
    at (node_modules/@libsql/client/lib-esm/uri.js:53:11)

if you do a dynamic import like this:

const libsqlClient = await import('@libsql/client');
const client = createClient({ url: process.env.TURSO_URL!, authToken: process.env.TURSO_AUTH_TOKEN });