build: gate builds on tsc, fix lib floor, correct minAppVersion
The build only ran esbuild, which strips types without checking them — that is how the week-number ReferenceError shipped. Add a typecheck script and run it before bundling. It is invoked as 'node node_modules/typescript/bin/tsc' rather than a bare 'tsc' because this repo's node_modules/.bin entries are Linux-style symlinks with no Windows .cmd shims, matching how the existing scripts already call 'node esbuild.config.mjs' directly. - tsconfig lib gains ES2017 so Object.entries resolves (was TS2550 plus cascading TS7031 implicit-any errors); strictness untouched. - manifest minAppVersion 0.16.3 -> 1.4.4: the plugin calls setTooltip(), added in API 1.4.4, so every declared-supported version below that threw TypeError on render. - settings-tab: type plugin as WaypointPlugin via a type-only import (no runtime cycle) to drop the (this.plugin as any).saveSettings() cast, and make the slider helper generic instead of obj: any. No UI change. - Add the MIT LICENSE file that package.json and the About tab already claim.
This commit is contained in:
+8
-7
@@ -1,13 +1,14 @@
|
||||
import { Setting, PluginSettingTab, App, Plugin, setIcon } from 'obsidian';
|
||||
import { Setting, PluginSettingTab, App, setIcon } from 'obsidian';
|
||||
import type WaypointPlugin from 'src/main';
|
||||
import { WaypointSettings, DEFAULT_SETTINGS, PeriodNoteSettings } from 'src/settings';
|
||||
|
||||
export class WaypointSettingTab extends PluginSettingTab {
|
||||
private plugin: Plugin;
|
||||
private plugin: WaypointPlugin;
|
||||
private settings: WaypointSettings;
|
||||
private onSettingsChange: () => void;
|
||||
private activeTab: 'calendar' | 'periodic' | 'recent' | 'display' | 'about' = 'calendar';
|
||||
|
||||
constructor(app: App, plugin: Plugin, settings: WaypointSettings, onSettingsChange: () => void) {
|
||||
constructor(app: App, plugin: WaypointPlugin, settings: WaypointSettings, onSettingsChange: () => void) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
this.settings = settings;
|
||||
@@ -284,12 +285,12 @@ export class WaypointSettingTab extends PluginSettingTab {
|
||||
);
|
||||
}
|
||||
|
||||
private addSliderSetting(
|
||||
private addSliderSetting<K extends string>(
|
||||
container: HTMLElement,
|
||||
name: string,
|
||||
desc: string,
|
||||
obj: any,
|
||||
key: string,
|
||||
obj: Record<K, number>,
|
||||
key: K,
|
||||
min: number,
|
||||
max: number,
|
||||
step: number,
|
||||
@@ -313,7 +314,7 @@ export class WaypointSettingTab extends PluginSettingTab {
|
||||
}
|
||||
|
||||
private async saveAndRefresh(): Promise<void> {
|
||||
await (this.plugin as any).saveSettings();
|
||||
await this.plugin.saveSettings();
|
||||
this.onSettingsChange();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user