0.0.8 • Published 8 months ago

@kosmic/koa v0.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

@kosmic/koa

A strongly typed Koa drop in replacement

@kosmic/koa is a typescript first drop in replacement for koa. There are virtually 0 differences in the js code base and tests are run against the original koa tests as well as additional tests to ensure that @kosmic/koa is 100% production ready and directly compatible with the latest version of koa. Koa is very stable and is only updated infrequently, but we use github actions to closely track any changes that may occur. In addition, it is very easy to use @kosmic/koa with any third party types as well, and no breaking changes should occur, at all, ever.

Why do this?

  • Much better, seamless, and stronger TS experience in every aspect.
  • Types designed specifically for great intellisense with ts server.
    • easily see and validate any type on any object
    • Full koa documentation and examples on every getter,setter,method, and property on any koa object!!!!! Never check the koa docs again!
  • Less packages to install and worry about when using koa with typescript.

I'm just using koa with JS - I don't need @kosmic/koa

Wait! If you use ts-server (ie, most code editors are using this), you can immediately benefit from awesome intellisense, even in pure JavaScript!! Once again, never check the docs again for you Koa questions, its right there in your editor!

How to use

Step 1

Remove both koa and @types/koa from your package.json and then install @kosmic/koa and alias it to koa.

npm install @kosmic/koa@npm:koa

or

yarn add @kosmic/koa@npm:koa or pnpm add @kosmic/koa@npm:koa

Thats it!

You will now experience Koa with all the power of typescript built in.

A note on compatibility

@kosmic/koa mimics the types in @types/koa, however, they are not compatible. Third party types can extend them both the same way. In this way, if you want to use any existing koa module with third party types, you can easily do so, but your project needs to alias @kosmic/koa as koa.

This aliasing tends to work out of the box if you are using npm as a package manager, however, yarn and pnpm may require some extra configuration. The main ideas is that your project should see and use @kosmic/koa anywhere it tries to use koa.