Skip to content

sumitkm/ToTypeScriptD

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to ToTypeScriptD

You can now generate TypeScript definition (*.d.ts) files from either .Net or .winmd assembly files. Allowing you to leverage these libraries in your TypeScript/JavaScript WinJS or other client side software applications with all the type safety and benefits of TypeScript.

Can you tell me why I would use this?

I know of two main scenarios where I think this could be useful.

  1. If you build a 'Modern' (come on, we still call it Metro) Windows 8 app with WinJS and want to leverage TypeScript, wouldn't it be nice to get a set of TypeScript Definition files that reflect the native API's you're calling in the platform without manually creating the definition files?
  2. Say your building an MVC/WebAPI server application. It would be useful if your C.I./Build system could spit out a set of TypeScript interfaces that were based on the server objects used to render your API. This can provide not only useful for client side JavaScript/TypeScript libraries that need to consume these objects, but could also provide a simple way to document the structure of your service API results.

Install

Install via Chocolatey

cinst ToTypeScriptD

You can see the Chocolatey package here: ToTypeScriptD package

How to use?

Print the short and sweet command line arguments:

ToTypeScript --help

Generate all types from Windows.winmd file:

ToTypeScriptD winmd "C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral\Windows.winmd"

Generate all types from multiple .winmd files:

ToTypeScriptD winmd C:\Windows\System32\WinMetadata\Windows.Foundation.winmd C:\Windows\System32\WinMetadata\Windows.Networking.winmd

Include the special types for WinJS apps:

ToTypeScriptD winmd --specialTypes C:\Windows\System32\WinMetadata\Windows.Foundation.winmd

Filter types in a specific namespace

ToTypeScriptD winmd --specialTypes C:\Windows\System32\WinMetadata\Windows.Foundation.winmd --regexFilter "Windows.Foundation.Collections"

Roadmap

Checkout the project milestones, suggest a feature, bug etc. Or even better, submit a pull request.

Contribute

Checkout the Contribution guide.

Thanks to!

Partially sponsored by:
Resgrid logo

How does the magic happen?

By loading assembly metadata with Mono.Cecil which can read any Ecma 355 Common Language Infrastructure (CLI) file, we can generate a set of TypeScript definition files that allow us to project the type system from these assemblies into TypeScript Definition files. Cool eh?

About

Generate TypeScript Definition files from Ecma 355 [Common Language Infrastructure (CLI)] (*.winmd/.net dll's).

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 57.6%
  • C# 31.0%
  • TypeScript 5.4%
  • PowerShell 3.4%
  • C++ 1.5%
  • CSS 1.1%