UNPKG

@ts-defold/type-gen

Version:

Typescript type generator for Defold

60 lines (52 loc) 2.94 kB
# @ts-defold/type-gen <a href="https://discord.gg/eukcq5m"><img alt="Chat with us!" src="https://img.shields.io/discord/766898804896038942.svg?colorB=7581dc&logo=discord&logoColor=white"></a> <a href="https://www.npmjs.com/package/@ts-defold/type-gen"><img alt="npm install" src="https://img.shields.io/npm/dt/@ts-defold/type-gen?color=%23CA0000&label=npm&logo=npm"></a> > TypeScript type generator for Defold type-gen is a TypeScript declarations generator for the [Defold](https://github.com/defold/defold) game engine. - types are parsed generated from the [offical documentation](https://defold.com/ref/stable/go/) - types will avoid `any` if they can - vmath.* types can all be used with number operators through [Intersection Types](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html) - you will need to decorate with an aditional cast upon assignment, but a fair tradeoff vs. vector math function helpers ```ts function on_update(this:{pos: vmath.vector3, dir: vmath.vector3}, dt: number) { const speed = 331; this.pos = this.pos + this.dir * speed * dt as vmath.vector3; } ``` - generated typdoc commnets from lua documentation - fully generated with no need to manually intervine ## Usage: Install & {} type-gen was made to generate types for [@ts-defold/types](https://github.com/ts-defold/types) and is included as a dev dependency. If you are simply wanting typescipt types for your Defold project **@ts-defold/types** is your best bet. > `npm install -D @ts-defold/types` If you would like to generate your own types, hack on this project, or contribute in any way, i would suggest you try: ```sh git clone https://github.com/ts-defold/type-gen.git cd type-gen npm install npm run build ``` Alternatively, if you would like to just generate your types without the dependency then simply: ```sh npx @ts-defold/type-gen #or npx @ts-defold/type-gen -- defold.d.ts --channel stable --api latest ``` @ts-defold/type-gen can optionally take in arguments: - **[defold.d.ts]** path to generated output file - **--channel** [stable | beta | alpha] - **--api** [latest | 1.2.xxx] If being used in a project locked to a specific release channel or version of defold you may add configuration settings in your `package.json` instead: ```json "ts-defold": { "channel": "stable", "output": "index.d.ts" }, ``` ### Shoutouts 📢 [@dasannikov](https://github.com/dasannikov) and [DefoldTypescript](https://github.com/dasannikov/DefoldTypeScript) for a starting point and inspiration [TypeScriptToLua](https://github.com/TypeScriptToLua/TypeScriptToLua) for the awesome community and tools [@hazzard993](https://github.com/hazzard993), [@ark120202](https://github.com/ark120202), [@Perryvw](https://github.com/Perryvw) and all the fine folks over on the [tstl discord server](https://discord.gg/BWAq58Y). <p align="center" class="h4"> TypeScript :heart: Defold </p>