Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
4e8d10e
chore: add TypeScript tooling foundation (#924 Phase 0)
haslinghuis May 31, 2026
4e11994
refactor: convert flightlog_fielddefs to TypeScript (#924 Phase 2)
haslinghuis May 31, 2026
ed1a8e0
refactor: convert datastream + decoders to TypeScript (#924 Phase 2)
haslinghuis May 31, 2026
7700ec9
refactor: convert fft_complex to TypeScript (#924 Phase 2)
haslinghuis May 31, 2026
c73a569
test: add golden-file characterization test for flightlog_parser (#924)
haslinghuis May 31, 2026
9e99166
test: harden parser golden test with GPS/slow/event frames + tag enco…
haslinghuis May 31, 2026
37ad049
refactor: convert flightlog_parser to TypeScript (#924 Phase 2)
haslinghuis May 31, 2026
01d947d
refactor: convert flightlog to TypeScript (#924 Phase 2)
haslinghuis May 31, 2026
ae1d8f6
refactor: convert core dependency utilities to TypeScript (#924)
haslinghuis May 31, 2026
9cfcb0b
refactor: convert small pure-logic core utils to TypeScript (#924)
haslinghuis May 31, 2026
d34c517
refactor: convert graph_spectrum_calc to TypeScript (#924)
haslinghuis May 31, 2026
36a751a
refactor: convert flightlog_fields_presenter to TypeScript (#924)
haslinghuis May 31, 2026
7667d32
refactor: extract useBlackboxViewer composable; start Pinia bridge co…
haslinghuis May 31, 2026
555f3af
refactor: collapse appStore callback bridge into composable (#924 Pha…
haslinghuis May 31, 2026
de2fd4d
refactor: collapse graph/playback/workspace callback bridges into com…
haslinghuis May 31, 2026
9a27230
fix: defer viewer init until after Vue mount (#924 Phase 1)
haslinghuis May 31, 2026
9f8d3fc
refactor: convert Pinia stores to TypeScript (#924 Phase 3)
haslinghuis May 31, 2026
9a1c2fa
refactor: convert 24 small/medium components to <script setup lang="t…
haslinghuis May 31, 2026
31c90c4
refactor: convert App.vue + 6 larger components to lang="ts" (#924 Ph…
haslinghuis May 31, 2026
79e0380
refactor: convert GraphConfigDialog + HeaderDialog to lang=ts (#924 P…
haslinghuis May 31, 2026
7249dcd
refactor: convert graph_config.js to TypeScript (#924 Phase 5)
haslinghuis May 31, 2026
91c2f70
refactor: convert grapher.js to TypeScript (#924 Phase 5)
haslinghuis May 31, 2026
538d566
refactor: convert graph_spectrum_plot.js + graph_spectrum.js to TS (#…
haslinghuis Jun 1, 2026
dfd9afe
refactor: convert graph_map.js + seekbar.js to TypeScript (#924 Phase 5)
haslinghuis Jun 1, 2026
bc843c2
refactor: convert sticks.js + craft_2d.js + craft_3d.js to TS (#924 P…
haslinghuis Jun 1, 2026
b8b44e5
refactor: convert flightlog_video_renderer + small renderer helpers t…
haslinghuis Jun 1, 2026
c236548
refactor: convert the Vue/DOM-glue layer to TypeScript (#924 Phase 5)
haslinghuis Jun 1, 2026
db64372
refactor: convert use_blackbox_viewer composable to TypeScript (#924 …
haslinghuis Jun 1, 2026
d7b48fd
refactor: type graph-store renderer instances, drop their Loose alias…
haslinghuis Jun 1, 2026
feed663
refactor: type GraphConfigDialog renderer props, simplify App.vue (#9…
haslinghuis Jun 1, 2026
255531e
build: enable checkJs, tighten tsconfig, convert the last JS file (#924)
haslinghuis Jun 1, 2026
26c191f
refactor: shared graph-config model (#924 Phase 6)
haslinghuis Jun 1, 2026
36c20ae
refactor: type GraphConfig.getGraphs/setGraphs with the shared model …
haslinghuis Jun 1, 2026
23bf456
refactor: type getActivitySummary, de-Loose log_lifecycle (#924 Phase 6)
haslinghuis Jun 1, 2026
bd2633b
refactor: de-Loose flightLog in video_handler + playback_controls (#9…
haslinghuis Jun 1, 2026
fa775da
refactor: de-Loose flightLog in the composable (#924 Phase 6)
haslinghuis Jun 1, 2026
3c2f958
refactor: type FlightLog.getCurrentFrameAtTime return (#924 Phase 6)
haslinghuis Jun 1, 2026
81d7568
refactor: type grapher's flightLog as FlightLog (#924 Phase 6, frame …
haslinghuis Jun 1, 2026
4f48cb9
refactor: type flightLog as FlightLog in the remaining renderers (#92…
haslinghuis Jun 1, 2026
0427756
refactor: type grapher's sticks/craft sub-objects (#924 Phase 6)
haslinghuis Jun 1, 2026
b836aca
fix: resolve SonarCloud quality-gate findings on the migrated code (#…
haslinghuis Jun 1, 2026
477303b
fix(migration): address CodeRabbit review feedback (round 1)
haslinghuis Jun 1, 2026
a7e072d
style(migration): clear safe SonarCloud new-code smells
haslinghuis Jun 1, 2026
bf1e53b
style(migration): clear per-site SonarCloud smells (deferred set)
haslinghuis Jun 1, 2026
66ecc6f
fix(simple-stats): guard time bounds against the false sentinel
haslinghuis Jun 1, 2026
c7fc102
chore(tsconfig): drop allowJs/checkJs — migration is 100% TypeScript
haslinghuis Jun 1, 2026
b5c69b7
fix(graph-spectrum): guard analyser resize against a null parent
haslinghuis Jun 5, 2026
39a19c8
fix(graph-store): drop fullscreen when hiding the analyser via the le…
haslinghuis Jun 5, 2026
07782f6
perf(export): transfer flattened frames to the CSV/GPX workers
haslinghuis Jun 5, 2026
be81075
style(migration): clear safe SonarCloud smells in new/touched code
haslinghuis Jun 5, 2026
741573a
test(export): add CSV/GPX golden test; convert config + test harness …
haslinghuis Jun 5, 2026
5b730fa
refactor(workers): migrate the export Web Workers to TypeScript
haslinghuis Jun 5, 2026
45f0e43
chore(tooling): convert eslint config + last test to TS; drop dead le…
haslinghuis Jun 5, 2026
3ed386d
refactor(types): retire the intentional Loose = any data surfaces (#9…
haslinghuis Jun 5, 2026
644099b
style(migration): clear new-code SonarCloud smells
haslinghuis Jun 5, 2026
3677a09
style(migration): clear safe negated-condition smells (S7735/S3358)
haslinghuis Jun 5, 2026
87ee540
test(flightlog): golden-cover the computed-field pipeline
haslinghuis Jun 5, 2026
b422c32
fix(graph-store): remember spectrum fullscreen across hide/show
haslinghuis Jun 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ jobs:
cache-dependency-path: 'package-lock.json'

- run: npm ci
- name: Type check
run: npm run type-check
- name: Golden tests (parser + export)
run: npm test
- name: Build
run: npm run build
env:
Expand Down
51 changes: 0 additions & 51 deletions eslint.config.mjs

This file was deleted.

81 changes: 81 additions & 0 deletions eslint.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
import js from "@eslint/js";
import tseslint from "typescript-eslint";
import eslintConfigPrettier from "eslint-config-prettier";
import globals from "globals";

// Stylistic rules shared by JS and TS sources.
const sharedRules = {
"no-var": "error",
"no-prototype-builtins": "error",
"no-empty": "error",
"no-inner-declarations": "error",
"no-fallthrough": "error",
"no-useless-escape": "error",
"no-constant-condition": "error",
"no-unreachable": "error",
"no-duplicate-case": "error",
"no-dupe-keys": "error",
"no-irregular-whitespace": "error",
"no-case-declarations": "error",
eqeqeq: ["error", "smart"],
"prefer-const": "error",
"prefer-template": "error",
radix: "error",
"comma-dangle": ["error", "always-multiline"],
semi: ["error", "always"],
};

export default [
{
ignores: ["src/vendor/", "dist/", "public/", "test/"],
},
js.configs.recommended,
// typescript-eslint scoped to TS sources only — JS keeps the core ruleset below.
...tseslint.config({
files: ["src/**/*.ts"],
extends: [tseslint.configs.recommended],
}),
eslintConfigPrettier,
{
files: ["src/**/*.js"],
languageOptions: {
ecmaVersion: "latest",
sourceType: "module",
globals: {
...globals.browser,
THREE: "readonly", // vendored three.min.js (r70, loaded via <script>)
L: "readonly", // Leaflet (loaded via <script>)
chrome: "readonly", // Chrome/Electron extension APIs (pref_storage.js)
__APP_VERSION__: "readonly", // Vite define
},
},
rules: {
...sharedRules,
"no-undef": "error",
"no-redeclare": "error",
"no-unused-vars": [
"error",
{ argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
],
},
},
{
files: ["src/**/*.ts"],
languageOptions: {
ecmaVersion: "latest",
sourceType: "module",
globals: {
...globals.browser,
},
},
rules: {
...sharedRules,
// TypeScript's own checker handles undefined references and redeclarations.
"no-undef": "off",
"@typescript-eslint/no-unused-vars": [
"error",
{ argsIgnorePattern: "^_", varsIgnorePattern: "^_" },
],
},
},
];
Loading
Loading