#!/bin/sh # Reference sources: sucrase (the parser being ported) and ts-blank-space (the output oracle). set -e cd "$(dirname "$0")/.." fetch() { [ -d "vendor/$1" ] || git clone -q https://github.com/$2 "vendor/$1"; git -C "vendor/$1" fetch -q --depth 1 origin $3 && git -C "vendor/$1" checkout -q $3; } fetch sucrase alangpierce/sucrase 280ee202e73b18e396069782bd41e1eaaccbf620 fetch ts-blank-space bloomberg/ts-blank-space ba04b4ed1c0d7aa165f7a0669771dcc493e3575c pnpm exec tsc -p vendor/ts-blank-space/src/tsconfig.json --outDir vendor/ts-blank-space/out # Zena's own TypeScript tooling, more corpus input. Sparse: only .ts/.mts/.cts under packages/. if [ ! -d vendor/zena ]; then git clone -q --filter=blob:none --sparse --no-checkout https://github.com/elematic/zena vendor/zena git -C vendor/zena sparse-checkout set --no-cone '/packages/**/*.ts' '/packages/**/*.mts' '/packages/**/*.cts' fi git -C vendor/zena fetch -q --depth 1 origin a7c1d2cd0cc87f72a3b948151897ce7176f51def git -C vendor/zena checkout -q a7c1d2cd0cc87f72a3b948151897ce7176f51def # TypeScript 6's sources and compiler/conformance suites: a differential corpus with its own run (pnpm test:erase:typescript). [ -d vendor/TypeScript ] || git clone -q --depth 1 --branch release-6.0 --filter=blob:none --sparse https://github.com/microsoft/TypeScript vendor/TypeScript git -C vendor/TypeScript sparse-checkout set src tests/cases/conformance tests/cases/compiler touch vendor/TypeScript/.sweep-skip # Pinned OSS benchmark corpus (specific projects at fixed commits, not run by default # since it's ~GBs and only needed for `pnpm test:erase:oss`): ./scripts/oss.sh