A generic TypeScript to Lua transpiler. Write your code in TypeScript and publish Lua!
More detailed documentation and info on writing declarations can be found on the wiki.
Install
npm install -g typescript-to-lua
Compile Files
tstl path/to/file.ts path/to/other-file.ts
Compile Projects
tstl -p path/to/tsconfig.json
Example tsconfig.json
{
"compilerOptions": {
"noImplicitAny" : true,
"noImplicitThis" : true,
"alwaysStrict" : true,
"strictNullChecks": true
},
"luaTarget": "JIT"
}
This compiler works great in combination with the Sublime Text Typescript plugin (available through the package manager as TypeScript).
You can simply open your typescript project assuming a valid tsconfig.json file is present. The default TypeScript plugin will provide all functionality of a regular TypeScript project.
To add the option to build with the Lua transpiler instead of the regular typescript compiler, go to Tools > Build System > New Build System.... In the new sublime-build file that opens, enter the following (adjust path to tstl if not installed globally):
{
"cmd": ["tstl", "-p", "$file"],
"shell": true
}
Save this in your Sublime settings as a TypeScriptToLua.sublime-build. You can now select the TypeScriptToLua build system in Tools > Build System to build using the normal hotkey (ctrl+B), or if you have multiple TypeScript projects open, you can choose your compiler before building by pressing ctrl+shift+B.