From 19998372a703a5b47431cf2910e6448f97b0185d Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Tue, 18 Feb 2025 12:39:55 +0800 Subject: [PATCH] refactor(duckdb-wasm): split into two packages --- packages/drizzle-duckdb-wasm/package.json | 1 + .../src/bundles/default-browser.ts | 20 +---- .../src/bundles/default-node.ts | 20 +---- .../src/bundles/import-url-browser.ts | 29 +------ .../src/bundles/import-url-node.ts | 29 +------ .../drizzle-duckdb-wasm/src/dialect/index.ts | 4 - packages/drizzle-duckdb-wasm/src/driver.ts | 12 +-- .../drizzle-duckdb-wasm/src/index.test.ts | 2 +- packages/drizzle-duckdb-wasm/src/index.ts | 4 +- packages/drizzle-duckdb-wasm/src/session.ts | 5 +- packages/duckdb-wasm/package.json | 77 +++++++++++++++++++ .../src/bundles/default-browser.ts | 19 +++++ .../duckdb-wasm/src/bundles/default-node.ts | 19 +++++ .../src/bundles/import-url-browser.ts | 28 +++++++ .../src/bundles/import-url-node.ts | 28 +++++++ .../src/common.ts} | 0 .../src/dialect => duckdb-wasm/src}/duckdb.ts | 0 .../src/format.ts} | 6 +- packages/duckdb-wasm/src/index.ts | 4 + .../src/types.ts} | 5 +- pnpm-lock.yaml | 66 +++++++++------- 21 files changed, 234 insertions(+), 144 deletions(-) delete mode 100644 packages/drizzle-duckdb-wasm/src/dialect/index.ts create mode 100644 packages/duckdb-wasm/package.json create mode 100644 packages/duckdb-wasm/src/bundles/default-browser.ts create mode 100644 packages/duckdb-wasm/src/bundles/default-node.ts create mode 100644 packages/duckdb-wasm/src/bundles/import-url-browser.ts create mode 100644 packages/duckdb-wasm/src/bundles/import-url-node.ts rename packages/{drizzle-duckdb-wasm/src/dialect/duckdb-common.ts => duckdb-wasm/src/common.ts} (100%) rename packages/{drizzle-duckdb-wasm/src/dialect => duckdb-wasm/src}/duckdb.ts (100%) rename packages/{drizzle-duckdb-wasm/src/dialect/duckdb-format.ts => duckdb-wasm/src/format.ts} (99%) create mode 100644 packages/duckdb-wasm/src/index.ts rename packages/{drizzle-duckdb-wasm/src/dialect/duckdb-types.ts => duckdb-wasm/src/types.ts} (98%) diff --git a/packages/drizzle-duckdb-wasm/package.json b/packages/drizzle-duckdb-wasm/package.json index a41b0b646..2616b3d68 100644 --- a/packages/drizzle-duckdb-wasm/package.json +++ b/packages/drizzle-duckdb-wasm/package.json @@ -69,6 +69,7 @@ "dependencies": { "@date-fns/tz": "^1.2.0", "@duckdb/duckdb-wasm": "^1.29.0", + "@proj-airi/duckdb-wasm": "workspace:^", "apache-arrow": "^19.0.0", "date-fns": "^4.1.0", "defu": "^6.1.4", diff --git a/packages/drizzle-duckdb-wasm/src/bundles/default-browser.ts b/packages/drizzle-duckdb-wasm/src/bundles/default-browser.ts index 43113f61a..35335f3d9 100644 --- a/packages/drizzle-duckdb-wasm/src/bundles/default-browser.ts +++ b/packages/drizzle-duckdb-wasm/src/bundles/default-browser.ts @@ -1,19 +1 @@ -import type { DuckDBBundles } from '@duckdb/duckdb-wasm' - -export function getBundles(): DuckDBBundles { - return { - mvp: { - mainModule: './duckdb-mvp.wasm', - mainWorker: './duckdb-browser-mvp.worker.js', - }, - eh: { - mainModule: './duckdb-eh.wasm', - mainWorker: './duckdb-browser-eh.worker.js', - }, - coi: { - mainModule: './duckdb-coi.wasm', - mainWorker: './duckdb-browser-coi.worker.js', - pthreadWorker: './duckdb-browser-coi.pthread.worker.js', - }, - } -} +export { getBundles } from '@proj-airi/duckdb-wasm/bundles/default-browser' diff --git a/packages/drizzle-duckdb-wasm/src/bundles/default-node.ts b/packages/drizzle-duckdb-wasm/src/bundles/default-node.ts index 4b27c9864..1696066c8 100644 --- a/packages/drizzle-duckdb-wasm/src/bundles/default-node.ts +++ b/packages/drizzle-duckdb-wasm/src/bundles/default-node.ts @@ -1,19 +1 @@ -import type { DuckDBBundles } from '@duckdb/duckdb-wasm' - -export async function getBundles(): Promise { - const { createRequire } = await import('node:module') - const { dirname, resolve } = await import('node:path') - const require = createRequire(import.meta.url) - const DUCKDB_DIST = dirname(require.resolve('@duckdb/duckdb-wasm')) - - return { - mvp: { - mainModule: resolve(DUCKDB_DIST, './duckdb-mvp.wasm'), - mainWorker: resolve(DUCKDB_DIST, './duckdb-node-mvp.worker.cjs'), - }, - eh: { - mainModule: resolve(DUCKDB_DIST, './duckdb-eh.wasm'), - mainWorker: resolve(DUCKDB_DIST, './duckdb-node-eh.worker.cjs'), - }, - } -} +export { getBundles } from '@proj-airi/duckdb-wasm/bundles/default-node' diff --git a/packages/drizzle-duckdb-wasm/src/bundles/import-url-browser.ts b/packages/drizzle-duckdb-wasm/src/bundles/import-url-browser.ts index 3cd718f9f..154535ad5 100644 --- a/packages/drizzle-duckdb-wasm/src/bundles/import-url-browser.ts +++ b/packages/drizzle-duckdb-wasm/src/bundles/import-url-browser.ts @@ -1,28 +1 @@ -/* eslint-disable perfectionist/sort-imports */ -import type { DuckDBBundles } from '@duckdb/duckdb-wasm' - -import ehMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-browser-eh.worker.js?url' -import ehMainModule from '@duckdb/duckdb-wasm/dist/duckdb-eh.wasm?url' -import mvpMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-browser-mvp.worker.js?url' -import mvpMainModule from '@duckdb/duckdb-wasm/dist/duckdb-mvp.wasm?url' -import coiMainModule from '@duckdb/duckdb-wasm/dist/duckdb-coi.wasm?url' -import coiMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-browser-coi.worker.js?url' -import coiPthreadWorker from '@duckdb/duckdb-wasm/dist/duckdb-browser-coi.pthread.worker.js?url' - -export function getImportUrlBundles(): DuckDBBundles { - return { - mvp: { - mainModule: mvpMainModule, - mainWorker: mvpMainWorker, - }, - eh: { - mainModule: ehMainModule, - mainWorker: ehMainWorker, - }, - coi: { - mainModule: coiMainModule, - mainWorker: coiMainWorker, - pthreadWorker: coiPthreadWorker, - }, - } -} +export { getImportUrlBundles } from '@proj-airi/duckdb-wasm/bundles/import-url-browser' diff --git a/packages/drizzle-duckdb-wasm/src/bundles/import-url-node.ts b/packages/drizzle-duckdb-wasm/src/bundles/import-url-node.ts index cd38a765c..34fe46c4e 100644 --- a/packages/drizzle-duckdb-wasm/src/bundles/import-url-node.ts +++ b/packages/drizzle-duckdb-wasm/src/bundles/import-url-node.ts @@ -1,28 +1 @@ -/* eslint-disable perfectionist/sort-imports */ -import type { DuckDBBundles } from '@duckdb/duckdb-wasm' - -import ehMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-node-eh.worker.cjs?url' -import ehMainModule from '@duckdb/duckdb-wasm/dist/duckdb-eh.wasm?url' -import mvpMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-node-mvp.worker.cjs?url' -import mvpMainModule from '@duckdb/duckdb-wasm/dist/duckdb-mvp.wasm?url' - -function transformUrl(url: string) { - if (url.startsWith('/@fs/')) { - return url.replace('/@fs/', 'file://') - } - - return url -} - -export async function getImportUrlBundles(): Promise { - return { - mvp: { - mainModule: transformUrl(mvpMainModule), - mainWorker: transformUrl(mvpMainWorker), - }, - eh: { - mainModule: transformUrl(ehMainModule), - mainWorker: transformUrl(ehMainWorker), - }, - } -} +export { getImportUrlBundles } from '@proj-airi/duckdb-wasm/bundles/import-url-node' diff --git a/packages/drizzle-duckdb-wasm/src/dialect/index.ts b/packages/drizzle-duckdb-wasm/src/dialect/index.ts deleted file mode 100644 index ebd28b45c..000000000 --- a/packages/drizzle-duckdb-wasm/src/dialect/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './duckdb' -export * from './duckdb-common' -export * from './duckdb-format' -export * from './duckdb-types' diff --git a/packages/drizzle-duckdb-wasm/src/driver.ts b/packages/drizzle-duckdb-wasm/src/driver.ts index 15b4f99b1..f8294cd53 100644 --- a/packages/drizzle-duckdb-wasm/src/driver.ts +++ b/packages/drizzle-duckdb-wasm/src/driver.ts @@ -1,13 +1,13 @@ import type { DuckDBBundles, Logger } from '@duckdb/duckdb-wasm' +import type { DuckDBWasmClient } from '@proj-airi/duckdb-wasm' import type { DrizzleConfig, RelationalSchemaConfig, TablesRelationalConfig } from 'drizzle-orm' -import type { DuckDBWasmClient } from './dialect' import type { DuckDBWasmQueryResultHKT } from './session' import { ConsoleLogger } from '@duckdb/duckdb-wasm' +import { connect, getEnvironment } from '@proj-airi/duckdb-wasm' import { createTableRelationsHelpers, DefaultLogger, entityKind, extractTablesRelationalConfig, isConfig } from 'drizzle-orm' import { PgDatabase, PgDialect } from 'drizzle-orm/pg-core' -import { connect, getEnvironment } from './dialect' import { DuckDBWasmSession } from './session' export class DuckDBWasmDatabase< @@ -78,13 +78,13 @@ export function drizzle< return construct(new Promise((resolve) => { getEnvironment().then((env) => { if (env === 'browser') { - import('./bundles/import-url-browser') + import('@proj-airi/duckdb-wasm/bundles/import-url-browser') .then(res => res.getImportUrlBundles()) .then(bundles => connect({ bundles, logger })) .then(resolve) } else if (env === 'node') { - import('./bundles/import-url-node') + import('@proj-airi/duckdb-wasm/bundles/import-url-node') .then(res => res.getImportUrlBundles()) .then(bundles => connect({ bundles, logger })) .then(resolve) @@ -125,13 +125,13 @@ export function drizzle< return construct(new Promise((resolve) => { getEnvironment().then((env) => { if (env === 'browser') { - import('./bundles/import-url-browser') + import('@proj-airi/duckdb-wasm/bundles/import-url-browser') .then(res => res.getImportUrlBundles()) .then(bundles => connect({ bundles, logger })) .then(resolve) } else if (env === 'node') { - import('./bundles/import-url-node') + import('@proj-airi/duckdb-wasm/bundles/import-url-node') .then(res => res.getImportUrlBundles()) .then(bundles => connect({ bundles, logger })) .then(resolve) diff --git a/packages/drizzle-duckdb-wasm/src/index.test.ts b/packages/drizzle-duckdb-wasm/src/index.test.ts index 0ea091715..cecc77baa 100644 --- a/packages/drizzle-duckdb-wasm/src/index.test.ts +++ b/packages/drizzle-duckdb-wasm/src/index.test.ts @@ -1,7 +1,7 @@ +import { getBundles } from '@proj-airi/duckdb-wasm/bundles/default-node' import { describe, expect, it } from 'vitest' import { drizzle } from '.' -import { getBundles } from './bundles/default-node' describe('drizzle', { timeout: 10000 }, async () => { it('should connect to a DuckDBWasm database', async () => { diff --git a/packages/drizzle-duckdb-wasm/src/index.ts b/packages/drizzle-duckdb-wasm/src/index.ts index fb25fac22..add4784d6 100644 --- a/packages/drizzle-duckdb-wasm/src/index.ts +++ b/packages/drizzle-duckdb-wasm/src/index.ts @@ -1,7 +1,7 @@ -export type { ConnectOptionalOptions, ConnectOptions, ConnectRequiredOptions, DuckDBWasmClient } from './dialect' -export { connect, mapColumnData } from './dialect' export * from './driver' export * from './migrator' export * from './session' export type { AsyncDuckDBConnection, DuckDBBundles, Logger } from '@duckdb/duckdb-wasm' export { AsyncDuckDB, ConsoleLogger, getJsDelivrBundles, selectBundle, VoidLogger } from '@duckdb/duckdb-wasm' +export type { ConnectOptionalOptions, ConnectOptions, ConnectRequiredOptions, DuckDBWasmClient } from '@proj-airi/duckdb-wasm' +export { connect, mapColumnData } from '@proj-airi/duckdb-wasm' diff --git a/packages/drizzle-duckdb-wasm/src/session.ts b/packages/drizzle-duckdb-wasm/src/session.ts index 3a0265717..3cb70cdff 100644 --- a/packages/drizzle-duckdb-wasm/src/session.ts +++ b/packages/drizzle-duckdb-wasm/src/session.ts @@ -1,13 +1,12 @@ +import type { DuckDBWasmClient } from '@proj-airi/duckdb-wasm' import type { Schema, StructRow } from 'apache-arrow' import type { Assume, Logger, Query, RelationalSchemaConfig, TablesRelationalConfig } from 'drizzle-orm' import type { PgDialect, PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig, SelectedFieldsOrdered } from 'drizzle-orm/pg-core' -import type { DuckDBWasmClient } from './dialect' +import { beginTransaction, mapColumnData, withSavepoint } from '@proj-airi/duckdb-wasm' import { entityKind, fillPlaceholders, NoopLogger } from 'drizzle-orm' import { PgPreparedQuery, PgSession, PgTransaction } from 'drizzle-orm/pg-core' -import { beginTransaction, mapColumnData, withSavepoint } from './dialect' - export type Row = Record export type RowList = T diff --git a/packages/duckdb-wasm/package.json b/packages/duckdb-wasm/package.json new file mode 100644 index 000000000..0fe0b0650 --- /dev/null +++ b/packages/duckdb-wasm/package.json @@ -0,0 +1,77 @@ +{ + "name": "@proj-airi/duckdb-wasm", + "type": "module", + "version": "0.1.6", + "private": true, + "description": "", + "author": { + "name": "Neko Ayaka", + "email": "neko@ayaka.moe", + "url": "https://github.com/nekomeowww" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/moeru-ai/airi.git", + "directory": "packages/duckdb-wasm" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "node": "./dist/index.cjs" + }, + "./bundles/default-browser": { + "types": "./dist/bundles/default-browser.d.ts", + "import": "./dist/bundles/default-browser.mjs" + }, + "./bundles/default-node": { + "types": "./dist/bundles/default-node.d.ts", + "import": "./dist/bundles/default-node.mjs", + "node": "./dist/bundles/default-node.cjs" + }, + "./bundles/import-url-browser": { + "types": "./dist/bundles/import-url-browser.d.ts", + "import": "./dist/bundles/import-url-browser.mjs" + }, + "./bundles/import-url-node": { + "types": "./dist/bundles/import-url-node.d.ts", + "import": "./dist/bundles/import-url-node.mjs", + "node": "./dist/bundles/import-url-node.cjs" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "README.md", + "dist", + "package.json" + ], + "scripts": { + "dev": "pnpm run stub && pnpm run play:dev", + "stub": "unbuild --stub", + "build": "unbuild && pnpm run play:build", + "typecheck": "tsc --noEmit" + }, + "peerDependencies": { + "web-worker": "^1.5.0" + }, + "peerDependenciesMeta": { + "web-worker": { + "optional": true + } + }, + "dependencies": { + "@date-fns/tz": "^1.2.0", + "@duckdb/duckdb-wasm": "^1.29.0", + "apache-arrow": "^19.0.0", + "date-fns": "^4.1.0", + "defu": "^6.1.4", + "drizzle-orm": "^0.39.2", + "es-toolkit": "^1.32.0" + }, + "devDependencies": { + "drizzle-kit": "^0.30.4" + } +} diff --git a/packages/duckdb-wasm/src/bundles/default-browser.ts b/packages/duckdb-wasm/src/bundles/default-browser.ts new file mode 100644 index 000000000..43113f61a --- /dev/null +++ b/packages/duckdb-wasm/src/bundles/default-browser.ts @@ -0,0 +1,19 @@ +import type { DuckDBBundles } from '@duckdb/duckdb-wasm' + +export function getBundles(): DuckDBBundles { + return { + mvp: { + mainModule: './duckdb-mvp.wasm', + mainWorker: './duckdb-browser-mvp.worker.js', + }, + eh: { + mainModule: './duckdb-eh.wasm', + mainWorker: './duckdb-browser-eh.worker.js', + }, + coi: { + mainModule: './duckdb-coi.wasm', + mainWorker: './duckdb-browser-coi.worker.js', + pthreadWorker: './duckdb-browser-coi.pthread.worker.js', + }, + } +} diff --git a/packages/duckdb-wasm/src/bundles/default-node.ts b/packages/duckdb-wasm/src/bundles/default-node.ts new file mode 100644 index 000000000..4b27c9864 --- /dev/null +++ b/packages/duckdb-wasm/src/bundles/default-node.ts @@ -0,0 +1,19 @@ +import type { DuckDBBundles } from '@duckdb/duckdb-wasm' + +export async function getBundles(): Promise { + const { createRequire } = await import('node:module') + const { dirname, resolve } = await import('node:path') + const require = createRequire(import.meta.url) + const DUCKDB_DIST = dirname(require.resolve('@duckdb/duckdb-wasm')) + + return { + mvp: { + mainModule: resolve(DUCKDB_DIST, './duckdb-mvp.wasm'), + mainWorker: resolve(DUCKDB_DIST, './duckdb-node-mvp.worker.cjs'), + }, + eh: { + mainModule: resolve(DUCKDB_DIST, './duckdb-eh.wasm'), + mainWorker: resolve(DUCKDB_DIST, './duckdb-node-eh.worker.cjs'), + }, + } +} diff --git a/packages/duckdb-wasm/src/bundles/import-url-browser.ts b/packages/duckdb-wasm/src/bundles/import-url-browser.ts new file mode 100644 index 000000000..3cd718f9f --- /dev/null +++ b/packages/duckdb-wasm/src/bundles/import-url-browser.ts @@ -0,0 +1,28 @@ +/* eslint-disable perfectionist/sort-imports */ +import type { DuckDBBundles } from '@duckdb/duckdb-wasm' + +import ehMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-browser-eh.worker.js?url' +import ehMainModule from '@duckdb/duckdb-wasm/dist/duckdb-eh.wasm?url' +import mvpMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-browser-mvp.worker.js?url' +import mvpMainModule from '@duckdb/duckdb-wasm/dist/duckdb-mvp.wasm?url' +import coiMainModule from '@duckdb/duckdb-wasm/dist/duckdb-coi.wasm?url' +import coiMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-browser-coi.worker.js?url' +import coiPthreadWorker from '@duckdb/duckdb-wasm/dist/duckdb-browser-coi.pthread.worker.js?url' + +export function getImportUrlBundles(): DuckDBBundles { + return { + mvp: { + mainModule: mvpMainModule, + mainWorker: mvpMainWorker, + }, + eh: { + mainModule: ehMainModule, + mainWorker: ehMainWorker, + }, + coi: { + mainModule: coiMainModule, + mainWorker: coiMainWorker, + pthreadWorker: coiPthreadWorker, + }, + } +} diff --git a/packages/duckdb-wasm/src/bundles/import-url-node.ts b/packages/duckdb-wasm/src/bundles/import-url-node.ts new file mode 100644 index 000000000..cd38a765c --- /dev/null +++ b/packages/duckdb-wasm/src/bundles/import-url-node.ts @@ -0,0 +1,28 @@ +/* eslint-disable perfectionist/sort-imports */ +import type { DuckDBBundles } from '@duckdb/duckdb-wasm' + +import ehMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-node-eh.worker.cjs?url' +import ehMainModule from '@duckdb/duckdb-wasm/dist/duckdb-eh.wasm?url' +import mvpMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-node-mvp.worker.cjs?url' +import mvpMainModule from '@duckdb/duckdb-wasm/dist/duckdb-mvp.wasm?url' + +function transformUrl(url: string) { + if (url.startsWith('/@fs/')) { + return url.replace('/@fs/', 'file://') + } + + return url +} + +export async function getImportUrlBundles(): Promise { + return { + mvp: { + mainModule: transformUrl(mvpMainModule), + mainWorker: transformUrl(mvpMainWorker), + }, + eh: { + mainModule: transformUrl(ehMainModule), + mainWorker: transformUrl(ehMainWorker), + }, + } +} diff --git a/packages/drizzle-duckdb-wasm/src/dialect/duckdb-common.ts b/packages/duckdb-wasm/src/common.ts similarity index 100% rename from packages/drizzle-duckdb-wasm/src/dialect/duckdb-common.ts rename to packages/duckdb-wasm/src/common.ts diff --git a/packages/drizzle-duckdb-wasm/src/dialect/duckdb.ts b/packages/duckdb-wasm/src/duckdb.ts similarity index 100% rename from packages/drizzle-duckdb-wasm/src/dialect/duckdb.ts rename to packages/duckdb-wasm/src/duckdb.ts diff --git a/packages/drizzle-duckdb-wasm/src/dialect/duckdb-format.ts b/packages/duckdb-wasm/src/format.ts similarity index 99% rename from packages/drizzle-duckdb-wasm/src/dialect/duckdb-format.ts rename to packages/duckdb-wasm/src/format.ts index 28e308b10..dd4ae2157 100644 --- a/packages/drizzle-duckdb-wasm/src/dialect/duckdb-format.ts +++ b/packages/duckdb-wasm/src/format.ts @@ -1,6 +1,6 @@ import type { TZDate } from '@date-fns/tz' import type { Field, StructRow } from 'apache-arrow' -import type { DataType } from './duckdb-types' +import type { DataType } from './types' import { TZDateMini } from '@date-fns/tz' import { DataType as ArrowDataType, IntervalUnit, Struct, TimeUnit, util } from 'apache-arrow' @@ -22,7 +22,7 @@ import { } from 'date-fns' import { trimEnd } from 'es-toolkit' -import { isNullOrUndefined, notNullOrUndefined } from './duckdb-common' +import { isNullOrUndefined, notNullOrUndefined } from './common' import { isBooleanType, isDatetimeType, @@ -36,7 +36,7 @@ import { isObjectType, isPeriodType, isTimeType, -} from './duckdb-types' +} from './types' /** * The frequency strings defined in pandas. diff --git a/packages/duckdb-wasm/src/index.ts b/packages/duckdb-wasm/src/index.ts new file mode 100644 index 000000000..85536d5b8 --- /dev/null +++ b/packages/duckdb-wasm/src/index.ts @@ -0,0 +1,4 @@ +export * from './common' +export * from './duckdb' +export * from './format' +export * from './types' diff --git a/packages/drizzle-duckdb-wasm/src/dialect/duckdb-types.ts b/packages/duckdb-wasm/src/types.ts similarity index 98% rename from packages/drizzle-duckdb-wasm/src/dialect/duckdb-types.ts rename to packages/duckdb-wasm/src/types.ts index abfce6e2c..465a450b2 100644 --- a/packages/drizzle-duckdb-wasm/src/dialect/duckdb-types.ts +++ b/packages/duckdb-wasm/src/types.ts @@ -2,7 +2,7 @@ import type { Dictionary, Field, Struct, StructRow, Vector } from 'apache-arrow' import { DataType as ArrowDataType } from 'apache-arrow' -import { isNullOrUndefined } from './duckdb-common' +import { isNullOrUndefined } from './common' /** Data types used by ArrowJS. */ export type DataType = @@ -35,11 +35,12 @@ export enum DataFrameCellType { * @returns The list of strings. */ export function convertVectorToList(vector: Vector): string[] { - const values = [] + const values: string[] = [] for (let i = 0; i < vector.length; i++) { values.push(vector.get(i)) } + return values } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9a4d74e3b..151391d2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -122,6 +122,9 @@ importers: '@duckdb/duckdb-wasm': specifier: ^1.29.0 version: 1.29.0 + '@proj-airi/duckdb-wasm': + specifier: workspace:^ + version: link:../duckdb-wasm apache-arrow: specifier: ^19.0.0 version: 19.0.0 @@ -166,6 +169,37 @@ importers: specifier: ^2.2.0 version: 2.2.0(typescript@5.7.3) + packages/duckdb-wasm: + dependencies: + '@date-fns/tz': + specifier: ^1.2.0 + version: 1.2.0 + '@duckdb/duckdb-wasm': + specifier: ^1.29.0 + version: 1.29.0 + apache-arrow: + specifier: ^19.0.0 + version: 19.0.0 + date-fns: + specifier: ^4.1.0 + version: 4.1.0 + defu: + specifier: ^6.1.4 + version: 6.1.4 + drizzle-orm: + specifier: ^0.39.2 + version: 0.39.2(@types/pg@8.11.11)(pg@8.13.1)(react@18.3.1) + es-toolkit: + specifier: ^1.32.0 + version: 1.32.0 + web-worker: + specifier: ^1.5.0 + version: 1.5.0 + devDependencies: + drizzle-kit: + specifier: ^0.30.4 + version: 0.30.4 + packages/elevenlabs: devDependencies: elevenlabs: @@ -1032,7 +1066,7 @@ importers: version: 1.35.0 '@gcornut/valibot-json-schema': specifier: ^0.42.0 - version: 0.42.0(esbuild@0.19.12)(typescript@5.7.3) + version: 0.42.0(esbuild@0.25.0)(typescript@5.7.3) '@grammyjs/files': specifier: ^1.1.1 version: 1.1.1(grammy@1.34.1(encoding@0.1.13)) @@ -1041,7 +1075,7 @@ importers: version: 1.0.7 '@typeschema/valibot': specifier: ^0.14.0 - version: 0.14.0(@gcornut/valibot-json-schema@0.42.0(esbuild@0.19.12)(typescript@5.7.3))(@types/json-schema@7.0.15)(valibot@1.0.0-beta.9(typescript@5.7.3)) + version: 0.14.0(@gcornut/valibot-json-schema@0.42.0(esbuild@0.25.0)(typescript@5.7.3))(@types/json-schema@7.0.15)(valibot@1.0.0-beta.9(typescript@5.7.3)) '@xsai/generate-text': specifier: 'catalog:' version: 0.1.0-beta.2 @@ -13090,16 +13124,6 @@ snapshots: '@formkit/auto-animate@0.8.2': {} - '@gcornut/valibot-json-schema@0.42.0(esbuild@0.19.12)(typescript@5.7.3)': - dependencies: - valibot: 0.42.1(typescript@5.7.3) - optionalDependencies: - '@types/json-schema': 7.0.15 - esbuild-runner: 2.2.2(esbuild@0.19.12) - transitivePeerDependencies: - - esbuild - - typescript - '@gcornut/valibot-json-schema@0.42.0(esbuild@0.25.0)(typescript@5.7.3)': dependencies: valibot: 0.42.1(typescript@5.7.3) @@ -14611,20 +14635,11 @@ snapshots: dependencies: '@typeschema/core': 0.14.0(@types/json-schema@7.0.15) optionalDependencies: - '@typeschema/valibot': 0.14.0(@gcornut/valibot-json-schema@0.42.0(esbuild@0.19.12)(typescript@5.7.3))(@types/json-schema@7.0.15)(valibot@1.0.0-beta.9(typescript@5.7.3)) + '@typeschema/valibot': 0.14.0(@gcornut/valibot-json-schema@0.42.0(esbuild@0.25.0)(typescript@5.7.3))(@types/json-schema@7.0.15)(valibot@1.0.0-beta.9(typescript@5.7.3)) '@typeschema/zod': 0.14.0(@types/json-schema@7.0.15)(zod-to-json-schema@3.24.1(zod@3.24.1))(zod@3.24.1) transitivePeerDependencies: - '@types/json-schema' - '@typeschema/valibot@0.14.0(@gcornut/valibot-json-schema@0.42.0(esbuild@0.19.12)(typescript@5.7.3))(@types/json-schema@7.0.15)(valibot@1.0.0-beta.9(typescript@5.7.3))': - dependencies: - '@typeschema/core': 0.14.0(@types/json-schema@7.0.15) - optionalDependencies: - '@gcornut/valibot-json-schema': 0.42.0(esbuild@0.19.12)(typescript@5.7.3) - valibot: 1.0.0-beta.9(typescript@5.7.3) - transitivePeerDependencies: - - '@types/json-schema' - '@typeschema/valibot@0.14.0(@gcornut/valibot-json-schema@0.42.0(esbuild@0.25.0)(typescript@5.7.3))(@types/json-schema@7.0.15)(valibot@1.0.0-beta.9(typescript@5.7.3))': dependencies: '@typeschema/core': 0.14.0(@types/json-schema@7.0.15) @@ -17236,13 +17251,6 @@ snapshots: transitivePeerDependencies: - supports-color - esbuild-runner@2.2.2(esbuild@0.19.12): - dependencies: - esbuild: 0.19.12 - source-map-support: 0.5.21 - tslib: 2.4.0 - optional: true - esbuild-runner@2.2.2(esbuild@0.25.0): dependencies: esbuild: 0.25.0