@toss/ky
A library which wraps ky to be compliant to both CommonJS and ECMAScript Modules.
Check out the ky docs for usage.
$ node
> require("@toss/ky")
# -> Available
> await import("@toss/ky")
# -> Available
Motivation
ky
has the following problems.
- Since it is ESM-only,
require()
calls fail. - For server-side rendering, we should use the separate
ky-universal
library.
@toss/ky
improves ky
to be used easily.
- It is compiled beforehand with ESBuild, enabling it to be used both in CommonJS and ESM.
- Even in server-side rendered services, you could only use
@toss/ky
, not having to think about what to use betweenky-universal
andky
.
Why are the build results version controlled?
- When the built code is not version controlled, we cannot run tests in the workspace, since
require('ky')
is run andERR_REQUIRE_ESM
errors are thrown. - To update the built code, run
yarn build
in the package, and commit the diffs.