Skip to main content

kickjs-thin-entry-file

Use when src/index.ts is accumulating module/middleware/plugin/adapter literals.

Quellinformationen

Repository
forinda/kickjs-examples-archive
Letzte Quellaktivität
16. Oktober 2026 um 00:14
Erkannte Sprache von SKILL.md
Englisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
kickjs-thin-entry-file
description
Use when src/index.ts is accumulating module/middleware/plugin/adapter literals.
<!-- Generated by `kick g agents` for settings-api. Edits are overwritten on the next refresh; keep customisation in a SKILL.local.md alongside. --> **Refactor target**: ```ts // src/modules/index.ts — fluent chain (default for `modules.style: 'define'`) export const modules = defineModules().mount(HelloModule()).mount(UsersModule()) // OR for class-form projects (`modules.style: 'class'`): // export const modules: AppModuleEntry[] = [HelloModule, UsersModule] // src/middleware/index.ts — global middleware uses RAW EXPRESS signature // (req, res, next), NOT (ctx, next) // `express.json()` is auto-skipped on Fastify and h3, which parse bodies // natively — harmless to list, but don't reach for it as the body parser there. export const middleware = [requestId(), express.json(), helmet(), cors(), traceContext()] // src/plugins/index.ts export const plugins = [MetricsPlugin(), AuthPlugin({ tokenTtl: env.TOKEN_TTL })] // src/adapters/index.ts export const adapters = [SwaggerAdapter({ ... }), DevToolsAdapter()] // src/index.ts — stays small import 'reflect-metadata' import './config' // MUST be early — side-effect schema load import { bootstrap } from '@forinda/kickjs' import { modules } from './modules' import { middleware } from './middleware' import { plugins } from './plugins' import { adapters } from './adapters' export const app = await bootstrap({ modules, middlewares, plugins, adapters }) ``` **One-off DI binding** — inline a literal plugin inside `plugins`, not a top-level option: ```ts plugins: [ ...plugins, { name: 'vector-store', register(c) { c.registerInstance(VECTOR_STORE, store) } }, ] ``` **Red flags**: - Any `new SomeAdapter()` / `SomePlugin()` literal inside `bootstrap({ ... })` instead of imported from a category folder. - Mixing middleware signatures: `bootstrap({ middlewares })` is **raw Express** `(req, res, next)`; `@Middleware()` decorators are `(ctx, next)`; adapter middleware is connect-style too (mounted through the runtime seam, so it is not Express-only). Wrong shape in the wrong slot throws "Cannot read properties of undefined". - `bootstrap({ register: ... })` — that option doesn't exist. Use an inline plugin.
Auf GitHub ansehen