A command-line tool for creating TypeScript interfaces from Scala case classes.
You can install typerift with the following command:
npm install -g typerift
You can use typerift in the following manner
typerift <File.scala>
If we have a case class Driver
that exists in the file Driver.scala
, and has the following definition:
case class Driver (
id: Long,
first: String,
last: String,
vehicle: Vehicle,
natinoality: Nationality
)
Running typerift Driver.scala
will yield the following:
interface Driver {
id: number; // Long
first: string; // String
last: string; // String
vehicle: any; // Vehicle
nationality: any; // Nationality
}
Notice that complex types get converted to any
. Future work will include supporting custom/user-defined types.
Although Scala.js exists, there is no simple way to create interop boiler-plate between a JS/TS front-end and a web service written in Scala. This tool should allow you to accept properly typed objects and use them within your application as they were written in the Scala service.
Typerift is currently in a very early state. Goals for the project include:
- Adding wildcard support for source files.
- Support for Scala collections, Options, and more types in general.
- Support for user-defined types.
- Adding reverse generating functionality (ie
TypeScript -> Scala
) - Supporting general Scala classes.