mirror of
https://github.com/datahaven-xyz/datahaven
synced 2026-05-24 09:50:01 +00:00
## Changes - New CI file for making Docker Prod images - Changed E2E tests use an image built from a local dockerfile - Some cargo build options to make it quicker - Fix the cache hit rate - added `tsgo` preview to the project 😎 - Can be invoked with `bun tsgo` to typecheck - Install in IDE [VSCode](https://code.visualstudio.com/docs/configure/extensions/extension-marketplace) & [Zed](https://github.com/zed-extensions/tsgo) for super-fast inline typechecking (as you type basically) ## Context This PR attempts to make the frankly unacceptable CI times better. This achieves that aim by making a crappy image for day-to-day usage and let the prod issue take ages since that will be infrequently used. The reason why the original design didn't work for us is because: 1) we are using the free GH runners 2) when we goto baremetal runners we'll lose our rapid caching abilities which make using docker cheap. Also, we add `tsgo` support to improve devex. The improvement is astounding. ```sh hyperfine -n tsc "bun tsc --incremental false --extendedDiagnostics" -n tsgo "bun tsgo --incremental false --extendedDiagnostics" Benchmark 1: tsc Time (mean ± σ): 5.500 s ± 0.221 s [User: 8.939 s, System: 0.400 s] Range (min … max): 5.196 s … 5.845 s 10 runs Benchmark 2: tsgo Time (mean ± σ): 99.1 ms ± 8.4 ms [User: 392.8 ms, System: 54.1 ms] Range (min … max): 88.3 ms … 116.0 ms 29 runs Summary tsgo ran 55.48 ± 5.22 times faster than tsc ```
52 lines
No EOL
1.2 KiB
JSON
52 lines
No EOL
1.2 KiB
JSON
{
|
|
"compilerOptions": {
|
|
// Enable latest features
|
|
"lib": [
|
|
"ESNext"
|
|
],
|
|
"target": "ESNext",
|
|
"module": "Preserve",
|
|
"moduleDetection": "force",
|
|
"jsx": "react-jsx",
|
|
"allowJs": false,
|
|
"importHelpers": true,
|
|
"incremental": true,
|
|
// Bundler mode
|
|
"moduleResolution": "bundler",
|
|
"allowImportingTsExtensions": true,
|
|
"verbatimModuleSyntax": true,
|
|
"noEmit": true,
|
|
// Best practices
|
|
"strict": true,
|
|
"skipLibCheck": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
// Some stricter flags (disabled by default)
|
|
"noUnusedLocals": false,
|
|
"noUnusedParameters": false,
|
|
"noImplicitOverride": true,
|
|
"noPropertyAccessFromIndexSignature": false,
|
|
"baseUrl": "./",
|
|
"preserveConstEnums": true,
|
|
"esModuleInterop": true,
|
|
"resolveJsonModule": true,
|
|
// Speed
|
|
"tsBuildInfoFile": "tmp/tsconfig.tsbuildinfo",
|
|
"assumeChangesOnlyAffectDirectDependencies": true,
|
|
"paths": {
|
|
"utils": [
|
|
"./utils/index.ts"
|
|
],
|
|
"utils/types": [
|
|
"./utils/types.ts"
|
|
]
|
|
}
|
|
},
|
|
"include": [
|
|
"utils/*.ts",
|
|
"scripts/*.ts",
|
|
"suites/**/*.ts",
|
|
"cli/**/*.ts",
|
|
"wagmi.config.ts",
|
|
"contract-bindings/*.ts"
|
|
]
|
|
} |