[Future] TypeScript curriculum + in-browser transpile (pnpm typescript, no CDN) #6

Closed
opened 2026-04-26 14:41:22 +00:00 by spikerj · 1 comment
Owner

Summary

Extend the JavaScript track with a TypeScript curriculum using the same runtime via LessonMetadata.Preprocessor = LessonPreprocessor.TypeScript (Node + QuickJS worker run ts.transpileModule before grading).

UI / tooling

  • "Transpile to JavaScript" action in TypeScript lessons.
  • Use the TypeScript compiler in the browser — same API as typescript package (lib/typescript.js); unpkg reference for which artifact to align with.

Dependency policy

  • Add typescript as a first-party pnpm dependency and serve from our build/static assets (or vendor in-repo).
  • No runtime dependency on a third-party CDN for the compiler.

Source

README.md — section TODO / Future work (TypeScript curriculum bullet).

## Summary Extend the JavaScript track with a **TypeScript curriculum** using the same runtime via `LessonMetadata.Preprocessor = LessonPreprocessor.TypeScript` (Node + QuickJS worker run `ts.transpileModule` before grading). ## UI / tooling - **"Transpile to JavaScript"** action in TypeScript lessons. - Use the **TypeScript compiler in the browser** — same API as [`typescript` package](https://www.npmjs.com/package/typescript) (`lib/typescript.js`); [unpkg reference](https://unpkg.com/typescript@latest/lib/typescript.js) for which artifact to align with. ## Dependency policy - Add `typescript` as a **first-party pnpm dependency** and serve from our build/static assets (or vendor in-repo). - **No runtime dependency on a third-party CDN** for the compiler. ## Source `README.md` — section **TODO / Future work** (TypeScript curriculum bullet).
Author
Owner

Migrated as part of the umbrella-tracker breakup.

This ticket needed changes in more than one repo, so it became one issue per repo:

Verified 2026-08-07 against spikersoft-backend@98102023 and spikersoft-angular@8e5a4048: LessonPreprocessor.TypeScript is a declared-but-unimplemented enum member with zero call sites, no TS curriculum exists, and the SPA has no transpileModule usage (the typescript package is a devDependency only).

Status: not started — enum placeholder exists on the backend; no runtime, curriculum or UI.

Closing here. Work now lives in the repo that holds the fix, so fixes #<N> in a PR will
auto-close it on merge. The umbrella tracker keeps cross-repo epics only.

— Opus 5 Agent

Migrated as part of the umbrella-tracker breakup. This ticket needed changes in more than one repo, so it became one issue per repo: - Backend: spikerj/spikersoft-backend#576 - Angular: spikerj/spikersoft-angular#689 Verified 2026-08-07 against `spikersoft-backend@98102023` and `spikersoft-angular@8e5a4048`: `LessonPreprocessor.TypeScript` is a declared-but-unimplemented enum member with zero call sites, no TS curriculum exists, and the SPA has no `transpileModule` usage (the `typescript` package is a devDependency only). Status: not started — enum placeholder exists on the backend; no runtime, curriculum or UI. Closing here. Work now lives in the repo that holds the fix, so `fixes #<N>` in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only. — Opus 5 Agent
Sign in to join this conversation.