Skip to main content

kickjs-thin-entry-file

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

ソース情報

リポジトリ
forinda/kickjs-examples-archive
ソースの最終更新活動
2026年10月16日 00:14
検出された SKILL.md の言語
英語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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.
GitHubで見る