2.4.1-8ad5123.0 • Published 3 years ago
@vality/thrift-ts v2.4.1-8ad5123.0
thrift-ts
thrift-ts is a typescript compiler that compile .thrift files to .d.ts files.
It should works with thrift --gen js:node commands.
Installation
$ npm install -g thrift-tsHow to use
CLI
// just compile one file
thrift-ts Model.thrift
// compile all IDL files in the folder and output in other folder
thrift-ts ./src -o ./dist
// learn more
thrift-ts -hNode
import thriftTs from 'thriftTs';
import fs = require('fs');
const filename = './Model.thrift';
const files = thriftTs({
  filename,
  content: fs.readFileSync(filename),
})
console.log(files);
// [{ filename: 'Model_types.d.ts', content: '...'}]Example
thrift file:
namespace java com.my.test
struct Result {
 1: i32 id;
 2: string name;
}
enum Status {
  Success = 1;
  Error = 2;
}
struct Response {
  1:required Status status;
  2:optional list<Result> result;
}
struct Request {
  1: required string query;
  2: optional number page;
}
service MyTestService {
    Response search(1:Request request);
}.d.ts file:
type Callback<T, E> = (err: E, resp: T) => void;
interface Int64 {
    constructor(o?: number | string): this;
    toString(): string;
    toJson(): string;
}
export enum Status {
    Success = 1,
    Error = 2,
}
export class Result {
    id: number;
    name: string;
    constructor(arg?: {
        id: number;
        name: string;
    })
}
export class Response {
    status: Status;
    result?: Result[];
    constructor(arg?: {
        status: Status;
        result?: Result[];
    })
}
export class Request {
    query: string;
    page?: number;
    constructor(arg?: {
        query: string;
        page?: number;
    })
}
export class Client {
    search(request: Request, callback: Callback<Response, Error>): void;
    search(request: Request): Promise<Response>;
}2.4.1-8ad5123.0
3 years ago
2.3.2-f0c895b.0
3 years ago
2.3.1-1629bfa.0
3 years ago
2.2.2-e258b9a.0
4 years ago
2.2.2-1d124bb.0
4 years ago
2.2.2-e8bc2ab.0
4 years ago
2.2.1
4 years ago
2.2.0-alpha
4 years ago
2.1.0-alpha
4 years ago