Commit Graph

356 Commits (master)

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
Martin fl0w Iwanowski 012587889d added setters for header and headers, fixes #991 2017-06-20 09:57:07 -07:00
ziyunfei 13c7ca6139 res.type=: remove no-op code (#980) 2017-05-05 10:27:11 -07:00
Thiago Lagden ee5af59f1f replace apply by spread syntax (#971) 2017-04-23 16:14:16 -07:00
jongleberry 4816cd76f0 :arrow-up: deps
closes #939
2017-03-14 01:55:15 -07:00
Lee Bousfield e6539e1cf2 Return middleware chain promise from `callback()` (#848)
The v2.x version of 8836cd3 on master.
2017-03-07 23:05:28 -08:00
jongleberry e812339033 docs: create v2 Migration document (#931)
* Give v2 migration documentation its own document. Incorporate docs from #533

* Fix mis-capitalization of Koa

* Remove unnecessary Dependency section

* Hint at koa-convert enabled compatibility

* Add section on constructing with new

* Clarify es6 constructors are used

* Fix varying capitalization

* Restore mistakenly removed Dependency changes section

* v1.x should not receive feature updates

* Add next() to signature, add missing backticks

* docs++
2017-03-07 22:59:42 -08: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
Ilkka Oksanen d740d9b2b1 Update the link to migration instructions (#916) 2017-02-26 21:41:14 +08:00
fengmk2 a7c4236728 fix: add named arrow function for request and response handlers (#805)
cherry-pick #804
2017-02-25 00:06:41 -06:00
Rui Marinho 7ae9c3e109 Fix malformed content-type header causing exception on charset get (#898) 2017-02-13 11:05:35 +08:00
iamchenxin 2db3b1b49a Fix typo for accepts(). (#863)
it return {String|Array|false}, never return undeifined.
2016-12-07 00:22:11 +08:00
Avindra Goolcharan 2a16426afe nit: fix grammar in generator deprecation warning (#834)
This fixes the tense of `will been` to `will be`
2016-10-17 17:45:06 +02:00
Adam Lau 21c0d823dd fix: subdomains should be [] if the host is an ip (#808)
Closes: #775
2016-09-07 16:21:32 +08:00
Yiyu He 4338cb6c14 [breaking change] don't bind onerror to context (#800) 2016-08-29 11:18:30 +08:00
jongleberry 2abed6ec75 fix: res.flushHeaders() (#795)
* fix: res.flushHeaders()

* remove arg to flush headers

* fix tests for node v4 and v5
2016-08-10 12:15:48 -07:00
Yiyu He 23903e7ef4 fix(response): correct response.writable logic (#782) 2016-07-24 01:20:29 +08:00
Martin Iwanowski d47d0f9619 fix broken link, fixes #741 (#745) 2016-05-27 07:41:22 +02:00
PlasmaPower 54e58d3523 req: Cache the request IP 2016-04-03 19:30:06 -07:00
Martin Iwanowski 0ac4ff00c6 Convert generator-mw with deprecation warning 2016-03-22 07:35:05 +01:00
dead_horse 39f058e11c fix cookies' secure detect 2016-03-15 13:57:22 -07:00
Lee Bousfield a440425dc2 Add support for headers in errors 2016-03-12 17:46:35 -07:00
Bartol Karuza 3d15c2409d JSDoc question/suggestion on optional parameters
Hi, Webstorm keeps giving me warnings on the 'redirect' method, because the JSDoc specified two input parameters, both required. There is a JSDoc standard for optional parameters. What is your view on using these in KOA documentation?
http://usejsdoc.org/tags-param.html#optional-parameters-and-default-values

closes #661
2016-03-12 14:22:42 -08:00
Louis DeScioli d74802dc70 Standardizes instances of removeHeader to remove 2016-03-12 14:19:27 -08:00
jongleberry 7373c7eca1 comments: remove vague TODOs
closes #576
2016-03-12 14:11:19 -08:00
Lee Bousfield 6a147726bd Add support for flushing headers 2016-03-03 21:01:56 -07:00
Xiang Gao 897ad7aca8 fix the error message 2016-01-24 12:35:03 +08:00
pana 1e38b13a94 docs: update docs for koa v2
update readme and request, response toJSON method

update readme

update readme

update readme

update readme

update readme

update readme

update docs

update doc

pretty readme

update docs

fix then callback
2016-01-17 16:05:49 -08:00
Yanick Rochon d134fff9e8 Fix issue when app.use() is called with empty value 2015-11-25 12:10:55 +08:00
Nicolae Vartolomei 61f7c6b5c5 Fix param tag on Application.use method 2015-11-14 15:46:29 +02:00
dead_horse 848a9c885b ocd 2015-11-06 00:42:14 +08:00
dead_horse 08057e386a ensure parseurl always working as expected 2015-11-04 15:08:49 +08:00
Slobodan Stojanovic 0470997854 Remove 'TODO' comment for this.res._headers
Node probably doesn't plan to change this so there's no point of having 'TODO' comment in the code.
2015-10-31 19:21:40 +01:00
TJ Holowaychuk 439f051776 Merge pull request #570 from koajs/fix-app-inspect
fix Application.inspect() – missing .proxy value. Closes #563
2015-10-31 11:15:09 -07:00
blaz 3560651bbc Add usage of koa-convert for legacy middleware
closes #565
closes #538
2015-10-30 20:20:00 -07:00
TJ Holowaychuk aa1fbbff4a fix Application.inspect() – missing .proxy value. Closes #563
fix trailing comma
2015-10-29 09:56:15 -07:00
Slobodan Stojanovic b08facb7bd Fix indentation and add .eslint rules
closes #555
2015-10-29 09:55:34 -07:00
Felix Becker ebb4850709 Remove co dependency
closes #558
closes #557

Change tests to use plain functions and promises

Add test

return promise in middleware

Change benchmarks to use plain functions and promises

typeerror
2015-10-27 16:24:25 -07:00
Tejas Manohar ded7a17140 deprecate env-specific logging in v2
closes #561
2015-10-27 16:21:19 -07:00
Slobodan Stojanovic dac250b3af Refactor - EventEmitter is already exported by 'events' module
The 'events' module already exports 'EventEmitter' constructor function - https://github.com/nodejs/node/pull/2921
2015-10-24 17:30:25 +02:00
Slobodan Stojanovic 0df400fa60 Refactor application.js - use arrow function in callback 2015-10-24 16:19:56 +02:00
jongleberry 2e8cdab8bc support async functions
closes #530
closes #415
2015-10-22 16:34:59 -07:00
jongleberry 16db0f60c4 eslint: add no-var rule 2015-10-22 15:46:47 -07:00
Santiago Sotomayor 0c438ed435 unset content-type when the type is unknown
closes #532
closes #536
2015-10-22 15:39:16 -07:00
Michaël Zasso a157937969 lib: fix style issues 2015-10-13 09:23:57 +02:00
Tejas Manohar 132b32b287 get rid of instanceof hack in application constructor 2015-10-13 02:17:47 -05:00
Tejas Manohar 93ade5e2dd refactor Application into a class 2015-10-13 01:19:42 -05:00
Robert Sköld e900f0a44a Use shorthand functions
closes #519
2015-10-12 00:00:41 -07:00
Tejas Manohar 91ecce1d76 use arrow fn to avoid var self = this 2015-10-11 21:22:33 -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 96c1e0998f don't use 'exports', only 'module.exports'
closes #513
2015-10-11 21:18:32 -07:00
Tejas Manohar 0b1b49cb8a use strict in all .js files
closes #508
2015-10-11 16:08:32 -07:00
fengmk2 f875eb0c30 Merge pull request #486 from tejasmanohar/app_silent
app.silent option to turn off err logging
2015-10-09 11:22:58 +08:00
Tejas Manohar 6c19c41c09 keep test env logging for backwards-compat 2015-10-08 19:02:36 -05:00
Tejas Manohar ea4754e332 ensure all JS files have blank newline at top 2015-10-05 18:18:03 -05:00
Tejas Manohar c369b33b23 app.silent option to turn off err logging 2015-10-05 17:51:26 -05:00
C.T. Lin 85860587cc implement ctx.origin 2015-09-20 23:49:37 +08:00
dead_horse 36a933375b fix comment 2015-08-25 16:49:05 +08:00
gyson 1be333ca31 change respond() to a regular function
remove `yield* next` in lib/application, which caused annoy `A promise
was converted into a generator …` message.

benchmark result:
* when bench with native Promise, it has no impact for both stable and
experimental ones.
* when bench with Bluebird, it’s about 5-10% faster than original for
both stable and experimental ones.

closes #472
2015-08-23 13:55:20 -07:00
AlexeyKhristov 8804b7ba6f add this.req check for querystring() 2015-08-22 14:40:36 -07:00
Sterling Williams 391650518f Do not log on expected http errors 2015-08-22 14:39:38 -07:00
Aaron Heckmann 6392ee0407 return same object from request.query
Before this change, calling request.query when there was no querystring
resulted in a new object created and returned each time. If the resulting
object was ever changed, accessing request.query would not reflect it and
cause weird bugs.
2015-05-21 12:55:58 -07:00
dead_horse c8eb5eefb1 make sure helpers return strict string 2015-04-29 01:44:02 +08:00
dead_horse 1c5cb6f691 feat: alias response.headers to response.header 2015-04-23 17:28:31 +08:00
dead_horse b6aea969f8 non-error thrown, fixed #432 2015-04-14 10:34:55 +08:00
fengmk2 dd3a0fcdfa make sure req.host and req.hostname return strict string
Should return empty string when no host present.
2015-03-30 17:44:32 +08:00
fengmk2 8b14b91bae remove body empty detect 2015-03-29 14:40:09 +08:00
fengmk2 1edd6ec69a test: improve test coverage for application and response 2015-03-29 14:40:09 +08:00
Jonathan Ong c5545cd918 add experimental async function support 2015-02-14 17:33:08 -08:00
Douglas Christopher Wilson 9dd99f5da2 Parse Content-Type with "content-type" instead of "media-typer" 2015-02-07 21:24:04 -05:00
Jonathan Ong 5b7587bb7e use Object.setPrototypeOf() instead of __proto__ 2015-02-01 16:39:44 -08:00
Jesus Rodriguez 68843e0cb3 Remove unused imports and exports 2015-01-29 15:39:06 -08:00
Jesús Rodríguez Rodríguez 6c340455f8 Change request's "ips" regex to match others.
So I am in this silly quest of cloning the repo, deleting all the code on it and rewriting it again step by step to pass the tests. It is a acceptable way to learn how koa works.

Anyway, I saw that the regex used in `ips` doesn't match the others on the file, so I thought it would be good to change it.
2015-01-29 17:51:09 +01:00
TJ Holowaychuk 255a39b876 refactor res.append()
OCDOCDOCD
2015-01-27 10:14:57 -08:00
dead_horse 5a3f32dfdd Add res.append(field, val) to append headers 2015-01-26 02:20:08 +08:00
Rui Marinho d108926f46 Fix url.format usage of path on node@0.11.15
node@0.11.15 was released with a patch that adds support for `path` to
url.format
(d312b6d15c).

However, this broke `npm install` for git+ssh urls and as such has been
reverted on io.js, making it work like on node@0.11.14 again.

913addbff5
2015-01-23 02:09:21 +00: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
TJ Holowaychuk e4076ce930 remove x-powered-by. Closes #372 2014-12-04 01:01:57 -08:00
zensh 28ec7892a8 remove unnecessary "require('http')" 2014-11-29 09:42:01 +08:00
dead_horse 57eb6a10df set content-type for redirect when accpect plain 2014-11-27 09:25:44 -08:00
TJ Holowaychuk b854d00363 Merge pull request #366 from MatthewMueller/master
add: ctx.locals as a recommended namespace for passing information to the frontend
2014-11-18 08:19:19 -08:00
Matthew Mueller 6847fe68bd added: ctx.state as the recommended namespace for passing information through middleware and routes. 2014-11-18 00:54:14 -08:00
dead_horse 3f183a196b upgrade co@4 2014-11-17 21:21:00 +08:00
dead_horse eff4886cd8 ocd 2014-11-16 21:52:14 +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
fengmk2 cca2438f64 ctx.attachment support no-ascii filename 2014-09-19 13:46:08 +08:00
TJ Holowaychuk 7b3e3cbad5 add fn assertion to app.use(). Closes #337 2014-08-20 13:28:34 -07:00
Jonathan Ong 9455726c00 finished -> on-finished
removes the writable test because it’s fake and there are tests for
on-finished for this case
2014-08-16 02:58:06 -07:00
Jonathan Ong 920909c546 dethroy -> destroy 2014-08-14 23:34:25 -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