Skip to content

Conversation

@chhoumann
Copy link
Owner

Summary

Migrates the build system from esbuild to Vite for improved developer experience and faster builds. Enables strict TypeScript checking with comprehensive type safety improvements throughout the codebase.

Changes

  • Removes esbuild configuration and dependencies (esbuild, esbuild-svelte, builtin-modules)
  • Adds Vite configuration for optimized bundling and CommonJS output
  • Updates TypeScript to strict mode with proper null checking and type annotations
  • Modernizes ESLint configuration to flat config format with eslint-plugin-import
  • Enhances CI/CD pipeline with separate lint, format check, and type check steps
  • Adds .nvmrc to enforce Node.js version consistency
  • Comprehensive codebase updates for strict type safety

Testing

The built plugin should be tested in an Obsidian environment to verify compatibility with Vite's output format.

Replace esbuild with Vite for faster builds and better dev experience. Update TypeScript to strict mode with comprehensive type safety improvements. Add modern ESLint configuration and improve CI/CD pipeline with separate lint, format, and type check steps.
@vercel
Copy link

vercel bot commented Nov 23, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
podnotes Ignored Ignored Preview Nov 23, 2025 7:21pm

Resolve conflicts by:
- Keeping Vite-based build scripts while adding a11y check from master
- Adding svelte-check dependency for a11y testing
- Maintaining strict TypeScript configuration with bundler resolution
- Including obsidian mock alias from master for testing
- Regenerating package-lock.json to match merged dependencies
- Add @testing-library/jest-dom to TypeScript types for test matchers
- Convert JavaScript Svelte components to TypeScript (lang="ts")
- Fix Slider.svelte setLimits type mismatch by handling 2-tuple and 3-tuple separately
- Add HTMLDivElement type annotation to IntersectionObserver container
- Add wildcard module declaration for .svelte file imports
- Add empty TypeScript scripts to template-only components

All CI checks now pass locally: lint, format:check, typecheck, check:a11y, build, test
npm ci ensures a clean install from package-lock.json and properly installs
optional dependencies like @biomejs/cli-linux-x64 needed for biome to work in CI.
The previous package-lock.json was missing some transitive dependencies
(nopt, @npmcli/installed-package-contents, etc.) causing npm ci to fail in CI.
Regenerated from scratch to ensure all dependencies are properly included.

Also fixed tsconfig.json formatting to match biome's expectations.
npm ci requires exact lockfile match which fails when lockfile is generated
with npm 11.x but CI uses npm 10.x. Using npm install provides better
compatibility across npm versions while still respecting the lockfile.
Integrate master's PR #124 changes (feed caching and UI accessibility improvements)
with strict TypeScript configuration.

Resolved conflicts by:
- Accepting master's lazy initialization for TranscriptionService via getTranscriptionService()
- Accepting master's new performance settings and feed caching features
- Accepting master's accessibility improvements to UI components
- Applying strict TypeScript fixes: definite assignment assertions (!), optional properties (?),
  and override keywords where required
- Fixing type safety: optional chaining for nullable controller cleanup
- Consolidating imports and removing unused variables to pass linting

All CI checks pass: lint, format:check, typecheck, build, and tests.
@chhoumann chhoumann force-pushed the vite-migration-setup branch from 2b53ace to 1996c59 Compare November 23, 2025 19:21
@chhoumann chhoumann merged commit 55c3f1b into master Nov 23, 2025
3 checks passed
@github-actions
Copy link

🎉 This PR is included in version 2.14.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@chhoumann chhoumann deleted the vite-migration-setup branch November 24, 2025 06:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants