1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-24 08:09:08 -05:00
Commit graph

1959 commits

Author SHA1 Message Date
Leo Kettmeir
b851b3ab74 fix: check if BroadcastChannel is open before sending (#17366)
Fixes #16978
2023-01-13 11:20:17 -05:00
Bartek Iwańczuk
8a040952cb test: fix flaky deno_land_unsafe_ssl test (#17357) 2023-01-13 11:20:16 -05:00
Leo Kettmeir
32e9299e32 fix: don't panic on resolveDns if unsupported record type is specified (#17336)
Fixes #14373
2023-01-13 11:20:15 -05:00
Nayeem Rahman
3545bff678 fix(watch): preserve ProcState::file_fetcher between restarts (#15466)
This commit changes "ProcState" to store "file_fetcher" field in an "Arc",
allowing it to be preserved between restarts and thus keeping the state
alive between the restarts. File watchers for "deno test" and "deno bench"
now reset "ProcState" between restarts.
2023-01-13 11:20:14 -05:00
Bartek Iwańczuk
1c2db072b5 fix(npm): allow to read package.json if permissions are granted (#17209)
This commit changes signature of "deno_core::ModuleLoader::resolve" to pass
an enum indicating whether or not we're resolving a specifier for dynamic import.

Additionally "CliModuleLoader" was changes to store both "parent permissions" (or
"root permissions") as well as "dynamic permissions" that allow to check for permissions
in top-level module load an dynamic imports.

Then all code paths that have anything to do with Node/npm compat are now checking
for permissions which are passed from module loader instance associated with given
worker.
2023-01-13 11:20:14 -05:00
David Sherret
1640f984fa fix(install): should always include --no-config in shim unless --config is specified (#17300)
Closes #17294
2023-01-13 11:20:13 -05:00
Bartek Iwańczuk
ce8acee44d refactor(permissions): add PermissionsContainer struct for internal mutability (#17134)
Turns out we were cloning permissions which after prompting were discarded,
so the state of permissions was never preserved. To handle that we need to store
all permissions behind "Arc<Mutex<>>" (because there are situations where we
need to send them to other thread).

Testing and benching code still uses "Permissions" in most places - it's undesirable
to share the same permission set between various test/bench files - otherwise
granting or revoking permissions in one file would influence behavior of other test
files.
2023-01-13 11:20:12 -05:00
David Sherret
ab07129ee7 fix(npm): handle declaration file resolution where packages incorrectly define "types" last in "exports" (#17290)
Closes #17279
2023-01-13 11:20:12 -05:00
David Sherret
f1ff5edc42
fix: upgrade deno_ast to 0.23 (#17269)
Closes #17172
Closes #15669
Closes #8529
2023-01-05 13:06:22 +01:00
Asher Gomez
63ca68d058
fix(permissions): process URL in Deno.FfiPermissionDescriptor.path for revoke() and request() (#17094)
Previously, `Deno.permissions.[revoke|request]()` wouldn't correctly
process the `path: URL` when `name` was `ffi`. This change fixes that
behaviour and adds a new function, `formDescriptor()`, to ensure `URL`
arguments are consistently handled across
`Deno.permissions.[query|revoke|request]()`.
2023-01-05 13:06:21 +01:00
Fenix
211a8b438a
fix(cli): bundle command support shebang file (#17113) 2023-01-05 13:06:21 +01:00
David Sherret
2fee8394a9
chore: update copyright year to 2023 (#17247)
Yearly tradition of creating extra noise in git.
2023-01-05 13:05:49 +01:00
Bartek Iwańczuk
0904665f89
fix(lsp): less agressive completion triggers (#17225)
Closes https://github.com/denoland/deno/issues/17056
Closes https://github.com/denoland/deno/issues/17055
2023-01-05 13:05:49 +01:00
Bartek Iwańczuk
b9768e2338
fix(lsp): completions for private variables (#17220) 2023-01-05 13:05:49 +01:00
Bartek Iwańczuk
4a1a6b7985
fix(lsp): "Add all missing imports" uses correct specifiers (#17216)
This commit fixes "Add all missing imports" quick fix; before
it was replacing all occurrences with the same specifier. Now
every line returned from TSC is processed individually.
2023-01-05 13:05:49 +01:00
Bartek Iwańczuk
2b15b07753
feat(unstable): Add Deno.Conn.ref()/unref() (#17170)
This commit adds "Deno.Conn.ref()" and "Deno.Conn.unref()" methods.

These methods can be used to make connection block or not block the
event loop from finishing. Refing/unrefing only influences "read" 
operations - ie. scheduling writes to a connection _do_ keep event 
loop alive.

Required for https://github.com/denoland/deno/issues/16710
2023-01-05 13:05:48 +01:00
Kamil Ogórek
3baf1a4bd3
feat(unstable): Add "Deno.osUptime()" API (#17179)
This PR adds support for `Deno.osUptime` which reports number of seconds
since os was booted. It will allow us to be compatible with Node's `os.uptime` -
https://nodejs.org/api/os.html#osuptime

Partially based on
https://docs.rs/uptime_lib/latest/src/uptime_lib/lib.rs.html
2023-01-05 13:05:48 +01:00
Bartek Iwańczuk
127b68df39
fix(core): run macrotasks and next ticks after polling dynamic imports (#17173)
This commit fixes handling of rejected promises in dynamic imports
evaluation.

Previously we were running callbacks for next ticks and macrotasks
_before_ polling
dynamic imports and checked for unhandled rejections immediately after.
This is wrong,
as `unhandledrejection` event is dispatched and its callbacks are run as
macrotasks.

This commit changes order of actions performed by the event loop to
following:
- poll async ops
- poll dynamic imports
- run next tick callbacks
- run macrotask callbacks
- check for unhandled promise rejections
2023-01-05 13:05:16 +01:00
Kamil Ogórek
36a936c5aa
fix(ext/fetch): Guard against invalid URL before its used by reqwest (#17164) 2023-01-05 13:05:16 +01:00
Kamil Ogórek
e54cede195
fix(core): Do not print errors prop for non-AggregateError errors (#17123)
This commit fixes formatting of JSError with "errors" property. Before this
commit all instances of "Error" were treated as if they were "AggregateError"
if they had "errors" property. After this commit only actual instances of 
"AggregateError" are formatted in such a way, while instances of "Error"
that have "errors" property are formatted without showing details of "errors".
2023-01-05 13:05:16 +01:00
David Sherret
008cd7d878
fix(lsp/format): language formatter used should be based on language id (#17148)
Closes #11897
2023-01-05 13:05:15 +01:00
David Sherret
f9be46cd6c
fix: ignore local lockfile for deno install and uninstall (#17145)
Closes #17116
2023-01-05 13:04:39 +01:00
Luca Casonato
9cd9a68b00
fix(ext/http): close stream on resp body error (#17126)
Previously, errored streaming response bodies did not cause the HTTP
stream to be aborted. It instead caused the stream to be closed gracefully,
which had the result that the client could not detect the difference
between a successful response and an errored response.

This commit fixes the issue by aborting the stream on error.
2023-01-05 13:04:38 +01:00
Kamil Ogórek
faa4e1b7cc
fix(cli): allow for specifying noErrorTruncation compiler option (#17127)
Fixes https://github.com/denoland/deno/issues/16568
2023-01-05 13:04:38 +01:00
Leo Kettmeir
69997a9ae2
fix: display URL in invalid URL error (#17128) 2023-01-05 13:04:37 +01:00
Kamil Ogórek
2ebc91c16a
fix(cli): do not clear screen for non-TTY environments in watch mode (#17129) 2023-01-05 13:04:00 +01:00
Bartek Iwańczuk
8df1210b63
fix(npm): conditional exports with --node-modules-dir (#17111)
This commit fixes conditional exports in `require()` implementation
if `--node-modules-dir` flag is used.
2023-01-05 13:04:00 +01:00
Luca Casonato
a9c0c20d1c
test(ext/fetch): fix test in release mode (#17125) 2023-01-05 13:03:42 +01:00
Luca Casonato
c059c12a1e
fix(ext/fetch): handle errors in req body stream (#17081)
Right now an error in a request body stream causes an uncatchable
global promise rejection. This PR fixes this to instead propagate the
error correctly into the promise returned from `fetch`.

It additionally fixes errored readable stream bodies being treated as
successfully completed bodies by Rust.
2023-01-05 13:03:42 +01:00
David Sherret
b3eed3af79
fix(runtime): Deno.memoryUsage().rss should return correct value (#17088)
This commit changes implementation of "Deno.memoryUsage()" to return
correct value for "rss" field. To do that we implement a specialized function
per os to retrieve this information.
2023-01-05 13:03:41 +01:00
linbingquan
eb27ea6c58
chore: update to Rust 1.66.0 (#17078) 2023-01-05 13:03:11 +01:00
David Sherret
6acd9ebb83
fix(lint): column number for pretty reporting was off by 1 (#17107)
Closes #17086
2023-01-05 13:03:11 +01:00
Bartek Iwańczuk
2c1d2459e5
fix(repl): errors shouldn't terminate repl (#17082)
This commit changes REPL to never surface errors coming
from code execution, but instead print them as errors
to the REPL itself.
2023-01-05 13:02:43 +01:00
David Sherret
98e7c91be4
fix(npm): improve exports resolution when type checking (#17071)
Closes #17012
2023-01-05 13:02:42 +01:00
Leo Kettmeir
50c7526526
fix: re-add Response.json static method (#17061)
Same as #16040
2022-12-15 10:33:19 -05:00
David Sherret
9e9e8f1e38
fix: upgrade to TS 4.9.4 (#17048) 2022-12-14 13:00:51 -05:00
Bartek Iwańczuk
435948e470
feat(repl): support npm packages (#16770)
Co-authored-by: David Sherret <dsherret@gmail.com>
2022-12-13 13:53:32 +01:00
Leo Kettmeir
5d9bb8b4b0
feat: support createNew in Deno.writeFile (#17023) 2022-12-13 05:12:49 +01:00
Leo Kettmeir
a2ba573e77
fix: default to "inherit" for Deno.Command#spawn()'s stdout & stderr (#17025) 2022-12-13 05:12:19 +01:00
Bartek Iwańczuk
4a17c93088
feat: add --inspect-wait flag (#17001)
This commit adds new "--inspect-wait" flag which works similarly
to "--inspect-brk" in that it waits for inspector session to be
established before running code. However it doesn't break on the first
statement of user code, but instead runs it as soon as a session
is established.
2022-12-12 15:33:30 +01:00
Geert-Jan Zwiers
890b065310
feat(cli): support deno bench in the config file (#16608)
This PR adds the ability to set `include/exclude` fields for `deno
bench` in the configuration file.
2022-12-10 02:30:47 +01:00
sigmaSd
4eb8e875fd
feat(init): Generate main_bench.ts by default (#16786)
This commit changes "deno init" to generate "main_bench.ts" file
which scaffold two example bench cases.
2022-12-10 00:34:08 +01:00
Bartek Iwańczuk
6794d9fe5d
feat(init): Use jsonc for configuration file (#17002)
Generate "deno.jsonc" instead of "deno.json" when running "deno init"
subcommand.
2022-12-09 23:55:03 +01:00
David Sherret
653aebfa1a
fix: respect the --quiet flag in more cases (#16998) 2022-12-09 10:54:24 -05:00
Bartek Iwańczuk
cb6700fa5a
unstable: remove Deno.spawn, Deno.spawnSync, Deno.spawnChild APIs (#16893)
This commit removes three unstable Deno APIs:
- "Deno.spawn()"
- "Deno.spawnSync()"
- "Deno.spawnChild()"

These APIs were replaced by a unified "Deno.Command" API.
2022-12-09 16:43:36 +01:00
David Sherret
01afb672e1
chore: fix pty_complete_imports test (#16992)
This test doesn't run on the CI.
2022-12-08 16:56:47 +00:00
David Sherret
91443bbc0b
fix(compile): ensure import map is used when specified in deno config file (#16990)
Closes #14246
2022-12-08 11:50:09 -05:00
Bartek Iwańczuk
a6b5d05311
feat(init): Generate deno.json by default (#16389)
Updates `deno init` subcommand to create a `deno.json` when initializing
a new project.

Slightly changes the output, to make it more readable.
2022-12-08 06:34:28 +01:00
Roj
44b2b950fd
feat(cli): support configuring the lock file in the config file (#16781)
This allows the user to completely opt out from the lock file or rename
it without having to use `--no-lock` and/or `--lock` in all commands.

## Don’t Use Lock File

```json
{
  "lock": false
}
```

## Use Lock File With a Different Name

```json
{
  "lock": "deno2.lock"
}
```

The CLI args `--no-lock` and `--lock` will always override what is in
the config file.

Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2022-12-08 00:13:45 +01:00
Bartek Iwańczuk
1a472ad06b
feat(repl): run "deno repl" with no permissions (#16795)
This commit changes "deno repl" command to run with no permissions by
default and accept "--allow-*" flags. 

This change is dictated by the fact that currently there is no way to
run REPL with limited permissions. Technically it's a breaking 
change in the CLI command, but there's agreement in the team 
that it has merit and it's a good solution.

Running just "deno" command still starts the REPL with full permissions
allowed, but now a banner is printed to inform users about that:
2022-12-07 20:21:18 +01:00