-
-
Notifications
You must be signed in to change notification settings - Fork 96
Description
Summary
We're hitting a wall with the current @fedify/fedify/x/* modules living inside @fedify/fedify. These integrations are starting to affect the package's portability across different platforms and registries. The whole situation reminds me of what happened with issue #271—we can't properly depend on framework-specific types without creating unnecessary dependencies for users who don't need those integrations. Time to bite the bullet and split these out into their own packages.
Affected Area
All modules under @fedify/fedify/x/* including framework integrations like SvelteKit, Hono, and any other adapters currently residing there. This impacts both the main package structure and how users import these integrations.
Reason / Context
The @fedify/fedify/x/* modules were convenient when Fedify was smaller, but they're becoming a maintenance headache. As we saw in #271, we can't add proper type dependencies for frameworks like SvelteKit without forcing all users to install those frameworks—JSR doesn't support devDependencies, and we need to maintain compatibility across npm, JSR, and Deno. Plus, having all these integrations bundled together bloats the main package for users who only need core functionality.
Moving forward, each integration should live in its own package (@fedify/sveltekit, @fedify/hono, etc.) where it can properly declare its dependencies without affecting the core library. We'll deprecate the current x/* exports in favor of these new packages, with complete removal planned for Fedify 2.0.
Checklist
- Create separate packages for each
@fedify/fedify/x/*module (@fedify/sveltekit, @fedify/hono, etc.) - Move existing code from
@fedify/fedify/x/*to the new packages with proper dependencies - Add deprecation warnings to all
@fedify/fedify/x/*module exports in @fedify/fedify - Update documentation to point users to the new packages
- Maintain backward compatibility through re-exports until 2.0
- Plan migration guide for users moving from
@fedify/fedify/x/*imports to new packages - Remove
@fedify/fedify/x/*modules completely in Fedify 2.0