perf: offload long running tasks to workers, preloading dm page data

This commit is contained in:
Samuel 2024-12-19 16:44:27 +01:00
parent cad305aa66
commit df218b9a56
18 changed files with 524 additions and 297 deletions

128
pnpm-lock.yaml generated
View file

@ -13,10 +13,13 @@ importers:
version: 0.13.7(solid-js@1.9.3)
'@kobalte/tailwindcss':
specifier: ^0.9.0
version: 0.9.0(tailwindcss@3.4.16)
version: 0.9.0(tailwindcss@3.4.17)
'@solid-primitives/refs':
specifier: ^1.0.8
version: 1.0.8(solid-js@1.9.3)
'@solid-primitives/workers':
specifier: ^0.3.0
version: 0.3.0(solid-js@1.9.3)
'@solidjs/meta':
specifier: ^0.29.4
version: 0.29.4(solid-js@1.9.3)
@ -70,20 +73,20 @@ importers:
version: 2.5.5
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.4.16)
version: 1.0.7(tailwindcss@3.4.17)
devDependencies:
'@biomejs/biome':
specifier: 1.9.4
version: 1.9.4
'@commitlint/cli':
specifier: ^19.6.1
version: 19.6.1(@types/node@22.10.1)(typescript@5.7.2)
version: 19.6.1(@types/node@22.10.2)(typescript@5.7.2)
'@commitlint/config-conventional':
specifier: ^19.6.0
version: 19.6.0
'@types/node':
specifier: ^22.10.1
version: 22.10.1
specifier: ^22.10.2
version: 22.10.2
'@types/sql.js':
specifier: ^1.4.9
version: 1.4.9
@ -106,17 +109,17 @@ importers:
specifier: ^8.4.49
version: 8.4.49
tailwindcss:
specifier: ^3.4.16
version: 3.4.16
specifier: ^3.4.17
version: 3.4.17
typescript:
specifier: ^5.7.2
version: 5.7.2
vite:
specifier: ^6.0.3
version: 6.0.3(@types/node@22.10.1)(jiti@2.4.2)(yaml@2.6.1)
specifier: ^6.0.4
version: 6.0.4(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)
vite-plugin-solid:
specifier: ^2.11.0
version: 2.11.0(solid-js@1.9.3)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(yaml@2.6.1))
version: 2.11.0(solid-js@1.9.3)(vite@6.0.4(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1))
packages:
@ -499,6 +502,10 @@ packages:
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@ -697,6 +704,11 @@ packages:
peerDependencies:
solid-js: ^1.6.12
'@solid-primitives/workers@0.3.0':
resolution: {integrity: sha512-NdfdHHNn4ut6zWoL/xSAZbIuzdrefwc2jin9Oaa/bI1o1QDKdOBQpR07ig7CzpiVdctyeSk6iE8ab6gnZVSSzQ==}
peerDependencies:
solid-js: ^1.6.12
'@solidjs/meta@0.29.4':
resolution: {integrity: sha512-zdIWBGpR9zGx1p1bzIPqF5Gs+Ks/BH8R6fWhmUa/dcK1L2rUC8BAcZJzNRYBQv74kScf1TSOs0EY//Vd/I0V8g==}
peerDependencies:
@ -750,8 +762,8 @@ packages:
'@types/hammerjs@2.0.46':
resolution: {integrity: sha512-ynRvcq6wvqexJ9brDMS4BnBLzmr0e14d6ZJTEShTBWKymQiHwlAyGu0ZPEFI2Fh1U53F7tN9ufClWM5KvqkKOw==}
'@types/node@22.10.1':
resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==}
'@types/node@22.10.2':
resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==}
'@types/sql.js@1.4.9':
resolution: {integrity: sha512-ep8b36RKHlgWPqjNG9ToUrPiwkhwh0AEzy883mO5Xnd+cL6VBH1EvSjBAAuxLUFF2Vn/moE3Me6v9E1Lo+48GQ==}
@ -1277,6 +1289,10 @@ packages:
resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
engines: {node: '>= 0.4'}
is-core-module@2.16.0:
resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==}
engines: {node: '>= 0.4'}
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@ -1323,8 +1339,8 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jiti@1.21.6:
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
jiti@1.21.7:
resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
hasBin: true
jiti@2.4.2:
@ -1727,6 +1743,10 @@ packages:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
resolve@1.22.9:
resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==}
hasBin: true
restore-cursor@5.1.0:
resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
engines: {node: '>=18'}
@ -1892,8 +1912,8 @@ packages:
peerDependencies:
tailwindcss: '>=3.0.0 || insiders'
tailwindcss@3.4.16:
resolution: {integrity: sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==}
tailwindcss@3.4.17:
resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
engines: {node: '>=14.0.0'}
hasBin: true
@ -1968,8 +1988,8 @@ packages:
'@testing-library/jest-dom':
optional: true
vite@6.0.3:
resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==}
vite@6.0.4:
resolution: {integrity: sha512-zwlH6ar+6o6b4Wp+ydhtIKLrGM/LoqZzcdVmkGAFun0KHTzIzjh+h0kungEx7KJg/PYnC80I4TII9WkjciSR6Q==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
@ -2213,11 +2233,11 @@ snapshots:
'@biomejs/cli-win32-x64@1.9.4':
optional: true
'@commitlint/cli@19.6.1(@types/node@22.10.1)(typescript@5.7.2)':
'@commitlint/cli@19.6.1(@types/node@22.10.2)(typescript@5.7.2)':
dependencies:
'@commitlint/format': 19.5.0
'@commitlint/lint': 19.6.0
'@commitlint/load': 19.6.1(@types/node@22.10.1)(typescript@5.7.2)
'@commitlint/load': 19.6.1(@types/node@22.10.2)(typescript@5.7.2)
'@commitlint/read': 19.5.0
'@commitlint/types': 19.5.0
tinyexec: 0.3.1
@ -2264,7 +2284,7 @@ snapshots:
'@commitlint/rules': 19.6.0
'@commitlint/types': 19.5.0
'@commitlint/load@19.6.1(@types/node@22.10.1)(typescript@5.7.2)':
'@commitlint/load@19.6.1(@types/node@22.10.2)(typescript@5.7.2)':
dependencies:
'@commitlint/config-validator': 19.5.0
'@commitlint/execute-rule': 19.5.0
@ -2272,7 +2292,7 @@ snapshots:
'@commitlint/types': 19.5.0
chalk: 5.3.0
cosmiconfig: 9.0.0(typescript@5.7.2)
cosmiconfig-typescript-loader: 6.1.0(@types/node@22.10.1)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2)
cosmiconfig-typescript-loader: 6.1.0(@types/node@22.10.2)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2)
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
@ -2434,6 +2454,12 @@ snapshots:
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
'@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/set-array@1.2.1': {}
@ -2457,9 +2483,9 @@ snapshots:
solid-presence: 0.1.8(solid-js@1.9.3)
solid-prevent-scroll: 0.1.10(solid-js@1.9.3)
'@kobalte/tailwindcss@0.9.0(tailwindcss@3.4.16)':
'@kobalte/tailwindcss@0.9.0(tailwindcss@3.4.17)':
dependencies:
tailwindcss: 3.4.16
tailwindcss: 3.4.17
'@kobalte/utils@0.9.1(solid-js@1.9.3)':
dependencies:
@ -2605,6 +2631,10 @@ snapshots:
dependencies:
solid-js: 1.9.3
'@solid-primitives/workers@0.3.0(solid-js@1.9.3)':
dependencies:
solid-js: 1.9.3
'@solidjs/meta@0.29.4(solid-js@1.9.3)':
dependencies:
solid-js: 1.9.3
@ -2647,7 +2677,7 @@ snapshots:
'@types/conventional-commits-parser@5.0.1':
dependencies:
'@types/node': 22.10.1
'@types/node': 22.10.2
'@types/d3-cloud@1.2.9':
dependencies:
@ -2661,14 +2691,14 @@ snapshots:
'@types/hammerjs@2.0.46': {}
'@types/node@22.10.1':
'@types/node@22.10.2':
dependencies:
undici-types: 6.20.0
'@types/sql.js@1.4.9':
dependencies:
'@types/emscripten': 1.39.13
'@types/node': 22.10.1
'@types/node': 22.10.2
JSONStream@1.3.5:
dependencies:
@ -2900,9 +2930,9 @@ snapshots:
convert-source-map@2.0.0: {}
cosmiconfig-typescript-loader@6.1.0(@types/node@22.10.1)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2):
cosmiconfig-typescript-loader@6.1.0(@types/node@22.10.2)(cosmiconfig@9.0.0(typescript@5.7.2))(typescript@5.7.2):
dependencies:
'@types/node': 22.10.1
'@types/node': 22.10.2
cosmiconfig: 9.0.0(typescript@5.7.2)
jiti: 2.4.2
typescript: 5.7.2
@ -3183,6 +3213,10 @@ snapshots:
dependencies:
hasown: 2.0.2
is-core-module@2.16.0:
dependencies:
hasown: 2.0.2
is-extglob@2.1.1: {}
is-fullwidth-code-point@3.0.0: {}
@ -3217,7 +3251,7 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
jiti@1.21.6: {}
jiti@1.21.7: {}
jiti@2.4.2: {}
@ -3460,7 +3494,7 @@ snapshots:
postcss: 8.4.49
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.8
resolve: 1.22.9
postcss-js@4.0.1(postcss@8.4.49):
dependencies:
@ -3553,6 +3587,12 @@ snapshots:
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
resolve@1.22.9:
dependencies:
is-core-module: 2.16.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
restore-cursor@5.1.0:
dependencies:
onetime: 7.0.0
@ -3706,7 +3746,7 @@ snapshots:
sucrase@3.35.0:
dependencies:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/gen-mapping': 0.3.8
commander: 4.1.1
glob: 10.4.5
lines-and-columns: 1.2.4
@ -3726,11 +3766,11 @@ snapshots:
tailwind-merge@2.5.5: {}
tailwindcss-animate@1.0.7(tailwindcss@3.4.16):
tailwindcss-animate@1.0.7(tailwindcss@3.4.17):
dependencies:
tailwindcss: 3.4.16
tailwindcss: 3.4.17
tailwindcss@3.4.16:
tailwindcss@3.4.17:
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
@ -3740,7 +3780,7 @@ snapshots:
fast-glob: 3.3.2
glob-parent: 6.0.2
is-glob: 4.0.3
jiti: 1.21.6
jiti: 1.21.7
lilconfig: 3.1.3
micromatch: 4.0.8
normalize-path: 3.0.0
@ -3752,7 +3792,7 @@ snapshots:
postcss-load-config: 4.0.2(postcss@8.4.49)
postcss-nested: 6.2.0(postcss@8.4.49)
postcss-selector-parser: 6.1.2
resolve: 1.22.8
resolve: 1.22.9
sucrase: 3.35.0
transitivePeerDependencies:
- ts-node
@ -3814,7 +3854,7 @@ snapshots:
validate-html-nesting@1.2.2: {}
vite-plugin-solid@2.11.0(solid-js@1.9.3)(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(yaml@2.6.1)):
vite-plugin-solid@2.11.0(solid-js@1.9.3)(vite@6.0.4(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)):
dependencies:
'@babel/core': 7.26.0
'@types/babel__core': 7.20.5
@ -3822,25 +3862,25 @@ snapshots:
merge-anything: 5.1.7
solid-js: 1.9.3
solid-refresh: 0.6.3(solid-js@1.9.3)
vite: 6.0.3(@types/node@22.10.1)(jiti@2.4.2)(yaml@2.6.1)
vitefu: 1.0.4(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(yaml@2.6.1))
vite: 6.0.4(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)
vitefu: 1.0.4(vite@6.0.4(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1))
transitivePeerDependencies:
- supports-color
vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(yaml@2.6.1):
vite@6.0.4(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1):
dependencies:
esbuild: 0.24.0
postcss: 8.4.49
rollup: 4.28.1
optionalDependencies:
'@types/node': 22.10.1
'@types/node': 22.10.2
fsevents: 2.3.3
jiti: 2.4.2
yaml: 2.6.1
vitefu@1.0.4(vite@6.0.3(@types/node@22.10.1)(jiti@2.4.2)(yaml@2.6.1)):
vitefu@1.0.4(vite@6.0.4(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)):
optionalDependencies:
vite: 6.0.3(@types/node@22.10.1)(jiti@2.4.2)(yaml@2.6.1)
vite: 6.0.4(@types/node@22.10.2)(jiti@2.4.2)(yaml@2.6.1)
which@2.0.2:
dependencies: