Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

rrdelaney/ReasonablyTyped

Repository files navigation

 $ npm install --global reasonably-typed

Converts TypeScript and Flow definitions to Reason interfaces
(Also maybe TypeScript definitions to Flow)


Take your Flow or TypeScript definition

// class.js
declare module 'classes' {
 declare type State = {
 id: number,
 storeName: string,
 }
 declare export class Store {
 constructor(initialState: State): Store;
 state: State;
 update(nextState: State): void;
 }
}

Run retyped

$ retyped class.js

Get Reason

/* Module classes */
type state = {. "id": float, "storeName": string };
module Store = {
 type t = {. "state": (state), "update": [@bs.meth](state => unit)};
 [@bs.new] [@bs.module "classes"] external make : state => t = "Store";
};

Docs

Examples
TypeScript

TypeScript has a similar workflow. Compile your TypeScript file with:

$ retyped my-definition.d.ts
Command-line Usage
Usage:
 $ retyped ...files
Examples:
 $ retyped file1.js file2.js file3.d.ts [boolean]
Usage as a library ReasonablyTyped also exports a library for use! See the example below:
// lib-usage.js
import * as ReasonablyTyped from 'reasonably-typed'
const libSrc = fs.readFileSync('lib.js').toString()
const bsInterface = ReasonablyTyped.compile(libSrc)

format (code: string) => string

Formats a block of code using refmt

compile (code: string, filename?: string) => string

Compiles a libdef, formats the result, and handles errors cleanly

Development

See DEVELOPING and CONTRIBUTING.

Status

CircleCI

About

πŸ’  Converts Flow and TypeScript definitions to Reason interfaces

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 9

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /