1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-21 23:04:45 -05:00
denoland-deno/cli/tsc
Matt Mastracci 950e0e9cd6
fix(ext/http): create a graceful shutdown API (#20387)
This PR implements a graceful shutdown API for Deno.serve, allowing all
current connections to drain from the server before shutting down, while
preventing new connections from being started or new transactions on
existing connections from being created.

We split the cancellation handle into two parts: a listener handle, and
a connection handle. A graceful shutdown cancels the listener only,
while allowing the connections to drain. The connection handle aborts
all futures. If the listener handle is cancelled, we put the connections
into graceful shutdown mode, which disables keep-alive on http/1.1 and
uses http/2 mechanisms for http/2 connections.

In addition, we now guarantee that all connections are complete or
cancelled, and all resources are cleaned up when the server `finished`
promise resolves -- we use a Rust-side server refcount for this.

Performance impact: does not appear to affect basic serving performance
by more than 1% (~126k -> ~125k)

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-09-12 00:06:38 +00:00
..
dts fix(ext/http): create a graceful shutdown API (#20387) 2023-09-12 00:06:38 +00:00
00_typescript.js feat: TypeScript 5.2 (#20425) 2023-09-09 15:03:21 -04:00
99_main_compiler.js feat(lsp): update imports on file rename (#20245) 2023-08-26 02:50:47 +02:00
compiler.d.ts feat(lsp): update imports on file rename (#20245) 2023-08-26 02:50:47 +02:00
diagnostics.rs fix(tsc): more informative diagnostic when Deno does not exist (#19825) 2023-07-13 23:29:51 +00:00
mod.rs feat: support import attributes (#20342) 2023-09-07 09:09:16 -04:00
README.md feat: upgrade to TypeScript 4.9.3 (#16973) 2022-12-07 12:59:59 -05:00

tsc

This directory contains the typescript compiler and a small compiler host for the runtime snapshot.

How to upgrade TypeScript.

The files in this directory are mostly from the TypeScript repository. We currently (unfortunately) have a rather manual process for upgrading TypeScript. It works like this currently:

  1. Checkout denoland/TypeScript repo in a separate directory.
  2. Add Microsoft/TypeScript as a remote and fetch its latest tags
  3. Checkout a new branch based on this tag.
  4. Cherry pick the custom commit we made in a previous release to the new one.
  5. This commit has a "deno.ts" file in it. Read the instructions in it.
  6. Copy typescript.js into Deno repo.
  7. Copy d.ts files into dts directory.
  8. Review the copied files, removing and reverting what's necessary

So that might look something like this:

git clone https://github.com/denoland/TypeScript.git
cd typescript
git remote add upstream https://github.com/Microsoft/TypeScript
git fetch upstream
git checkout v3.9.7
git checkout -b branch_v3.9.7
git cherry pick <previous-release-branch-commit-we-did>
npm install
gulp local
rsync built/local/typescript.js ~/src/deno/cli/tsc/00_typescript.js
rsync --exclude=protocol.d.ts --exclude=tsserverlibrary.d.ts --exclude=typescriptServices.d.ts built/local/*.d.ts ~/src/deno/cli/tsc/dts/