Commit graph

106 commits

Author SHA1 Message Date
Martin Iwanowski
327b65cb6b Use node 7+ WHATWG parser for hostname, fixes #1002 (#1004)
* Use node 7+ WHATWG parser for hostname, fixes #1002

* only use URL if host is IPv6, expose parsed URL

* catch invalid URLs, memoize empty obj

* hostname returns empty string when URL throws
2017-06-20 09:57:30 -07:00
Thiago Lagden
ee5af59f1f replace apply by spread syntax (#971) 2017-04-23 16:14:16 -07:00
jongleberry
e9d7abaf79 res: use http.ServerResponse._header when accessors exist (#930)
* Don't use http.ServerResponse._header when accessors exist

Structure of http.ServerResponse._header will change in future
Node versions. Avoid reading and setting it directly when
helpers exist.

* Add new header test case

* make things a little more strict
2017-03-07 22:59:24 -08:00
fengmk2
e452b68bd9 feat: set err.headerSent before app error event emit (#919) 2017-02-28 10:52:54 +08:00
Lee Bousfield
a440425dc2 Add support for headers in errors 2016-03-12 17:46:35 -07:00
Lee Bousfield
6a147726bd Add support for flushing headers 2016-03-03 21:01:56 -07:00
Michaël Zasso
a157937969 lib: fix style issues 2015-10-13 09:23:57 +02:00
Robert Sköld
e900f0a44a Use shorthand functions
closes #519
2015-10-12 00:00:41 -07:00
Tejas Manohar
ed19e67055 refactor to use ES6 template strings
replace string interp w/ templates in core

use string templating es6 in benchmarks

template strings in tests dir
2015-10-11 21:22:33 -07:00
Tejas Manohar
9f27c1c414 refactor to use ES6 const
change var to const for static require()'d modules

make constant var references in app use const keyword

refactor context to use es6 constants

refactor request to use es6 constants, let block-scope coming next

use const in response object for static refs

make context tests use es6 constants

experimental unit tests -> const

use const for static references in unit test over req

use const for static refs in res tests

update app tests to use const for static refs

make the context test use es6 constants for static refs

use constants in the README
es6 constants seem to work in --harmony on 0.12 too

use const's for immutable refs in benchmarks

ensure all JS files have blank newline at top

add newline to bottom of file where missing

add a webchat freenode link to irc channel

no need to assign error in catch{}-able test

app.silent option to turn off err logging

keep test env logging for backwards-compat
2015-10-11 21:22:33 -07:00
Tejas Manohar
0b1b49cb8a use strict in all .js files
closes #508
2015-10-11 16:08:32 -07:00
C.T. Lin
85860587cc implement ctx.origin 2015-09-20 23:49:37 +08:00
dead_horse
b6aea969f8 non-error thrown, fixed #432 2015-04-14 10:34:55 +08:00
dead_horse
5a3f32dfdd Add res.append(field, val) to append headers 2015-01-26 02:20:08 +08:00
fengmk2
3e66157472 ctx.request.href: get full request url, include protocol, host and originalUrl
Useful on those scenes need current full request url, like `OAuth`.
2014-12-27 14:17:00 -08:00
dead_horse
efdd7d3716 less strict for status, close #350
add res.message[=]
2014-10-09 23:20:53 +08:00
Jonathan Ong
2f0fe55ae3 .throw() -> http-errors, .assert() -> http-assert 2014-09-20 10:46:28 -07:00
Ian Storm Taylor
5931714bd8 make the second argument to throw properly optional 2014-08-12 13:19:14 -07:00
dead_horse
f6626967b2 ignore props.status in ctx.throw 2014-08-09 13:38:54 +08:00
Ian Storm Taylor
bcac468f7c add the ability to pass props to context.throw 2014-08-08 12:37:04 -07:00
TJ Holowaychuk
f9eb219ecf Merge pull request #330 from dead-horse/onerror-status
Onerror status
2014-08-07 19:04:10 -07:00
dead_horse
fa5948cca3 do not expose when err.status not valid 2014-08-08 10:02:24 +08:00
dead_horse
5ca9f451a7 alias request.headers as request.header 2014-08-07 00:04:21 +08:00
dead_horse
e2f61595b8 fix err.status invalid lead to uncaughtException 2014-08-06 21:32:35 +08:00
Jonathan Ong
1605f33760 add context.inspect(), cleanup app.inspect()
closes #323 closes #250
2014-08-02 18:24:53 -07:00
Jonathan Ong
690604b6d2 remove this.error()
it’s been deprecated for long enough
2014-07-06 02:36:12 -07:00
Jonathan Ong
4a6b49cd30 delegate: remove this.append() 2014-06-07 03:48:03 -07:00
Jonathan Ong
dc59a604e5 Merge pull request #292 from koajs/context-delegate
context: delegate etag/last-modified
2014-06-07 03:39:19 -07:00
Jonathan Ong
01dd6a33c5 context: delegate etag/last-modified 2014-06-05 16:19:29 -07:00
dead_horse
4979077562 assert non-error obj pass to app.onerror, fixed #287 2014-06-04 14:16:25 +08:00
dead_horse
f76268ba58 remove req.host=, fix docs 2014-05-05 12:45:33 +08:00
TJ Holowaychuk
4ff54e5c13 ocd 2014-05-01 16:25:08 -07:00
TJ Holowaychuk
94dd87741e ocd 2014-04-24 17:58:37 -07:00
dead_horse
6a2ed3e6eb assert object type in ctx.onerror 2014-04-25 08:34:11 +08:00
dead_horse
5de9d962a0 remove unused debug 2014-04-25 00:07:37 +08:00
TJ Holowaychuk
dfe8e95be4 remove ctx.inspect() implementation. Closes #164
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
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
dead_horse
72a9b69146 add request.hostname(getter), fixed #224
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
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
2d1147ed21 context.onerror: fix response handling
closes #199
2014-01-24 14:29:57 -08:00
TJ Holowaychuk
0610a841df change ctx.throw() to no longer .expose 5xx errors. Closes #197 2014-01-20 18:44:07 -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
Veselin Todorov
6cd4c776f8 context.throw supports Error instances 2014-01-04 10:28:24 +02: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