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:
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Olivier
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"id": "waypoint-sidebar",
|
||||
"name": "Waypoint Sidebar",
|
||||
"version": "1.5.1",
|
||||
"minAppVersion": "0.16.3",
|
||||
"minAppVersion": "1.4.4",
|
||||
"description": "Calendar, recent files, and custom bookmarks sidebar.",
|
||||
"author": "Olivier",
|
||||
"isDesktopOnly": false
|
||||
|
||||
+2
-1
@@ -5,7 +5,8 @@
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"dev": "node esbuild.config.mjs",
|
||||
"build": "node esbuild.config.mjs production"
|
||||
"typecheck": "node node_modules/typescript/bin/tsc --noEmit",
|
||||
"build": "npm run typecheck && node esbuild.config.mjs production"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "Olivier",
|
||||
|
||||
+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();
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -15,7 +15,8 @@
|
||||
"DOM",
|
||||
"ES5",
|
||||
"ES6",
|
||||
"ES7"
|
||||
"ES7",
|
||||
"ES2017"
|
||||
],
|
||||
"paths": {
|
||||
"src/*": ["./src/*"]
|
||||
|
||||
Reference in New Issue
Block a user