## 懸念 最大の懸念は **今、ファイルで開始時刻を管理し、切り替わりのタイミングでFileIOを行って制御している** こと。これは[[Obsidian Sync]]などの複数端末同期対策。 なぜ問題かというと - 毎秒更新処理を実行すると、常にFileIOが発生する - ボトルネックにはならないと思うが無駄な負荷が... ## TODO ミニマム対応で攻めたい。 - [x] 準備運動 - [x] [[📝none-lsでprettierdを設定したときesbuild.config.mjsで保存後にフォーマットが効かない]] - [x] カレンダーの表示崩れをなおす - [x] 30秒に1回の定期実行処理を起動時に割り当て - [x] まずは5秒おきにconsole.logを出す - [x] 停止用のハンドラーを作成 - [x] `timer.json`から計測開始時刻を取得し、現在時刻との差分を表示 - [x] 計測開始時刻がない場合はスルー (非計測中) - [x] フッターに表示 - [x] アイコンに統一感を持たせる - [x] 表示をHHmmssではなく日本語の時分表示にする - [x] 実行を30秒おきに - [x] 計測開始と計測終了時は更新する - [x] オプションの追加 - [x] 時刻表示のON/OFF ## パッケージ最新化 ```console Minor Update New backwards-compatible features. ◯ obsidian devDep 1.1.1 ❯ 1.4.11 https://obsidian.md ◯ tslib devDep 2.4.0 ❯ 2.6.2 https://www.typescriptlang.org/ Major Update Potentially breaking API changes. Use caution. ◉ @event-calendar/core devDep 0.15.3 ❯ 2.6.1 https://vkurko.github.io/calendar/ ◉ @event-calendar/day-grid devDep 0.15.3 ❯ 2.6.1 https://vkurko.github.io/calendar/ ◉ @tsconfig/svelte devDep 3.0.0 ❯ 5.0.2 https://github.com/tsconfig/bases#readme ◉ @types/node devDep 16.18.82 ❯ 20.11.19 https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node ◉ @typescript-eslint/eslint-plugin devDep 5.29.0 ❯ 7.0.1 https://github.com/typescript-eslint/typescript-eslint#readme ◉ @typescript-eslint/parser devDep 5.29.0 ❯ 7.0.1 https://github.com/typescript-eslint/typescript-eslint#readme ◉ husky devDep 8.0.3 ❯ 9.0.11 https://github.com/typicode/husky#readme ◉ prettier devDep 2.8.8 ❯ 3.2.5 https://prettier.io ◉ prettier-plugin-svelte devDep 2.10.1 ❯ 3.2.1 https://github.com/sveltejs/prettier-plugin-svelte#readme ◉ svelte devDep 3.59.2 ❯ 4.2.11 https://svelte.dev ◉ typescript devDep 4.9.5 ❯ 5.3.3 https://www.typescriptlang.org/ Non-Semver Versions less than 1.0.0, caution. ◉ owlelia 0.47.2 ❯ 0.48.0 https://github.com/tadashi-aikawa/owlelia#readme ◉ esbuild devDep 0.14.47 ❯ 0.20.1 https://github.com/evanw/esbuild#readme ❯◉ esbuild-svelte devDep 0.7.4 ❯ 0.8.0 https://github.com/EMH333/esbuild-svelte#readme ``` ### エラー ```error ✘ [ERROR] Invalid option in build() call: "watch" /home/tadashi-aikawa/git/github.com/tadashi-aikawa/silhouette/node_modules/esbuild/lib/main.js:256:12: 256 │ throw new Error(`Invalid option ${where}: ${quote(key)}`); ╵ ^ ``` 以下の件と同じっぽい。 > [[📝Obsidianプラグイン開発プロジェクトのesbuildを0.15から0.20にアップグレードしたらビルド時にInvalid optionエラーになる]] 他にも[[Babelを使ってTypeScript対応 (Jest)|Babelを使ってTypeScript対応]]していたので、[[esbuildを使ってTypeScript対応 (Jest)|esbuildを使ってTypeScript対応]]するようにした。