Commit graph

7 commits

Author SHA1 Message Date
wujunchen
f9e33d4c5d build: align tsconfig target and esbuild target to ES2022
Both were ES2020 while lib was already ES2022, creating a mismatch
that could allow using APIs esbuild wouldn't polyfill. Obsidian 1.4+
runs Electron 25+ which fully supports ES2022.

Change-Id: I732538280146c6a91cf52cc52ef124f6a364dc5e
2026-04-27 19:47:41 +08:00
wujunchen
5f12113fcd chore: improve engineering quality and hardening
- Fix CI to run all 4 test files (was missing direct-modules.test.js)
- Remove unused ESLint dependencies (eslint, @typescript-eslint/*, eslint-plugin-obsidianmd)
- Enable noImplicitReturns in tsconfig.json for stricter type safety
- Make applyApiProviderPreset return new object instead of mutating input
- Add per-file error handling in batch processing loop with error count in summary
- Narrow all catch clause types to unknown with proper instanceof narrowing

Change-Id: I76975dbd5ebdb5645d18c5858c8a52fd6da3405e
2026-04-27 11:15:35 +08:00
wujunchen
58ab0fa77f refactor: enable full TypeScript strict mode
Switch from incremental strict flags to strict: true. Fix property
initializers with definite assignment assertions and inline defaults,
and annotate all catch clauses with unknown type.

Change-Id: I805047eebea7dc5414ff7001aca96eac5a099d02
2026-04-26 09:21:54 +08:00
wujunchen
31e57c8b19 refactor: enable noImplicitAny and add type annotations
Turn on noImplicitAny in tsconfig.json. Add explicit type annotations
to all 137 previously untyped parameters across main.ts, view.ts,
modal.ts, settings-tab.ts, providers.ts, cli.ts, anchor.ts, scroll.ts,
ui-helpers.ts, vault.ts, and settings.ts.

Change-Id: Icc5a69ab57113e9f6dc08dd97e3a8fa5e7e24937
2026-04-26 08:58:41 +08:00
wujunchen
83f35f8ccb feat: add Biome for lint and format
Install @biomejs/biome with lint and format config.
Add npm lint/lint:fix scripts. Auto-fix formatting across all source
files. Update tsconfig lib to ES2022 for Object.hasOwn support.

Change-Id: I13e3ba2f106f7e3d03349080b7ed515d427d24a1
2026-04-25 23:47:49 +08:00
wujunchen
3a776691e6 refactor: enable strictNullChecks and strictFunctionTypes
Turn on strictNullChecks, strictFunctionTypes, strictBindCallApply,
and noImplicitThis in tsconfig.json. Fix 13 resulting type errors
across main.ts, anchor.ts, providers.ts, schema.ts, prompt.ts.

Change-Id: Ib747b9c0cb809d99a7b3d3d7b177ee5918a74dfd
2026-04-25 23:44:28 +08:00
wujunchen
1fada9f472 feat: add TypeScript build and provider architecture
Introduce an esbuild/TypeScript source layout while keeping the generated Obsidian main.js entrypoint. Add provider-format adapters, structured-output requests, settings-aware bounded cache, prompt controls, concurrency guards, and regression tests.

Change-Id: I8ecbc4c6eff3925249778732bd75747619b818e4
2026-04-25 14:12:17 +08:00