0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-07 23:06:50 -05:00
denoland-deno/cli/tsc
Bartek Iwańczuk ad50c0df34
refactor(tsc): remove TS program creation during snapshotting (#27797)
This commit refactors how a snapshot is created for the TypeScript
compiler.

Instead of having 4 ops, only a single op ("op_load") is left. This is
achieved by not creating a "ts.Program" during snapshotting, that during
benchmarking doesn't provide much benefit.

This greatly simplifies build script for the TS snapshot and opens up
way to simplify it even further in follow up PRs.
2025-01-24 13:06:36 +01:00
..
dts docs: JSDocs examples for prompt, confirm, and alert (#27695) 2025-01-16 14:20:45 +00:00
00_typescript.js fix(node): Add missing inspector/promises (#27491) 2024-12-31 11:06:21 +01:00
97_ts_host.js refactor(tsc): split TS compiler into multiple files, use ESM (#27784) 2025-01-23 01:37:50 +01:00
98_lsp.js refactor(tsc): split TS compiler into multiple files, use ESM (#27784) 2025-01-23 01:37:50 +01:00
99_main_compiler.js refactor(tsc): remove TS program creation during snapshotting (#27797) 2025-01-24 13:06:36 +01:00
_analyze_types_node.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
compiler.d.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
diagnostics.rs refactor: update deno_core for error refactor (#26867) 2025-01-08 14:52:32 -08:00
mod.rs refactor: move denort to separate crate (#27688) 2025-01-17 20:39:29 +00:00
README.md feat: TypeScript 5.4 (#23086) 2024-03-26 18:52:57 -04: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
npx hereby
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/