Igniter.js plugin that wires BetterAuth API into an 'auth' controller automatically.
Type-safe Igniter.js plugin that wires BetterAuth's api surface into an auth controller automatically.
Status: scaffold. It creates an auth controller and dynamically maps methods discovered under auth.api into Igniter actions. The mapping is conservative and can be refined once the exact BetterAuth API shape is confirmed.
```
npm i @igniter-js/plugin-better-auth better-auth
Peer dependency @igniter-js/core must be available in your workspace.
`ts
import { Igniter } from '@igniter-js/core'
import { createBetterAuthPlugin } from '@igniter-js/plugin-better-auth'
import { betterAuth } from 'better-auth'
const auth = betterAuth({ / your config / })
const { plugin, controllers } = createBetterAuthPlugin(auth)
// Attach the plugin and auto-register the typed auth controller
const igniter = Igniter
.addPlugin('betterAuth', plugin, controllers)
.create()
// Merge with your own controllers as usual
const router = igniter.router({
controllers: {
// ...your controllers
}
})
// Typed DX: router.caller.auth.
// Action names come from auth.api:`
// - Direct functions →
// - Method groups { get, post, ... } →
`ts`
createBetterAuthPlugin({
auth, // required BetterAuth instance
controllerName: 'auth',
pluginName: 'better-auth'
})
- It inspects top-level keys under auth.api.{ get, post, put, delete, patch }
- If it finds REST-like method containers (e.g. ), it creates an action per method: , , ...POST
- If it finds a function, it creates a action named ./
- Action path is inside the auth controller, so HTTP endpoints look like /api/v1/auth/.
Notes:
- Input types are inferred from the function signature and wired to the Igniter action $Input` via a virtual schema.
- You can refine/extend mapping or schemas later without changing your Igniter app code.
MIT