1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-04 17:18:23 -05:00
Commit graph

127 commits

Author SHA1 Message Date
Ryan Dahl
c8fc29fcca
Revert "Respond with 400 on request parse failure" (#4593)
readRequest should not write a response.

This reverts commit 017a611131.
2020-04-02 15:20:17 -04:00
Ryan Dahl
12c6b2395b
Move encode, decode helpers to /std/encoding/utf8.ts, delete /std/strings/ (#4565)
also removes std/encoding/mod.ts and std/archive/mod.ts which are useless.
2020-04-01 15:23:39 -04:00
Khải
fa7929ad2c
fix(file_server): use media_types for Content-Type header (#4555) 2020-04-01 12:51:01 -04:00
木杉
5ac2c4aa2e
fix(#4550): setCookie should append cookies (#4558) 2020-04-01 09:37:11 -04:00
Nayeem Rahman
017a611131
feat(std/http/server): Respond with 400 on request parse failure (#4551) 2020-04-01 10:24:05 +02:00
Kitson Kelly
bced52505f
Update to Prettier 2 and use ES Private Fields (#4498) 2020-03-28 13:03:49 -04:00
Bartek Iwańczuk
30bcf6a2ea
Revert "avoid using same port number for test (#4147)"
Ref #4467

This reverts commit 60cee4f045.
2020-03-24 12:24:58 -04:00
Akshat Agarwal
b8a5c29bf8
BREAKING CHANGE Rename Deno.run's args to cmd (#4444)
This is to avoid confusion with Deno.args which does not include the 
executable to be run.
2020-03-21 17:44:18 -04:00
Yusuke Sakurai
60cee4f045
avoid using same port number for test (#4147) 2020-03-21 09:53:47 -04:00
Nayeem Rahman
b22f48970f
refactor(std/http/server): Remove bad error handling (#4435) 2020-03-20 12:12:27 -04:00
Samrith Shankar
798904b0f2
Add require-await lint rule (#4401) 2020-03-20 09:38:34 -04:00
Nayeem Rahman
35f6e2e45d
fix(std/http): Properly await ops in a server test (#4436) 2020-03-20 09:46:48 +01:00
Nayeem Rahman
b7e6a31a42
fix(std/http): Fix respond error test on Windows (#4408) 2020-03-19 19:15:21 -04:00
Bartek Iwańczuk
3ef34673c9
std(http/server): close open connections on server close (#3679)
Due to structure of "Server" for each open connection there's a pending "read" op. Because connection owned by "Server" are not tracked, calling "Server.close()" doesn't close open connections.

This commit introduces simple tracking of connections for server and ensures owned connections are closed on "Server.close()".
2020-03-19 16:04:26 +01:00
Bartek Iwańczuk
b0b27c4310
refactor: rename Deno.TestDefinition.skip to ignore (#4400) 2020-03-19 10:58:12 +01:00
Bartek Iwańczuk
6e2df8c64f
feat: Deno.test() sanitizes ops and resources (#4399)
This PR brings assertOps and assertResources sanitizers to Deno.test() API.

assertOps checks that test doesn't leak async ops, ie. there are no unresolved
promises originating from Deno APIs. Enabled by default, can be disabled using 
Deno.TestDefinition.disableOpSanitizer.

assertResources checks that test doesn't leak resources, ie. all resources used
in test are closed. For example; if a file is opened during a test case it must be
explicitly closed before test case finishes. It's most useful for asynchronous
generators. Enabled by default, can be disabled using 
Deno.TestDefinition.disableResourceSanitizer.

We've used those sanitizers in internal runtime tests and it proved very useful in
surfacing incorrect tests which resulted in interference between the tests.

All tests have been sanitized.

Closes #4208
2020-03-18 19:25:55 -04:00
Bartek Iwańczuk
1edb20b399
refactor: add no-return-await lint rule (#4384) 2020-03-16 10:22:16 +01:00
Nayeem Rahman
6471d4cfab
refactor(std): Uncomment disabled tests, use skip option (#4378) 2020-03-15 13:03:25 +01:00
dubiousjim
6cc40b0865
BREAKING CHANGE FileInfo.len renamed to FileName.size (#4338) 2020-03-14 22:57:42 -04:00
Lucas De Angelis
cd293f7907
doc(http/server): Add coherence to the docs (#4372)
Functions that returns a server are now documented with "Create",
and functions that launches one are documented with "Start".

Also added documentation for listenAndServe that respects these
changes.

Fixes #4367
2020-03-14 10:17:44 -04:00
Oliver Lenehan
0f6acf2753
fix(std): Use Deno.errors where possible. (#4356) 2020-03-13 21:40:13 -04:00
Nayeem Rahman
55119aaee2
refactor(cli/js/net): Cleanup iterable APIs (#4236)
Listener and UDPConn are AsyncIterables instead of AsyncIterators.
The [Symbol.asyncIterator]()s are defined as generators and the
next() methods are gone.

"Listener/Socket has been closed" errors are now BadResource.
2020-03-10 15:14:22 -04:00
dubiousjim
9a63902db5
Rename readDir -> readdir (#4225) 2020-03-06 08:34:02 -05:00
Yusuke Sakurai
c65d0c63e7
reduce unnecessary output on tests (#4148) 2020-02-27 15:12:04 -05:00
Yusuke Sakurai
942e67c00b
refactor(std/http): move io functions to http/io.ts (#4126) 2020-02-26 10:48:35 -05:00
Yusuke Sakurai
22f88b9f37
fix: [http] Consume unread body and trailers before reading next request (#3990)
- Added `ServerRequest.finalize()`:  consuming all unread body stream and trailers.
  - This is cleanup method for reading next request from same keep-alive connection.
  - Needed when handler didn't consume all body and trailers even after responding.
- refactor: `ServerRequest._bodyStream()`, `ServerRequestBody` are removed.
  - Now using `bodyReader()` and `chunkedBodyReader()` instead.
- fix: Trailers should only be read `transfer-encoding` is `chunked` and `trailer` header is set and its value is valid.
- fix: use `Headers.append()` on reading trailers.
- fix: delete `trailer` field from headers after reading trailers.
- reorg: Several functions related to IO are moved into `http/io.ts`
2020-02-24 22:49:39 -05:00
Bartek Iwańczuk
e1687c0a46
rename Deno.Err -> Deno.errors (#4093) 2020-02-24 15:48:35 -05:00
Yusuke Sakurai
d9886a44d1
fix: [ws] sock shouldn't throw eof error when failed to read frame (#4083) 2020-02-23 11:59:36 -05:00
Bartek Iwańczuk
dd8a109481
refactor: remove unneeded ErrorKinds (#3936) 2020-02-21 10:36:13 -05:00
Maximilien Mellen
90125566bb
Enable TS strict mode by default (#3899)
Fixes #3324 

Co-authored-by: Kitson Kelly <me@kitsonkelly.com>
2020-02-19 15:36:18 -05:00
Yusuke Sakurai
621aeef836
fix: appended CRLF to end of trailer headers (#3989) 2020-02-13 16:05:30 -05:00
木杉
92019498f6
fix(file_server): don't crash on "%" pathname (#3953) 2020-02-11 15:53:09 -05:00
Bartek Iwańczuk
61273085e4
refactor: rewrite tests in std/ to use Deno.test (#3930) 2020-02-11 17:24:27 +01:00
Yusuke Sakurai
e6f204199b
feat: Support HTTP trailer headers for response (#3938) 2020-02-10 11:38:48 -05:00
Bartek Iwańczuk
1c0ffa1383
reenable server tests (#3928) 2020-02-08 14:24:09 -06:00
Yusuke Sakurai
a4bb8bab44 remove non-null assertion operator from std (part2) (#3927) 2020-02-08 14:15:59 -06:00
Yusuke Sakurai
c2986891f6
remove non-null assertion operator from std (part1) (#3900) 2020-02-07 02:23:38 -05:00
Kitson Kelly
145188bcf7
std/http/server::serve aligned to std/http/server::serveTLS (#3881) 2020-02-04 15:15:23 +01:00
Bartek Iwańczuk
e1697421e2
chore: remove std/installer, port installer tests to Rust (#3843) 2020-01-31 17:34:50 +01:00
Bartek Iwańczuk
de5c099b47
feat: deno install in Rust (#3806)
//std/installer couldn't be removed due to bug, but it's now deprecated.
2020-01-30 18:42:39 -05:00
Bartek Iwańczuk
f32c31a0eb dx: descriptive permission errors (#3808)
Before:
```
▶ target/debug/deno https://deno.land/std/examples/echo_server.ts
error: Uncaught PermissionDenied: run again with the --allow-net flag
► $deno$/dispatch_json.ts:40:11
    at DenoError ($deno$/errors.ts:20:5)
    at unwrapResponse ($deno$/dispatch_json.ts:40:11)
    at sendSync ($deno$/dispatch_json.ts:67:10)
    at listen ($deno$/net.ts:170:15)
    at https://deno.land/std/examples/echo_server.ts:4:23
```

```
▶ target/debug/deno --allow-read=/usr https://deno.land/std/examples/cat.ts /etc/passwd
error: Uncaught PermissionDenied: run again with the --allow-read flag
► $deno$/dispatch_json.ts:40:11
    at DenoError ($deno$/errors.ts:20:5)
    at unwrapResponse ($deno$/dispatch_json.ts:40:11)
    at sendAsync ($deno$/dispatch_json.ts:91:10)
```

After:
```
▶ target/debug/deno https://deno.land/std/examples/echo_server.ts
error: Uncaught PermissionDenied: network access to "0.0.0.0:8080", run again with the --allow-net flag
► $deno$/dispatch_json.ts:40:11
    at DenoError ($deno$/errors.ts:20:5)
    at unwrapResponse ($deno$/dispatch_json.ts:40:11)
    at sendSync ($deno$/dispatch_json.ts:67:10)
    at listen ($deno$/net.ts:170:15)
    at https://deno.land/std/examples/echo_server.ts:4:23
```

```
▶ target/debug/deno --allow-read=/usr https://deno.land/std/examples/cat.ts /etc/passwd
error: Uncaught PermissionDenied: read access to "/etc/passwd", run again with the --allow-read flag
► $deno$/dispatch_json.ts:40:11
    at DenoError ($deno$/errors.ts:20:5)
    at unwrapResponse ($deno$/dispatch_json.ts:40:11)
    at sendAsync ($deno$/dispatch_json.ts:91:10)
```
2020-01-27 21:13:17 -05:00
Carl Rosell
11a29fdb44 fix(std/http): update listenAndServe argument type (#3775)
allow same argument type for `listenAndServe` as `serve`.
fixes: #3774
2020-01-24 10:35:23 -05:00
Takashi Idobe
108294deeb change copyrights from 2019 to 2020 (#3733) 2020-01-21 10:01:55 -05:00
Bartek Iwańczuk
23e67eb515
stabilize net Addr (#3709)
Co-authored-by: xiaoxintang <15707971810@163.com>
2020-01-18 21:49:55 +01:00
Bartek Iwańczuk
34b99fec8e
rename dial to connect and dialTLS to connectTLS (#3710) 2020-01-18 18:35:12 +01:00
Kevin (Kun) "Kassimo" Qian
fc077cd315 std/http: allow response body to be string (#3705) 2020-01-17 18:44:35 -05:00
Ry Dahl
a4dde552de
Revert "feat(flags): script arguments come after '--'" (#3681)
Due to complaints about ergonomics and because it breaks shebang on
linux.

This reverts commit 2d5457df15.

BREAKING CHANGE
2020-01-15 19:21:35 -05:00
Ry Dahl
d492c5abe3
feat: Deno.args now does not include script (#3628)
Previously Deno.args was ["script.js", "arg1", "arg2"]
Now it is just ["arg1", "arg2"]
BREAKING CHANGE
2020-01-09 11:37:01 -07:00
Ry Dahl
2d5457df15
feat(flags): script arguments come after '--' (#3621) 2020-01-08 14:59:53 -05:00
Ry Dahl
bfab4ed0df
Happy new year! (#3578) 2020-01-02 15:13:47 -05:00
Kevin (Kun) "Kassimo" Qian
5cf2eb7d18 feat(std/http): make req.body a Reader (#3575) 2020-01-02 12:34:33 -05:00
Nayeem Rahman
e8d82a6348 feat: Add missing mod.ts files in std (#3509)
std/archive/tar.ts:
- Remove FileReader.
- Remove FileWriter.

std/encoding/csv.ts:
- ExtendedParseOptions -> ParseOptions
- HeaderOption -> HeaderOptions
- ParseOptions -> ReadOptions
- readAll() -> readMatrix()

std/encoding/yaml.ts:
- DumpOptions -> StringifyOptions

std/fmt/colors.ts:
- getEnabled() -> getColorEnabled()
- setEnabled() -> setColorEnabled()

std/testing/mod.ts:
- Re-export sibling modules.
2019-12-20 15:21:30 -05:00
木杉
7e116dd70d Support utf8 in file_server (#3495) 2019-12-14 16:03:30 +08:00
木杉
d8e60309d2 feat(file_server): add help & switch to flags (#3489) 2019-12-14 10:01:32 +08:00
Weijia Wang
df7d8288d9 file_server: get file and fileInfo concurrently (#3486) 2019-12-12 15:59:46 +08:00
木杉
7f27f649cc fix: file_server swallowing permission errors (#3467) 2019-12-12 13:05:26 +08:00
Kevin (Kun) "Kassimo" Qian
d146d45861 benchmark: align deno_http and node_http response (#3484) 2019-12-12 13:02:23 +08:00
Kevin (Kun) "Kassimo" Qian
c3c69aff7e fix(std/http): close connection on .respond() error (#3475) 2019-12-12 08:46:03 +08:00
AleksandrukTad
31ddfd5a42 fix: decoding uri in file_server (#3187) 2019-12-10 20:11:55 +08:00
木杉
cfa4f540ba better html for file_server (#3423) 2019-12-02 16:14:25 -08:00
Ry Dahl
c016684653
refactor: reorganize flags (#3389)
- Remove ability to specify run arguments like `--allow-net` after the
  script argument. It's too hacky to make work with clap.
- Remove `--v8-options`, instead use `--v8-flags=--help`
- Give more descriptive names to unit tests in flags.rs
- Assume argv and subcommand into DenoFlags struct so the output of
  flags module is only DenoFlags rather than the tuple (subcommand, flags,
  argv).
- Improve CLI help text
- Make `deno run` specific args like `--allow-net` only show up in 'deno
  help run' instead of as global flags in `deno help`.
- Removes `deno version` to simplify our implementation and be closer to
  clap defaults. `deno -V` now only shows Deno's version and not V8's nor
  TypeScript. `Deno.versions` can be used to see that information.
- Prevent clap from auto-detecting terminal width and attempting to wrap
  text.
2019-11-26 08:06:32 -08:00
Ry Dahl
e6fdb2628f chore: improve examples (#3377) 2019-11-18 22:07:13 -08:00
Bartek Iwańczuk
8f9a942cb9 Use futures 0.3 API (#3358) 2019-11-16 19:17:47 -05:00
Leo Chandra
26bf928d28 fix: std/datetime toIMF bug (#3357) 2019-11-16 08:24:07 -05:00
Kitson Kelly
9837d324a7 Update to TypeScript 3.7 (#3275)
and update to prettier 1.19

Also, update `assert()` and remove not null assertions where possibly
in `cli`.

Closes #3273
2019-11-13 13:42:34 -05:00
Nayeem Rahman
d586f119fa net: Check for closing status when iterating Listener (#3309)
std/http/server.ts: Use listener.next() instead of listener.accept()
2019-11-09 14:40:22 -05:00
Ryan Dahl
97ceea49f5 Add jsdoc for std/http/http_status.ts
The website documentation now supports enums
6f4fb0f5a3
2019-11-08 17:27:09 -05:00
Ry Dahl
709cb3c9ba Fix jsdoc in std/http/server.ts (#3284) 2019-11-07 11:00:27 -08:00
Liam Perlaki
ccc9f1ae5e Allow http server to take { hostname, port } argument (#3233) 2019-11-06 12:18:28 -05:00
Ry Dahl
c04ff22afe
Remove tsconfig files - they are not part of build process (#3262) 2019-11-04 18:13:28 -05:00
Kevin (Kun) "Kassimo" Qian
0644f9c1a6 std/http: add serveTLS and listenAndServeTLS (#3257) 2019-11-04 13:45:29 -05:00
Andy Hayden
f484776384 Use top-level for-await in various places (#3217) 2019-10-28 15:58:35 -04:00
Andy Hayden
aec5a646c9 feat: top-level-for-await (#3212) 2019-10-27 09:04:42 -04:00
Nick Stott
c876d1adb4 Re-enable some tests (#3154)
Ref #3095
2019-10-19 16:55:20 -04:00
Nayeem Rahman
f51dcc12d7 std: Move fs/path to the top-level (#3100) 2019-10-16 14:39:33 -04:00
Ryan Dahl
93f7f00c95
Run deno_std tests in github actions 2019-10-09 17:22:22 -04:00
Ryan Dahl
151ce0266e
Move everything into std subdir 2019-10-09 17:10:09 -04:00