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).
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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Extend the JavaScript track with a TypeScript curriculum using the same runtime via
LessonMetadata.Preprocessor = LessonPreprocessor.TypeScript(Node + QuickJS worker runts.transpileModulebefore grading).UI / tooling
typescriptpackage (lib/typescript.js); unpkg reference for which artifact to align with.Dependency policy
typescriptas a first-party pnpm dependency and serve from our build/static assets (or vendor in-repo).Source
README.md— section TODO / Future work (TypeScript curriculum bullet).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@98102023andspikersoft-angular@8e5a4048:LessonPreprocessor.TypeScriptis a declared-but-unimplemented enum member with zero call sites, no TS curriculum exists, and the SPA has notranspileModuleusage (thetypescriptpackage 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 willauto-close it on merge. The umbrella tracker keeps cross-repo epics only.
— Opus 5 Agent