Commit graph

219 commits

Author SHA1 Message Date
TJ Holowaychuk
990caf4e71 refactor 2014-04-14 15:36:39 -07:00
TJ Holowaychuk
95a78c3a44 Merge pull request from dead-horse/stream-body
make sure all intermediate stream bodies will be destroy
2014-04-14 15:34:13 -07:00
dead_horse
69c82f63b5 fix length when .body is missing 2014-04-13 11:35:28 +08:00
TJ Holowaychuk
bb0a0b3659 ocd 2014-04-12 10:59:04 -07:00
dead_horse
64aad129d3 fix this.status= in this.body
fix default status set bug in this.body=null.
do not call this.status= if this.status exist.
make sure empty content status remove content headers
2014-04-10 11:47:30 +08:00
TJ Holowaychuk
3d8ab61fa1 change res.type= to always default charset. Closes 2014-04-09 09:34:50 -07:00
dead_horse
329d2b94db make sure all intermediate stream bodies will be destroy and have error handle 2014-04-10 00:02:13 +08:00
TJ Holowaychuk
dfe8e95be4 remove ctx.inspect() implementation. Closes
obscures user-defned properties. ideally we fix it so .req / .res are not so verbose but meh for now
2014-04-05 19:15:14 -07:00
Dmitry Mazuro
9e8d6a3aa0 ocd 2014-03-24 21:21:15 +03:00
Jonathan Ong
52cb57cc7e fix overwriting of content-type w/ HEAD requests 2014-03-23 04:01:14 -07:00
Jonathan Ong
c382305d4f refactor: use escape-html
dat SLOC
2014-03-12 18:30:16 -07:00
Jonathan Ong
182f9d6fa4 refactor: use statuses 2014-03-12 18:29:14 -07:00
TJ Holowaychuk
9b1651a8e6 fix inspection of app. Closes 2014-03-11 11:06:57 -07:00
TJ Holowaychuk
895cf4040c add app.toJSON() 2014-03-11 11:01:33 -07:00
New Now Nohow
0a223f2bb7 Let errors provide their own status.
When calling `ctx.throw`, you're allowed to provide an error object and a
status code. The status code is later set as the `status` property of the error
object. If no status code is provided, it defaults to 500. However, this
happens even if the error object already had a `status` property.

This commit allows an error's pre-existing `status` property to be used in
conjunction with `ctx.throw`.

