mirror of
https://github.com/kjanat/livedash-node.git
synced 2026-02-13 13:55:42 +01:00
- Update tsconfig to ES2024 target and bundler moduleResolution - Add dynamic imports for chart.js and recharts (bundle optimization) - Consolidate 17 useState into useReducer in sessions page - Fix 18 .js extension imports across lib files - Add type declarations for @rapideditor/country-coder - Fix platform user types (PlatformUserRole enum) - Fix Calendar component prop types - Centralize next-auth type augmentation - Add force-dynamic to all API routes (prevent build-time prerender) - Fix Prisma JSON null handling with Prisma.DbNull - Fix various type mismatches (SessionMessage, ImportRecord, etc.) - Export ButtonProps from button component - Update next-themes import path - Replace JSX.Element with React.ReactElement - Remove obsolete debug scripts and pnpm lockfile - Downgrade eslint to v8 for next compatibility
37 lines
942 B
Markdown
37 lines
942 B
Markdown
---
|
||
title: Dependency-Based Parallelization
|
||
impact: CRITICAL
|
||
impactDescription: 2-10× improvement
|
||
tags: async, parallelization, dependencies, better-all
|
||
---
|
||
|
||
## Dependency-Based Parallelization
|
||
|
||
For operations with partial dependencies, use `better-all` to maximize parallelism. It automatically starts each task at the earliest possible moment.
|
||
|
||
**Incorrect (profile waits for config unnecessarily):**
|
||
|
||
```typescript
|
||
const [user, config] = await Promise.all([
|
||
fetchUser(),
|
||
fetchConfig()
|
||
])
|
||
const profile = await fetchProfile(user.id)
|
||
```
|
||
|
||
**Correct (config and profile run in parallel):**
|
||
|
||
```typescript
|
||
import { all } from 'better-all'
|
||
|
||
const { user, config, profile } = await all({
|
||
async user() { return fetchUser() },
|
||
async config() { return fetchConfig() },
|
||
async profile() {
|
||
return fetchProfile((await this.$.user).id)
|
||
}
|
||
})
|
||
```
|
||
|
||
Reference: [https://github.com/shuding/better-all](https://github.com/shuding/better-all)
|