@igniter-js/plugin-better-auth
v0.0.3
Published
Igniter.js plugin that wires BetterAuth API into an 'auth' controller automatically.
Maintainers
Readme
@igniter-js/plugin-better-auth
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.
Install
npm i @igniter-js/plugin-better-auth better-authPeer dependency @igniter-js/core must be available in your workspace.
Quick Start
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>()
// Action names come from `auth.api`:
// - Direct functions → <key> (POST)
// - Method groups { get, post, ... } → <key>_get | <key>_post | ...Configuration
createBetterAuthPlugin({
auth, // required BetterAuth instance
controllerName: 'auth',
pluginName: 'better-auth'
})How Mapping Works
- It inspects top-level keys under
auth.api. - If it finds REST-like method containers (e.g.
{ get, post, put, delete, patch }), it creates an action per method:<key>_get,<key>_post, ... - If it finds a function, it creates a
POSTaction named<key>. - Action path is
/<key>inside theauthcontroller, so HTTP endpoints look like/api/v1/auth/<key>.
Notes:
- Input types are inferred from the function signature and wired to the Igniter action
$Inputvia a virtual schema. - You can refine/extend mapping or schemas later without changing your Igniter app code.
License
MIT
