Skip to content

Switch @fedify/init Node.js/Bun templates to Oxfmt + Oxlint #703

@dahlia

Description

@dahlia

Update @fedify/init so that generated Node.js and Bun projects use Oxfmt for formatting and Oxlint for linting.

Background

The current Node.js/Bun templates already enable @fedify/lint through ESLint, so the main problem is not missing Fedify-specific lint rules. The problem is that the generated projects ship a split toolchain.

Today, generated Node.js/Bun projects carry biome.json and eslint.config.ts. Biome is used for formatting, while ESLint exists mainly to host @fedify/lint. That split is harder to justify now that Oxlint can load ESLint-compatible JS plugins and Oxfmt can cover the formatting side.

If @fedify/lint gains an official Oxlint entrypoint, @fedify/init should be able to generate Node.js/Bun projects that use Oxfmt + Oxlint from the start. That would make the generated toolchain more coherent and would avoid shipping Biome in templates that already depend on a separate lint stack.

This issue depends on #702. @fedify/init should consume an official Oxlint entrypoint from @fedify/lint rather than generating a template-local wrapper module.

Scope

  • replace the Biome formatter setup in Node.js/Bun templates with Oxfmt
  • replace ESLint config and lint scripts in Node.js/Bun templates with Oxlint config and scripts
  • wire @fedify/lint into the generated Oxlint config
  • update generated editor settings and extension recommendations as needed
  • extend @fedify/init tests so the generated projects cover the new formatter/linter setup

Notes

The Deno templates do not have the same problem. They already use Deno's own formatter and lint plugin flow, so this issue should stay focused on Node.js and Bun.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions