import { Dubbo , java , TDubboCallResult } from 'apache-dubbo-consumer' ; export interface IUserResponse { status ? : string ; info ? : { [ name ] : string ; } ; } export interface IDemoProvider { sayHello ( name ) : TDubboCallResult < string > ; test ( ) : TDubboCallResult < void > ; echo ( ) : TDubboCallResult < string > ; getUserInfo ( ) : TDubboCallResult < IUserResponse > ; } export interface ITypeRequest { bigDecimal ? : { value : string ; } ; map ? : { [ name ] : string ; } ; } export interface IBasicTypeProvider { testBasicType ( ) : TDubboCallResult < ITypeRequest > ; } export interface IErrorProvider { errorTest ( ) : TDubboCallResult < void > ; } export const demoProvider = ( dubbo ) : IDemoProvider => dubbo . proxyService ( { dubboInterface : 'org.apache.dubbo.demo.DemoProvider' , methods : { sayHello ( name ) { return [ java . String ( name ) ] ; } , echo ( ) { } , test ( ) { } , getUserInfo ( ) { return [ java . combine ( 'org.apache.dubbo.demo.UserRequest' , { id : 1 , name : 'nodejs' , email : 'node@qianmi.com' } ) ] ; } } } ) ; export const basicTypeProvider = ( dubbo ) : IBasicTypeProvider => dubbo . proxyService ( { dubboInterface : 'org.apache.dubbo.demo.BasicTypeProvider' , methods : { testBasicType ( ) { return [ java . combine ( 'org.apache.dubbo.demo.TypeRequest' , { map : java . Map ( { name : 'test' } ) , bigDecimal : java . BigDecimal ( '1000.0000' ) } ) ] ; } } } ) ; export const errorProvider = ( dubbo ) : IErrorProvider => dubbo . proxyService ( { dubboInterface : 'org.apache.dubbo.demo.ErrorProvider' , methods : { errorTest ( ) { return [ ] ; } } } ) ;