1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-20 22:34:46 -05:00
Commit graph

12894 commits

Author SHA1 Message Date
snek
a01dce3a25
fix: cjs resolution cases (#25739)
Fixes cjs modules being loaded as esm.
2024-09-19 21:10:34 -07:00
Nathan Whitaker
f1ba266613
fix(node): Don't error out if we fail to statically analyze CJS re-export (#25748)
Fixes rsbuild running in deno.

You can look at the test to see what was failing, the gist is that we
were trying to statically analyze the re-exports of a CJS script, and if
we couldn't find the source for the re-exported file we would fail.

Instead, we should just treat these as if they were too dynamic to
analyze, and let it fail (or succeed) at runtime. This aligns with
node's behavior.
2024-09-19 18:37:36 -07:00
Bartek Iwańczuk
5bcea1a9f4
ci: increase timeout to 180 minutes (#25750)
Mac aarch64 is failing with timeout after 150 minutes :( we'll address
it after Deno 2 is released but for now just increase the timeout.
2024-09-20 00:05:20 +00:00
Nathan Whitaker
6a04bbe076
fix(cli): Only set allow net flag for deno serve if not already allowed all (#25743)
Fixes #25740
2024-09-19 15:03:57 -07:00
Bartek Iwańczuk
dad5678baa
v2.0.0-rc.4 (#25728) 2024-09-19 17:59:53 +02:00
Bartek Iwańczuk
dcc95112f7
ci: revert changed to canary uploads (#25733)
All these changes made CI fail consistently with random exit code 1
after successful upload.
2024-09-19 13:54:59 +00:00
Divy Srivastava
e97f00f6f6
fix(ext/node): support x509 certificates in createPublicKey (#25731)
Fixes https://github.com/denoland/deno/issues/25681
2024-09-19 19:12:23 +05:30
Luca Casonato
159ac45a85
fix(ext/console): more precision in console.time (#25723) 2024-09-19 14:41:05 +02:00
Bartek Iwańczuk
236a298f9d
ci: fix 'promote_to_release' script (#25727)
This CI action was using wrong variable to create release directory.
2024-09-19 13:48:06 +02:00
Bartek Iwańczuk
d7aafda243
test: make specs::test::doc_success less flaky (#25726)
On Windows some of these steps were taking more than 1s
2024-09-19 13:47:52 +02:00
Bartek Iwańczuk
51cac074dc
ci: Fix uploading latest canary version (#25725) 2024-09-19 11:46:40 +00:00
Leo Kettmeir
bb45446fa7
fix: don't include extensionless files in file collection for lint & fmt by default (#25721)
When using the `ext` flag, it will still attempt formatting them with
the provided extension
2024-09-19 11:25:48 +02:00
Sean McArthur
68065351df
fix(ext/fetch): fix lowercase http_proxy classified as https (#25686)
While investigating something else, I noticed this typo which treated
`http_proxy` as `Filter::Https`.
2024-09-19 08:03:07 +00:00
Ian Bull
d420829908
refactor(ext/kv): align error messages (#25500)
Towards https://github.com/denoland/deno/issues/25269
2024-09-19 13:20:09 +05:30
Ian Bull
3035cdddb8
refactor(ext/webidl): align error messages (#25625)
Towards https://github.com/denoland/deno/issues/25269
2024-09-19 13:03:32 +05:30
Yusuke Tanaka
0ea71abdef
fix(cli): handle edge cases around exports in doc tests and default export (#25720)
This commit fixes issues with the pseudo test file generation logic,
namely:

- `export`s declared in snippets
- auto import insertion for `default export`

## Case 1: `export`s declared in snippets

In the previous implementation, `export`s declared in snippets were
moved to the top level of the module in the generated pseudo test file.
This is required because `export` must be at the top level.

This becomes a problem if such a `export` has a body, containing a
reference to a local variable. Suppose we extract this snippet from
JSDoc:

```ts
const logger = createLogger("my-awesome-module");

export function sum(a: number, b: number): number {
  logger.debug("sum called");
  return a + b;
}
```

This gets converted into the following invalid code (note that `export
function sum` is moved to the top level, but its body references
`logger` variable which can't be referenced from here):

```ts
export function sum(a: number, b: number): number {
  logger.debug("sum called");
  return a + b;
}

Deno.test("./base.ts$1-7.ts", async () => {
  const logger = createLogger("my-awesome-module");
});
```

To resolve this issue, this commit adds a logic to remove the `export`
keyword, allowing the exported items to stay in the `Deno.test` block
scope, like so:

```ts
Deno.test("./base.ts$1-7.ts", async () => {
  const logger = createLogger("my-awesome-module");

  function sum(a: number, b: number): number {
    logger.debug("sum called");
    return a + b;
  }
});
```

## Case 2: default export

Previously `default export foo` was not captured by the export
collector, so auto import insertion didn't work for this case. To put it
concretely, the following code snippet didn't work when run with `deno
test --doc` because `import foo from "file:///path/to/mod.ts"` didn't
get inserted automatically:

```ts
/**
 * ```ts
 * console.log(foo);
 * ```
 * 
 * @module
 */

const foo = 42;
export default foo;
```

This commit fixes this issue and the above example works fine.

---

Fixes #25718
2024-09-19 00:19:40 -07:00
Ian Bull
486cb18fc5
refactor(ext/webgpu): align error messages (#25719)
Aligns the error messages in the ext/webgpu folder to be in-line with
the Deno style guide.

https://github.com/denoland/deno/issues/25269
2024-09-19 09:14:54 +02:00
Yoshiya Hinosawa
f460188e58
fix(ext/node): don't throw error for unsupported signal binding on windows (#25699) 2024-09-19 12:22:01 +09:00
Ian Bull
282c4c262d
refactor(ext): align error messages (#25496)
Aligns the error messages in the ext/http and a few messages in the
ext/fetch folder to be in-line with the Deno style guide.

This change-set also removes some unnecessary checks in the 00_serve.ts.
These options were recently removed, so it doesn't make sense to check
for them anymore.

https://github.com/denoland/deno/issues/25269
2024-09-18 18:19:45 -07:00
Bartek Iwańczuk
fd23e8ec4f
ci: bump fetch depth to unblock canary uploads (#25716)
Current mac arm canaries are failing to upload because the existing
latest commit hash
is more that 5 commits behind and it's not in the git history.
2024-09-19 00:37:13 +00:00
Bartek Iwańczuk
c3bc692842
v2.0.0-rc.3 (#25704) 2024-09-18 23:21:45 +02:00
Marvin Hagemeister
28dd928962
fix: update nodeModulesDir config JSON schema (#25653)
Ref https://github.com/denoland/deno/issues/25380
2024-09-18 22:38:09 +02:00
Bartek Iwańczuk
315baeb50a
ci: fix uploading canary (#25715)
If a newer version was available the script was exiting with code 1.
2024-09-18 20:17:12 +00:00
Asher Gomez
5057f58145
feat: suggest deno install --entrypoint instead of deno cache (#25228)
Hides `deno cache` from `--help` output.

---------

Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-09-18 19:55:50 +00:00
Leo Kettmeir
a1d0a427e8
feat: default to TS for file extension and support ext flag in more scenarios (#25472)
Closes #11220
Currently does lint, fmt, and repl
2024-09-18 21:15:13 +02:00
Luca Casonato
7a41a93997
fix(ext/http): gracefully handle Response.error responses (#25712)
Fixes #14371
2024-09-18 21:14:40 +02:00
Luca Casonato
ab1e391e1d
feat(ext/node): add rootCertificates to node:tls (#25707)
Closes https://github.com/denoland/deno/issues/25604

Signed-off-by: Satya Rohith <me@satyarohith.com>
Co-authored-by: Satya Rohith <me@satyarohith.com>
2024-09-18 21:14:26 +02:00
Bartek Iwańczuk
5b14c71daf
feat: improve warnings for deprecations and lifecycle script for npm packages (#25694)
This commit improves warning messages for deprecated npm packages
and packages that rely on lifecycle script.
2024-09-18 19:04:25 +00:00
Divy Srivastava
fd860260ad
feat(lint): add no-process-global lint rule (#25709)
Closes https://github.com/denoland/deno/issues/25679
2024-09-18 20:50:42 +02:00
Marvin Hagemeister
f347e779e0
fix: error on unsupported compiler options (#25714)
Update the config schema to error when adding unsupported
`compilerOptions`.

Fixes https://github.com/denoland/deno/issues/25696
2024-09-18 20:49:16 +02:00
Leo Kettmeir
ec86089c4e
feat: require jsr prefix for deno install and deno add (#25698) 2024-09-18 20:38:22 +02:00
Leo Kettmeir
c90b074579
fix(flags): don't treat empty run command as task subcommand (#25708) 2024-09-18 20:36:37 +02:00
HasanAlrimawi
49a0b7ab93
fix: remove --allow-run warning when using deno without args or subcommand (#25684)
Closes #25676 

---------

Co-authored-by: David Sherret <dsherret@gmail.com>
2024-09-18 17:05:11 +02:00
David Sherret
3dd83fdbdb
Revert "feat(fmt): sort type-only named import/exports last" (#25705)
Reverts #25690

This was not an issue with the ts compiler anymore. Discussion here:
https://github.com/dprint/dprint-plugin-typescript/pull/664#issuecomment-2357000053
2024-09-18 13:54:52 +00:00
Yazan AbdAl-Rahman
bed46474b2
fix: do not panic running invalid file specifier (#25530)
Co-authored-by: Bedis Nbiba <bedisnbiba@gmail.com>
2024-09-18 14:51:39 +01:00
Bartek Iwańczuk
48ea4e3c92
feat(check): turn on noImplicitOverride (#25695)
Closes https://github.com/denoland/deno/issues/11836

Ref https://github.com/denoland/deno/issues/25162
2024-09-18 14:49:30 +01:00
Luca Casonato
7533492a78
tests: fix upgrade canary test (#25706) 2024-09-18 13:43:50 +00:00
Luca Casonato
42e3a49cc7
tests: re-enable upgrade tests (#25680) 2024-09-18 14:08:21 +02:00
Luca Casonato
45b1794778
tests: re-enable WebGPU tests on macOS aarch64 (#25702) 2024-09-18 14:08:08 +02:00
Yusuke Tanaka
f88a9e7467
fix(dts): stabilize fetch declaration for use with Deno.HttpClient (#25683)
This commit stabilizes the `fetch` function declaration for use with
`Deno.HttpClient` and moves it from `lib.deno.unstable.d.ts` to
`lib.deno.shared_globals.d.ts`.

`Deno.HttpClient` was stabilized in #25569, but the associated override
declaration for `fetch` is still marked as experimental. This should
also be stabilized now and moved to a different d.ts file.
2024-09-17 23:38:21 -07:00
Yusuke Tanaka
d5c00ef50e
feat(cli): evaluate code snippets in JSDoc and markdown (#25220)
This commit lets `deno test --doc` command actually evaluate code snippets in
JSDoc and markdown files.

## How it works

1. Extract code snippets from JSDoc or code fences
2. Convert them into pseudo files by wrapping them in `Deno.test(...)`
3. Register the pseudo files as in-memory files
4. Run type-check and evaluation

We apply some magic at the step 2 - let's say we have the following file named
`mod.ts` as an input:

````ts
/**
 * ```ts
 * import { assertEquals } from "jsr:@std/assert/equals";
 *
 * assertEquals(add(1, 2), 3);
 * ```
 */
export function add(a: number, b: number) {
  return a + b;
}
````

This is virtually transformed into:

```ts
import { assertEquals } from "jsr:@std/assert/equals";
import { add } from "files:///path/to/mod.ts";

Deno.test("mod.ts$2-7.ts", async () => {
  assertEquals(add(1, 2), 3);
});
```

Note that a new import statement is inserted here to make `add` function
available. In a nutshell, all items exported from `mod.ts` become available in
the generated pseudo file with this automatic import insertion.

The intention behind this design is that, from library user's standpoint, it
should be very obvious that this `add` function is what this example code is
attached to. Also, if there is an explicit import statement like
`import { add } from "./mod.ts"`, this import path `./mod.ts` is not helpful for
doc readers because they will need to import it in a different way.

The automatic import insertion has some edge cases, in particular where there is
a local variable in a snippet with the same name as one of the exported items.
This case is addressed by employing swc's scope analysis (see test cases for
more details).

## "type-checking only" mode stays around

This change will likely impact a lot of existing doc tests in the ecosystem
because some doc tests rely on the fact that they are not evaluated - some cause
side effects if executed, some throw errors at runtime although they do pass the
type check, etc. To help those tests gradually transition to the ones runnable
with the new `deno test --doc`, we will keep providing the ability to run
type-checking only via `deno check --doc`. Additionally there is a `--doc-only`
option added to the `check` subcommand too, which is useful when you want to
type-check on code snippets in markdown files, as normal `deno check` command
doesn't accept markdown.

## Demo

https://github.com/user-attachments/assets/47e9af73-d16e-472d-b09e-1853b9e8f5ce

---

Closes #4716
2024-09-17 21:35:48 -07:00
Asher Gomez
3731591762
chore: bump deno_lint to 0.66.0 (#25697) 2024-09-18 01:48:37 +00:00
Bartek Iwańczuk
a7d67e3a7a
feat: update warning message for --allow-run with no list (#25693)
Ref https://github.com/denoland/deno/pull/25215#discussion_r1762064605
2024-09-18 00:32:52 +02:00
Ian Bull
97b8c9be38
refactor(ext/websocket): align error messages (#25622)
Aligns the error messages in the ext/websocket folder to be in-line with
the Deno style guide.

https://github.com/denoland/deno/issues/25269
2024-09-17 15:32:12 -07:00
Nayeem Rahman
f360cae9dd
fix(lsp): properly resolve jsxImportSource for caching (#25688) 2024-09-17 18:29:19 +01:00
Nayeem Rahman
d4a06251c5
feat(lsp): auto-import types with 'import type' (#25662) 2024-09-17 18:28:51 +01:00
Divy Srivastava
b4faf60948
perf: fast path for cached dyn imports (#25636)
Ref https://github.com/denoland/deno_core/pull/906
2024-09-17 22:57:37 +05:30
Divy Srivastava
063f427ddf
fix(ext/node): stub inspector/promises (#25635)
Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-09-17 22:57:19 +05:30
David Sherret
a14e9f55b4
feat(fmt): sort type-only named import/exports last (#25690)
Closes #22583
2024-09-17 18:26:23 +01:00
Bartek Iwańczuk
915b73571c
ci: fix releasing canary (#25689) 2024-09-17 16:53:32 +00:00