- Goal: Zero configuration for 90% of use cases.
- Example:
createLineAppsets up everything needed for a bot.ctx.replyTextis a shortcut forreplyMessagewith a text object.
- Goal: No "magic" global state or hidden side effects.
- Example: Config is passed explicitly to factories. Handlers are explicit functions.
- Goal: Pay only for what you use.
- Example: If you only need Login, install
@linekit/login. If you want to use Fastify instead of Express, swap the adapter. Core logic remains the same.
- Goal: Core logic should not depend on
express,koa, ornext. - Implementation:
@linekit/coreuses genericreq/respatterns or pure functional logic where possible. Adapters bridge the gap.
- Goal: Full TypeScript support without manual casting.
- Implementation: All events and config are typed. Methods return typed Promises.