Skip to content

Commit d5151d2

Browse files
committed
feat: add profile management, query execution, schema handling, and tab management slices
- Implemented profileSlice for managing user profiles, including creation, loading, updating, and deletion. - Added querySlice for executing queries, managing query history, and exporting results to Parquet format. - Created schemaSlice to fetch database and table information, column statistics, and handle table deletion and file imports. - Developed tabSlice for managing editor tabs, including creation, closing, and updating tab content and titles. - Defined types for state management in types.ts, including profiles, queries, schemas, and tabs. - Configured Vitest for testing with appropriate aliases and environment settings.
1 parent 89ce3e0 commit d5151d2

File tree

144 files changed

+9328
-7118
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+9328
-7118
lines changed

.github/workflows/ci.yml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths-ignore:
7+
- "**.md"
8+
- "docs/**"
9+
pull_request:
10+
branches: [main]
11+
paths-ignore:
12+
- "**.md"
13+
- "docs/**"
14+
15+
jobs:
16+
lint:
17+
name: Lint & Format
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v4
21+
- uses: oven-sh/setup-bun@v2
22+
with:
23+
bun-version: latest
24+
- run: bun install --frozen-lockfile
25+
- run: bun run lint
26+
- run: bun run format:check
27+
28+
typecheck:
29+
name: Type Check
30+
runs-on: ubuntu-latest
31+
steps:
32+
- uses: actions/checkout@v4
33+
- uses: oven-sh/setup-bun@v2
34+
with:
35+
bun-version: latest
36+
- run: bun install --frozen-lockfile
37+
- run: bun run typecheck
38+
39+
test:
40+
name: Test
41+
runs-on: ubuntu-latest
42+
steps:
43+
- uses: actions/checkout@v4
44+
- uses: oven-sh/setup-bun@v2
45+
with:
46+
bun-version: latest
47+
- run: bun install --frozen-lockfile
48+
- run: bun run test
49+
50+
build:
51+
name: Build
52+
runs-on: ubuntu-latest
53+
needs: [lint, typecheck, test]
54+
steps:
55+
- uses: actions/checkout@v4
56+
- uses: oven-sh/setup-bun@v2
57+
with:
58+
bun-version: latest
59+
- run: bun install --frozen-lockfile
60+
- run: bun run build
61+
- name: Upload build artifacts
62+
uses: actions/upload-artifact@v4
63+
with:
64+
name: dist
65+
path: dist/
66+
retention-days: 7

.prettierignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
dist
2+
node_modules
3+
bun.lockb
4+
*.wasm
5+
public
6+
docs/.vitepress/cache
7+
docs/.vitepress/dist

.prettierrc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"semi": true,
3+
"singleQuote": false,
4+
"trailingComma": "es5",
5+
"tabWidth": 2,
6+
"printWidth": 100,
7+
"bracketSpacing": true,
8+
"arrowParens": "always",
9+
"endOfLine": "lf"
10+
}

Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Use an official Node runtime as a parent image with bun
22
FROM oven/bun:1-alpine AS build
33

4+
ARG DUCK_UI_BASEPATH="/"
5+
46
# Set the working directory
57
WORKDIR /app
68

bun.lock

Lines changed: 61 additions & 89 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
{
22
"name": "duck-ui",
33
"private": true,
4-
"version": "0.0.24",
5-
"release_date": "2026-01-20",
4+
"version": "0.0.25",
5+
"release_date": "2026-02-06",
66
"type": "module",
77
"scripts": {
88
"dev": "vite",
99
"build": "tsc -b && vite build",
1010
"lint": "eslint .",
11-
"preview": "vite preview"
11+
"format": "prettier --write \"src/**/*.{ts,tsx,css}\"",
12+
"format:check": "prettier --check \"src/**/*.{ts,tsx,css}\"",
13+
"typecheck": "tsc --noEmit",
14+
"preview": "vite preview",
15+
"test": "vitest run",
16+
"test:watch": "vitest"
1217
},
1318
"dependencies": {
1419
"@dnd-kit/core": "^6.3.1",
1520
"@dnd-kit/sortable": "^10.0.0",
16-
"@duckdb/duckdb-wasm": "1.33.1-dev17.0",
21+
"@duckdb/duckdb-wasm": "1.33.1-dev19.0",
1722
"@hookform/resolvers": "^5.2.2",
1823
"@mlc-ai/web-llm": "^0.2.80",
1924
"@radix-ui/react-accordion": "^1.2.12",
@@ -47,8 +52,6 @@
4752
"clsx": "^2.1.1",
4853
"cmdk": "^1.1.1",
4954
"date-fns": "^4.1.0",
50-
"echarts": "^6.0.0",
51-
"echarts-for-react": "^3.0.5",
5255
"fflate": "^0.8.2",
5356
"framer-motion": "^12.27.1",
5457
"html2canvas": "^1.4.1",
@@ -65,11 +68,11 @@
6568
"react-markdown": "^10.1.0",
6669
"react-resizable-panels": "^3.0.6",
6770
"react-router": "^7.12.0",
68-
"recharts": "^3.6.0",
6971
"sonner": "^2.0.7",
7072
"sql-formatter": "^15.7.0",
7173
"tailwind-merge": "^3.4.0",
7274
"tailwindcss-animate": "^1.0.7",
75+
"uplot": "^1.6.32",
7376
"vaul": "^1.1.2",
7477
"xlsx": "^0.18.5",
7578
"zod": "^4.3.5",
@@ -90,10 +93,12 @@
9093
"eslint-plugin-react-refresh": "^0.4.26",
9194
"globals": "^16.5.0",
9295
"postcss": "^8.5.6",
96+
"prettier": "^3.8.1",
9397
"tailwindcss": "^4.1.18",
9498
"typescript": "~5.9.3",
9599
"typescript-eslint": "^8.53.1",
96-
"vite": "^7.3.1"
100+
"vite": "^7.3.1",
101+
"vitest": "^4.0.18"
97102
},
98103
"description": "Duck-UI is a web-based interface for interacting with DuckDB, a high-performance analytical database system. This project leverages DuckDB's WebAssembly (WASM) capabilities to provide a seamless and efficient user experience directly in the browser.",
99104
"main": "eslint.config.js",

0 commit comments

Comments
 (0)