Skip to content

minimajs add hook

Scaffolds a lifecycle hook file and registers it in the nearest module (or globally in src/index.ts).

bash
minimajs add hook <name>

What it does

  1. Creates a <name>.hook.ts file with a typed hook stub.
  2. Patches the target file to import and register the hook:
    • Module-scoped (default): adds the hook to the plugins array in the nearest module.ts.
    • Global (--global): adds app.register(hookName) in src/index.ts after createApp().

Generated file

ts
import { hook } from "@minimajs/server";

export const requestLogger = hook("request", async () => {
  // TODO: implement hook logic
});

Placement

CommandHook filePatched file
minimajs add hook request-loggersrc/hooks/request-logger.hook.tssrc/module.ts
minimajs add hook users/request-loggersrc/users/request-logger.hook.tssrc/users/module.ts
minimajs add hook request-logger --globalsrc/hooks/request-logger.hook.tssrc/index.ts

Options

FlagDefaultDescription
--typerequestHook event type (request, send, transform, etc.)
--globalfalseRegister via app.register() in src/index.ts instead of module.ts
--dirsrcRoot source directory

Examples

bash
# Request hook scoped to src/module.ts
minimajs add hook request-logger

# Transform hook scoped to the users module
minimajs add hook users/transform-body --type=transform

# Global hook registered in src/index.ts
minimajs add hook request-logger --global

# Custom hook type, global
minimajs add hook body-sanitizer --type=transform --global