If the status code is below 500, the error message will be exposed to the user
in the HTTP response. It would be nice to have some Error subclasses that
always have the same status code, because then we could just write
`ctx.throw(new WhateverError())`, and define which 4xx error code we want in
the definition of `WhateverError` itself. If, for example, an
`AuthenticationError` is always meant to go along with a 401, then it would be
nice to just have that knowledge in the class definition.
2014-03-06 22:54:25 -05:00
TJ Holowaychuk
b1f0abd16d Revert "add response.charset accessor and ctx.charset alias"
This reverts commit 94413b1bd4.
2014-03-06 18:05:01 -08:00
TJ Holowaychuk
c50012a636 Merge pull request from dead-horse/issue224-host-confused
add request.hostname(getter), fixed 
2014-02-26 10:54:40 -08:00
Robert Sköld
e77e5a4bdc Debug name koa:context -> koa:request 2014-02-26 09:51:45 +01:00
dead_horse
72a9b69146 add request.hostname(getter), fixed
make request.host and request.hostname work as node url lib
http://nodejs.org/api/url.html#url_url
this commit will change older request.host(getter)
2014-02-26 14:03:05 +08:00
Jonathan Ong
cb532b7bef this.writable to check if the socket is writable
because node sucks haha
2014-02-15 02:06:08 -08:00
TJ Holowaychuk
785aba879c add request.charset 2014-02-14 09:38:59 -08:00
TJ Holowaychuk
94413b1bd4 add response.charset accessor and ctx.charset alias 2014-02-14 09:33:10 -08:00
TJ Holowaychuk
08149052fa change ctx.length and ctx.type to always delegate to response object [breaking change] 2014-02-14 09:16:39 -08:00
Jonathan Ong
c7ff0e2ac1 response.body: fix html content sniffing for strings
closes 
2014-02-13 18:35:25 -08:00
TJ Holowaychuk
aa08845c70 remove app.jsonSpaces setting. Closes 2014-01-31 18:39:47 -08:00
Jonathan Ong
ea5757ff57 remove app.keys getter/setter
closes 
2014-01-31 16:09:29 -08:00
Jonathan Ong
c5655e093a bump cookies to 0.4.0
no longer need to do that keygrip stuff, though i’m more inclined to
remove all the error checking.
2014-01-31 13:52:27 -08:00
TJ Holowaychuk
3a50280445 Merge pull request from koajs/fix/ctx.onerror
context.onerror: fix response handling
2014-01-24 15:03:02 -08:00
Jonathan Ong
2bc3bb7327 this.respond=false for bypassing koa's response handling
closes 
2014-01-24 14:38:40 -08:00
Jonathan Ong
2d1147ed21 context.onerror: fix response handling
closes 
2014-01-24 14:29:57 -08:00
TJ Holowaychuk
0610a841df change ctx.throw() to no longer .expose 5xx errors. Closes 2014-01-20 18:44:07 -08:00
pana
30d200dc09 remove the vary method from request object 2014-01-17 18:19:51 +08:00
Jonathan Ong
ea1a631bb1 bump finished and mocha 2014-01-16 22:33:02 -08:00
TJ Holowaychuk
3bb7a63b77 ocd 2014-01-13 06:36:49 -08:00
TJ Holowaychuk
53b1b8133c refactor with delegation utility 2014-01-13 06:36:10 -08:00
TJ Holowaychuk
26fb6a138a add ctx.host= delegate 2014-01-07 17:22:46 -08:00
jeromew
93351bf845 Add req.host= 2014-01-07 21:09:01 +00:00
Veselin Todorov
6cd4c776f8 context.throw supports Error instances 2014-01-04 10:28:24 +02:00
Jonathan Ong
3eb894ee85 res: 205 is a no body response code too!
not sure anyone cares enough about this for a test. plus, it’ll still
“work”
2013-12-30 22:25:44 -08:00
TJ Holowaychuk
dc96d9828b refactor Response#status= 2013-12-30 10:04:34 -08:00
TJ Holowaychuk
41502429de Merge pull request from koajs/404
better 404 handling
2013-12-30 10:02:23 -08:00
Jonathan Ong
e71937491b refactor: remove unused argument 2013-12-29 22:33:59 -08:00
Jonathan Ong
b7b1c0fd44 better 404 handling 2013-12-29 22:26:19 -08:00
Jonathan Ong
51da356a5f debug: check for fn._name as well 2013-12-29 16:04:06 -08:00
TJ Holowaychuk
7c3181e4d7 fix ctx.inspect() after previous commit
otherwise .body will be missing
2013-12-29 11:20:51 -08:00
TJ Holowaychuk
14fe56e632 add explicit .toJSON() calls to ctx.toJSON() 2013-12-29 10:19:21 -08:00
TJ Holowaychuk
88fb4c841d remove trailing comma 2013-12-29 05:46:12 -08:00
Jonathan Ong
20615b808d refactor: move .is to type-is 2013-12-27 18:56:09 -08:00
Jonathan Ong
7fe4133b4a refactor: move content negotiation to accepts 2013-12-27 18:56:02 -08:00
Jonathan Ong
0d9336622c use yield *next internally 2013-12-22 14:48:28 -08:00
mako-taco
9fe483ca76 handle manually written responses 2013-12-22 14:46:36 -08:00
TJ Holowaychuk
87c03aff61 add support for .throw(status, msg). Closes 2013-12-20 15:34:16 -08:00
Jonathan Ong
879293f548 use on-socket-error 2013-12-20 14:39:53 -08:00
Jonathan Ong
61d437d746 remove next in callback for now
revisit mounting later
2013-12-19 23:13:37 -08:00
Jonathan Ong
38d5bad4d1 bumpity boop co 2013-12-19 22:33:35 -08:00
Jonathan Ong
938a67c94f lint: remove unused requires
duh.
2013-12-19 21:16:19 -08:00
Jonathan Ong
34104c9af3 refactor: allow any streams with .pipe method 2013-12-19 21:14:47 -08:00
TJ Holowaychuk
70971dcb53 add GeneratorFunction assertion for app.use(). Closes
breaks old old shit but thats ok, super early in the game
2013-12-19 10:03:08 -08:00
TJ Holowaychuk
171892c669 fix: cleanup socker error handler on response 2013-12-19 08:53:48 -08:00
Eivind Fjeldstad
ddde5f96ef add deprecation warning for ctx.error
Didn't notice the change until now. A warning would be useful
2013-12-19 11:48:32 +01:00
TJ Holowaychuk
1769f9c431 add socket error-handling. Closes 2013-12-17 17:37:35 -08:00
Jonathan Ong
0c330ffb1a lint: remove unused references, fix global leak 2013-12-09 01:53:18 -08:00
TJ Holowaychuk
e78349a73d refactor ctx.toJSON() to recurse. Closes 2013-12-02 09:08:01 -08:00
TJ Holowaychuk
a2582e7aa3 change req.is() to return the canonical mime type 2013-11-28 12:47:23 -08:00
TJ Holowaychuk
5dfadba96f remove null return from .is() 2013-11-28 12:39:45 -08:00
TJ Holowaychuk
48601ea7d8 add matchesMime() util 2013-11-28 12:38:35 -08:00
TJ Holowaychuk
271d921c41 change an .is() example
text/* already covers it
2013-11-28 12:29:28 -08:00
Jonathan Ong
8717a3ad2b req.is(): make better
closes  and 
2013-11-28 00:13:16 -08:00
TJ Holowaychuk
309f2ac00e add debug() for .listen() and .keys= 2013-11-26 21:26:05 -08:00
Jonathan Ong
e447e731b6 req.acceptsLanguage - default to first type fi header not set 2013-11-26 14:52:24 -08:00
Jonathan Ong
c24ab00b23 req.acceptsCharsets - default to first type if header not set 2013-11-26 14:49:07 -08:00
TJ Holowaychuk
8e10f12d38 add ctx.remove() and res.remove(). Closes 2013-11-24 05:06:35 -08:00
Jonathan Ong
1d38d4acd1 req.accepts: default to first 'type' 2013-11-20 18:00:24 -08:00
Jonathan Ong
5ae3f4eb30 req.acceptsEncodings: default to 'identity' 2013-11-20 17:46:11 -08:00
Jonathan Ong
9d7dd437d7 context delegates: response.lastModified and response.etag
only doing setters because i think getters would be pretty confusing.
2013-11-20 14:09:49 -08:00
Jonathan Ong
1dd1d02db0 app.respond: support 205 status codes as no-content
pretty new to me, but it’s basically the same as 204
2013-11-19 22:20:17 -08:00
Jonathan Ong
28ca80758b ctx.search and ctx.request.search 2013-11-18 19:29:29 -08:00
Jonathan Ong
7d9c6ba66c context: .error() -> .throw()
.error() still works for compatibility, but it will be removed in the
future. closes 
2013-11-18 17:38:12 -08:00
Jonathan Ong
b88babe5ee refactor context: move the non-delegated properties up 2013-11-18 17:33:41 -08:00
Jonathan Ong
9407d7776c context: cross-reference request and response 2013-11-18 14:10:11 -08:00
TJ Holowaychuk
cb682ed904 add body.close check for HEAD requests 2013-11-15 11:33:14 -08:00
TJ Holowaychuk
27d1336af5 Merge pull request from koajs/keygrip
add keygrip support
2013-11-15 11:31:23 -08:00
TJ Holowaychuk
f3a6f6ae39 fix stream leak on HEAD. Closes 2013-11-15 10:49:28 -08:00
TJ Holowaychuk
f4b7f279ea ocd 2013-11-15 10:09:56 -08:00
Jonathan Ong
0362c8e457 add app.keys support 2013-11-15 10:04:07 -08:00
Jonathan Ong
18c2cd1dac this.originalUrl && this.request.originalUrl 2013-11-14 14:18:05 -08:00
TJ Holowaychuk
d23ad1a024 add .body to Response#inspect() 2013-11-14 11:34:55 -08:00
TJ Holowaychuk
35a0c1d2bb add {request,response,context}#toJSON() 2013-11-14 11:30:56 -08:00
TJ Holowaychuk
db22fba86d Merge branch 'master' of github.com:koajs/koa 2013-11-14 11:23:17 -08:00
TJ Holowaychuk
64fa0b5c2a Merge pull request from koajs/expose-proto
Expose proto
2013-11-14 11:23:10 -08:00
TJ Holowaychuk
d247e7835c Merge branch 'master' of github.com:koajs/koa 2013-11-13 21:11:28 -08:00
Jonathan Ong
e51e85e0fc response.etag: remove getter for now
until we figure out a good way to return both weak and strong validators
2013-11-13 21:04:40 -08:00
TJ Holowaychuk
088fcfd3a6 refactor res.etag= regexp 2013-11-13 20:48:57 -08:00
Jonathan Ong
2f74207e6c response.etag and response.lastModified 2013-11-13 19:59:49 -08:00
Jonathan Ong
0be1442111 expose app-specific prototypes, cleanup/fix tests 2013-11-13 18:41:40 -08:00
TJ Holowaychuk
93f1bce66f fix ctx.ip
need tests for this
2013-11-13 13:17:16 -08:00
TJ Holowaychuk
c699c75c52 add koa Request / Response objects and delegation. Closes 2013-11-13 09:01:15 -08:00
Jonathan Ong
ee6dce83af ctx.redirect(): only set status code if not already a valid redirect status code
specifically 3xx codes except for 304. closes 
2013-11-08 16:25:03 -08:00
TJ Holowaychuk
3dd172d032 remove content-negotiation accessor methods, replace with method equivalents 2013-11-08 15:16:51 -08:00
TJ Holowaychuk
cf580dbaf3 remove trailer methods
less common than .auth which we removed as well but we can
add them back if it becomes a common request
2013-11-08 14:40:58 -08:00