Skip to main content

kickjs-thin-entry-file

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

معلومات المصدر

المستودع
forinda/kick-fullstack-netlify
آخر نشاط في المصدر
١٨ سبتمبر ٢٠٢٦ في ١١:٥٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٠
التفرعات
٠

خيارات التثبيت

يُحدَّد 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 kick-fullstack. 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