features
- [
b7bfa71
] - feat: change set status assert, allowing valid custom statuses (#1308) (Martin Iwanowski <[email protected]>)
others
- [
72f325b
] - chore: add pr welcoming badge (#1291) (James George <[email protected]>) - [
b15115b
] - chore: Reduce unnecessary variable declarations (#1298) (call me saisai <[email protected]>) - [
ad91ce2
] - chore: license 2019 (dead-horse <[email protected]>) - [
b25e79d
] - Mark two examples as live for the corresponding documentation change in koajs/koajs.com#38. (#1031) (Francisco Ryan Tolmasky I <[email protected]>) - [
d9ef603
] - chore: Optimize array split (#1295) (Mikhail Bodrov <[email protected]>) - [
9be8583
] - chore: replace ~~ with Math.trunc in res.length (option) (#1288) (jeremiG <[email protected]>) - [
7e46c20
] - docs: add link to the license file (#1290) (James George <[email protected]>) - [
48993ad
] - docs: Document other body types (#1285) (Douglas Wade <[email protected]>) - [
acb388b
] - docs: Add security vulnerability disclosure instructions to the Readme (#1283) (Douglas Wade <[email protected]>) - [
a007198
] - docs: Document ctx.app.emit (#1284) (Douglas Wade <[email protected]>) - [
f90e825
] - docs: response.set(fields) won't overwrites previous header fields(#1282) (Douglas Wade <[email protected]>) - [
fc93c05
] - docs: update readme to add babel 7 instructions (#1274) (Vikram Rangaraj <[email protected]>) - [
5560f72
] - chore: use the ability ofcontent-type
lib directly (#1276) (Jordan <[email protected]>)
fixes
- [
9905199
] - fix: Status message is not supported on HTTP/2 (#1264) (André Cruz <[email protected]>)
others
- [
325792a
] - docs: add table of contents for guide.md (#1267) (ZYSzys <[email protected]>) - [
71aaa29
] - docs: fix spelling in throw docs (#1269) (Martin Iwanowski <[email protected]>) - [
bc81ca9
] - chore: use res instead of this.res (#1271) (Jordan <[email protected]>) - [
0251b38
] - test: node v11 on travis (#1265) (Martin Iwanowski <[email protected]>) - [
88b92b4
] - doc: updated docs for throw() to pass status as first param. (#1268) (Waleed Ashraf <[email protected]>)
fixes
- [
4964242
] - fix: use X-Forwarded-Host first on app.proxy present (#1263) (fengmk2 <[email protected]>)
features
- [
9c5c58b
] - feat: use :authority header of http2 requests as host (#1262) (Martin Michaelis <[email protected]>) - [
9146024
] - feat: response.attachment append a parameter: options from contentDisposition (#1240) (小雷 <[email protected]>)
others
- [
d32623b
] - docs: Update error-handling.md (#1239) (urugator <[email protected]>)
fixes
- [
2ee32f5
] - fix: pin debug@~3.1.0 avoid deprecated warnning (#1245) (fengmk2 <[email protected]>)
others
- [
2180839
] - docs: Update koa-vs-express.md (#1230) (Clayton Ray <[email protected]>)
- deps: upgrade all dependencies
- perf: avoid stringify when set header (#1220)
- perf: cache content type's result (#1218)
- perf: lazy init cookies and ip when first time use it (#1216)
- chore: fix comment & approve cov (#1214)
- docs: fix grammar
- test&cov: add test case (#1211)
- Lazily initialize
request.accept
and delegatecontext.accept
(#1209) - fix: use non deprecated custom inspect (#1198)
- Simplify processes in the getter
request.protocol
(#1203) - docs: better demonstrate middleware flow (#1195)
- fix: Throw a TypeError instead of a AssertionError (#1199)
- chore: mistake in a comment (#1201)
- chore: use this.res.socket insteadof this.ctx.req.socket (#1177)
- chore: Using "listenerCount" instead of "listeners" (#1184)
- test: node v10 on travis (#1182)
- fix tests: remove unnecessary assert doesNotThrow and api calls (#1170)
- use this.response insteadof this.ctx.response (#1163)
- deps: remove istanbul (#1151)
- Update guide.md (#1150)
- feat: ignore set header/status when header sent (#1137)
- run coverage using --runInBand (#1141)
- [Update] license year to 2018 (#1130)
- docs: small grammatical fix in api docs index (#1111)
- docs: fixed typo (#1112)
- docs: capitalize K in word koa (#1126)
- Error handling: on non-error throw try to stringify if error is an object (#1113)
- Use eslint-config-koa (#1105)
- Update mgol's name in AUTHORS, add .mailmap (#1100)
- Avoid generating package locks instead of ignoring them (#1108)
- chore: update copyright year to 2017 (#1095)
- fix bad merge w/ 2.4.0
UNPUBLISHED
- update
package.engines.node
to be more strict - update
fresh@^0.5.2
- fix:
inspect()
no longer crashescontext
- fix: gated
res.statusMessage
for HTTP/2 - added:
app.handleRequest()
is exposed
- fix: use
Buffer.from()
- test on node 7 & 8
- add
package-lock.json
to.gitignore
- run
lint --fix
- add
request.header
in addition torequest.headers
- add IPv6 hostname support
- fix: drop
package.engines.node
requirement to >= 6.0.0- this fixes
yarn
, which errors when this semver range is not satisfied
- this fixes
- bump
cookies@~0.7.0
- bump
fresh@^0.5.0
- added: return middleware chain promise from
callback()
#848 - added: node v7.7+
res.getHeaderNames()
support #930 - added:
err.headerSent
in error handling #919 - added: lots of docs!
NOTE: we hit a versioning snafu. v2.0.0
was previously released,
so v2.0.1
is released as the first v2.x
with a latest
tag.
- upgrade mocha #900
- add names to
application
's request and response handlers #805 - breaking: remove unused
app.name
#899 - breaking: drop official support for node < 7.6
- Fix malformed content-type header causing exception on charset get (#898)
- fix: subdomains should be [] if the host is an ip (#808)
- don't pre-bound onerror [breaking change] (#800)
- fix
ctx.flushHeaders()
to useres.flushHeaders()
instead ofres.writeHead()
(#795) - fix(response): correct response.writable logic (#782)
- merge v1.1.2 and v1.2.0 changes
- include
koa-convert
so that generator functions still work- NOTE: generator functions are deprecated in v2 and will be removed in v3
- improve linting
- improve docs
- Fix malformed content-type header causing exception on charset get (#898)
- fix: subdomains should be [] if the host is an ip (#808)
- don't pre-bound onerror [breaking change]
- fix
ctx.flushHeaders()
to useres.flushHeaders()
instead ofres.writeHead()
- fix
response.writeable
during pipelined requests
- add support for
err.headers
inctx.onerror()
- see: koajs#668
- note: you should set these headers in your custom error handlers as well
- docs: https://github.com/koajs/koa/blob/master/docs/error-handling.md
- fix
cookies
' detection of http/https- see: koajs#614
- deprecate
app.experimental = true
. Koa v2 does not use this signature. - add a code of conduct
- test against the latest version of node
- add a lot of docs
- ensure parseurl always working as expected
- fix Application.inspect() – missing .proxy value.
- ensure parseurl always working as expected. #586
- fix Application.inspect() – missing .proxy value. Closes #563
- remove
co
and generator support completely - improved documentation
- more refactoring into ES6
- change the middleware signature to
async (ctx, next) => await next()
- drop node < 4 support and rewrite the codebase in ES6
- do not send a content-type when the type is unknown #536
- add
app.silent=<Boolean>
to toggle error logging @tejasmanohar #486 - add
ctx.origin
@chentsulin #480 - various refactoring
- add
use strict
everywhere
- add
- add
this.req
check forquerystring()
- don't log errors with
err.expose
koa
now follows semver!
- empty
request.query
objects are now always the same instance - bump
[email protected]
Breaking change if you're using this.get('ua') === undefined
etc.
For more details please checkout #438.
- make sure helpers return strict string
- feat: alias response.headers to response.header
- non-error thrown, fixed #432
req.host
andreq.hostname
now always return a string (semi-breaking change)- improved test coverage
- move babel to
devDependencies
- experimental es7 async function support via
app.experimental = true
- use
content-type
instead ofmedia-typer
Breaking change if you're using an old version of node v0.11! Otherwise, you should have no trouble upgrading.
- official iojs support
- drop support for node.js
>= 0.11.0 < 0.11.16
- use
Object.setPrototypeOf()
instead of__proto__
- update dependencies
- add
res.append()
- fix path usage for [email protected]
- add
this.href
- remove
x-powered-by
response header - fix the content type on plain-text redirects
- add ctx.state
- bump
co@4
- bump dependencies
- add this.message
- custom status support via
statuses
- use wider semver ranges for dependencies koa maintainers also maintain
- bump content-disposition
- bump statuses
- add this.assert()
- use content-disposition
- fix app.use() assertion #337
- bump a lot of dependencies
- add
ctx.throw(err, object)
support - add
ctx.throw(err, status, object)
support
- add: do not set
err.expose
to true when err.status not a valid http status code - add: alias
request.headers
asrequest.header
- add context.inspect(), cleanup app.inspect()
- update cookies
- fix
err.status
invalid lead to uncaughtException - fix middleware gif, close #322
- bump co
- bump parseurl
- bump type-is
- add `this.response.is()``
- remove
.status=string
andres.statusString
#298
- add
this.lastModified
andthis.etag
as both getters and setters for ubiquity #292. See koajs/koa@4065bf7 for an explanation. - refactor
this.response.vary()
to use vary #291 - remove
this.response.append()
#291
- fix res.type= when the extension is unknown
- assert when non-error is passed to app.onerror #287
- bump finished
- switch from set-type to mime-types
- bump type-is
- bump koa-compose
- add nicer error formatting
- add: assert object type in ctx.onerror
- change .status default to 404. Closes #263
- remove .outputErrors, suppress output when handled by the dev. Closes #272
- fix content-length when body is re-assigned. Closes #267
- fix length when .body is missing
- fix: make sure all intermediate stream bodies will be destroyed
- fix header stripping in a few cases
- change res.type= to always default charset. Closes #252
- remove ctx.inspect() implementation. Closes #164
- fix: inspection of
app
andapp.toJSON()
- fix: let
this.throw
n errors provide their own status - fix: overwriting of
content-type
w/HEAD
requests - refactor: use statuses
- refactor: use escape-html
- bump dev deps
- add request.hostname(getter). Closes #224
- remove response.charset and ctx.charset (too confusing in relation to ctx.type) [breaking change]
- fix a debug() name
- add context.charset
- add context.charset=
- add request.charset
- add response.charset
- add response.charset=
- fix response.body= html content sniffing
- change ctx.length and ctx.type to always delegate to response object [breaking change]
- remove app.jsonSpaces settings - moved to koa-json
- add this.response=false to bypass koa's response handling
- fix response handling after body has been sent
- changed ctx.throw() to no longer .expose 5xx errors
- remove app.keys getter/setter, update cookies, and remove keygrip deps
- update fresh
- update koa-compose
- add ctx.host= delegate
- add req.host=
- add: context.throw supports Error instances
- update co
- update cookies
- add better 404 handling
- add check for fn._name in debug() output
- add explicit .toJSON() calls to ctx.toJSON()
- add support for .throw(status, msg). Closes #130
- add GeneratorFunction assertion for app.use(). Closes #120
- refactor: move
.is()
totype-is
- refactor: move content negotiation to "accepts"
- refactor: allow any streams with .pipe method
- remove
next
in callback for now
- update co, koa-compose, keygrip
- use on-socket-error
- add throw(status, msg) support
- assert middleware is GeneratorFunction
- ducktype stream checks
- remove
next
isapp.callback()
- fix: cleanup socker error handler on response