1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-24 15:19:26 -05:00
A modern runtime for JavaScript and TypeScript. https://deno.com/
Find a file
Nayeem Rahman d592cf07d6
refactor(lsp): store test definitions in adjacency list (#20330)
Previously:
```rust
pub struct TestDefinition {
  pub id: String,
  pub name: String,
  pub range: SourceRange,
  pub steps: Vec<TestDefinition>,
}

pub struct TestDefinitions {
  pub discovered: Vec<TestDefinition>,
  pub injected: Vec<lsp_custom::TestData>,
  pub script_version: String,
}
```
Now:
```rust
pub struct TestDefinition {
  pub id: String,
  pub name: String,
  pub range: Option<Range>,
  pub is_dynamic: bool, // True for 'injected' module, not statically detected but added at runtime.
  pub parent_id: Option<String>,
  pub step_ids: HashSet<String>,
}

pub struct TestModule {
  pub specifier: ModuleSpecifier,
  pub script_version: String,
  pub defs: HashMap<String, TestDefinition>,
}
```

Storing the test tree as a literal tree diminishes the value of IDs,
even though vscode stores them that way. This makes all data easily
accessible from `TestModule`. It unifies the interface between
'discovered' and 'injected' tests. This unblocks some enhancements wrt
syncing tests between the LSP and extension, such as this TODO:
61f08d5a71/client/src/testing.ts (L251-L259)
and https://github.com/denoland/vscode_deno/issues/900. We should also
get more flexibility overall.

`TestCollector` is cleaned up, now stores a `&mut TestModule` directly
and registers tests as it comes across them with
`TestModule::register()`. This method ensures sanity in the redundant
data from having both of `TestDefinition::{parent_id,step_ids}`.

All of the messy conversions between `TestDescription`,
`LspTestDescription`, `TestDefinition`, `TestData` and `TestIdentifier`
are cleaned up. They shouldn't have been using `impl From` and now the
full list of tests is available to their implementations.
2023-08-31 14:04:15 +02:00
.cargo chore: Add a local-build.toml to make downstream packaging from sourc… (#20236) 2023-08-24 09:02:00 -06:00
.devcontainer chore: update devcontainer configuration (#15751) 2022-09-03 02:21:41 +02:00
.github feat(ext/kv): connect to remote database (#20178) 2023-08-31 14:01:18 +02:00
bench_util 1.36.3 (#20268) 2023-08-24 10:01:52 -06:00
cli refactor(lsp): store test definitions in adjacency list (#20330) 2023-08-31 14:04:15 +02:00
ext fix(ext/kv): don't panic if listening on queues and KV is not closed (#20317) 2023-08-31 14:04:14 +02:00
runtime refactor(runtime): factor out code between build.rs and worker.rs (#20299) 2023-08-31 14:04:07 +02:00
test_ffi feat(unstable): Improve FFI types (#20215) 2023-08-21 18:23:28 +05:30
test_napi chore(cli): use NPM_CONFIG_REGISTRY for all tests (#20320) 2023-08-31 14:04:14 +02:00
test_util chore(cli): use NPM_CONFIG_REGISTRY for all tests (#20320) 2023-08-31 14:04:14 +02:00
tools fix(ext/web): add stream tests to detect v8slice split bug (#20253) 2023-08-24 09:01:07 -06:00
.dlint.json chore: update dlint to v0.37.0 for GitHub Actions (#17295) 2023-01-16 17:17:18 +01:00
.dprint.json fix(fmt/markdown): ignore trailing words in code block info string for language detection (#20310) 2023-08-31 14:04:06 +02:00
.editorconfig editorconfig: Don't insert final newline in .out files (#1686) 2019-02-07 11:31:49 -05:00
.gitattributes fix(test): support typechecking docs with CRLF line endings (#12748) 2021-11-15 09:58:04 -05:00
.gitignore chore: remove third_party submodule (#20201) 2023-08-21 18:23:28 +05:30
.gitmodules chore: remove third_party submodule (#20201) 2023-08-21 18:23:28 +05:30
.rustfmt.toml chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
Cargo.lock fix(fmt/markdown): ignore trailing words in code block info string for language detection (#20310) 2023-08-31 14:04:06 +02:00
Cargo.toml chore(core): bump and trim deps (#20265) 2023-08-31 14:02:40 +02:00
LICENSE.md chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
README.md feat(ext/kv): connect to remote database (#20178) 2023-08-31 14:01:18 +02:00
Releases.md 1.36.3 (#20268) 2023-08-24 10:01:52 -06:00
rust-toolchain.toml chore: update to Rust 1.72 (#20258) 2023-08-31 14:02:40 +02:00

Deno

Twitter badge Discord badge YouTube badge

the deno mascot dinosaur standing in the rain

Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

Features

Install

Shell (Mac, Linux):

curl -fsSL https://deno.land/install.sh | sh

PowerShell (Windows):

irm https://deno.land/install.ps1 | iex

Homebrew (Mac):

brew install deno

Chocolatey (Windows):

choco install deno

Scoop (Windows):

scoop install deno

Build and install from source using Cargo:

# Install the Protobuf compiler
apt install -y protobuf-compiler # Linux
brew install protobuf # macOS

# Build and install Deno
cargo install deno --locked

See deno_install and releases for other options.

Getting Started

Try running a simple program:

deno run https://deno.land/std/examples/welcome.ts

Or setup a simple HTTP server:

Deno.serve((_req) => new Response("Hello, World!"));

More Examples

Additional Resources

Contributing

We appreciate your help!

To contribute, please read our contributing instructions.