firstsun-dev_git-files-sync/tsconfig.compat.json
Claude d896015765 fix(compat): support Obsidian down to 1.11.0
Release 1.2.0 raised minAppVersion to 1.13.0, pushing users still on
Obsidian 1.11/1.12 back to the older 1.1.2 build via versions.json. Only
three 1.13-era APIs were in use; two were already runtime-guarded, but
ButtonComponent.setDestructive() would throw on older Obsidian.

- Guard setDestructive() behind applyDestructiveStyle() (no-ops on < 1.13).
- Declare SettingDefinitionItem locally and read update() via a cast so the
  forward-compatible settings code type-checks against 1.11 typings.
- Ship 1.2.1 with minAppVersion 1.11.0 (manifest.json + versions.json).
- Add tsconfig.compat.json and `npm run typecheck:compat` to type-check src
  against the 1.11 API, plus regression tests for applyDestructiveStyle.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SSikT9ZAfQF8K4SE3DatD3
2026-07-07 01:53:28 +00:00

17 lines
598 B
JSON

{
// Type-checks src against the Obsidian 1.11 API typings (installed as the
// "obsidian-1_11" alias) instead of the latest ones. Because the plugin
// declares minAppVersion 1.11.0, any use of an API newer than 1.11 that is
// not runtime-guarded becomes a compile error here. Run via `npm run
// typecheck:compat`. Keep this passing whenever minAppVersion stays at 1.11.
"extends": "./tsconfig.json",
"compilerOptions": {
"noEmit": true,
"skipLibCheck": true,
"baseUrl": ".",
"paths": {
"obsidian": ["node_modules/obsidian-1_11/obsidian"]
}
},
"include": ["src/**/*.ts"]
}