How phmilk/reforged-ts works
This workspace supports Warcraft III map authors: write map code in TypeScript using the reforged-ts API and patch-specific typings, then compile it to Lua for the game. The library wraps game natives with handles and systems; separate packages provide static scripting guards, a Lua test harness, generated typings, and game-run probes. The README documents package roles and the main authoring path; source excerpts and the index support only a few internal calls, so other internal links are omitted rather than inferred.
Main entry points: unit.ts Unit wrapper · plugin.ts ESLint plugin · generate.ts Typings generator · index.ts TypeScript API
Components 29
Map runtime
- TypeScript API
packages/reforged-ts/src/index.ts - Unit wrapper
packages/reforged-ts/src/handles/unit.ts - Handle wrapper
packages/reforged-ts/src/handles/handle.ts - Item wrapper
packages/reforged-ts/src/handles/item.ts - Player wrapper
packages/reforged-ts/src/handles/player.ts - Group wrapper
packages/reforged-ts/src/handles/group.ts - Destructable wrapper
packages/reforged-ts/src/handles/destructable.ts - Sound wrapper
packages/reforged-ts/src/handles/sound.ts - Order globals
packages/reforged-ts/src/globals/order.ts - Initialization state
packages/reforged-ts/src/init/state.ts - Configuration
packages/reforged-ts/src/reforged/configuration.ts
Patch typings
- Typings generator
packages/reforged-types/src/generate.ts - Jass parser
packages/reforged-types/src/parser.ts - Patch files and Overlay
packages/reforged-types/src/overlay.ts - Patch declarations
packages/reforged-types/3.0.0.d.ts
Lint guards
- ESLint plugin
packages/eslint-plugin-reforged/src/plugin.ts - Native classifier
packages/eslint-plugin-reforged/src/classify/native.ts - Package classifier
packages/eslint-plugin-reforged/src/classify/package.ts - Wrapper classifier
packages/eslint-plugin-reforged/src/classify/wrapper.ts - Legacy-name rule
packages/eslint-plugin-reforged/src/rules/no-legacy-w3ts-names.ts
Test harness
- Lua test harness
packages/reforged-test/src/index.ts - Lua runner
packages/reforged-test/runner/index.ts
Game probes
- Probe result reader
probe/src/read.ts - Probe machine
probe/src/machine.ts - In-game runner
probe/game/runner.ts
Other components
- Map project
- Warcraft natives
- TypeScript-to-Lua
- Warcraft III
Connections 23
- Map project → TypeScript API: uses
README.md - Map project → Patch declarations: codes against
README.md - Map project → ESLint plugin: checks with
README.md - TypeScript API → TypeScript-to-Lua: compiles through
README.md - TypeScript-to-Lua → Warcraft III: produces Lua for
README.md - TypeScript API → Warcraft natives: wraps
README.md - Unit wrapper → Handle wrapper: imports
packages/reforged-ts/src/handles/unit.ts - Unit wrapper → Item wrapper: imports
packages/reforged-ts/src/handles/unit.ts - Unit wrapper → Destructable wrapper: imports
packages/reforged-ts/src/handles/unit.ts - Unit wrapper → Group wrapper: imports
packages/reforged-ts/src/handles/unit.ts - Unit wrapper → Player wrapper: imports
packages/reforged-ts/src/handles/unit.ts - Unit wrapper → Sound wrapper: imports
packages/reforged-ts/src/handles/unit.ts - Configuration → Initialization state: imports
packages/reforged-ts/src/reforged/configuration.ts - Typings generator → Jass parser: parses with
packages/reforged-types/src/parser.ts - Typings generator → Patch files and Overlay: uses
- Typings generator → Patch declarations: generates
- ESLint plugin → Native classifier: classifies
- ESLint plugin → Package classifier: classifies
- ESLint plugin → Wrapper classifier: classifies
- ESLint plugin → Legacy-name rule: registers
- Lua test harness → Lua runner: runs via
packages/reforged-test/src/index.ts - Warcraft III → In-game runner: runs probe
- Probe result reader → Probe machine: uses
probe/src/read.ts