This is an automated email from the ASF dual-hosted git repository.
huxing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-js.git
The following commit(s) were added to refs/heads/master by this push:
new f45fa88 add: 1. add one FAQ ; 2. add enum transfer example;
new 07f496b Merge pull request #114 from creasy2010/master
f45fa88 is described below
commit f45fa88fc44bce3ff7b9d161702713db12152033
Author: yangxiaodong <[email protected]>
AuthorDate: Fri May 24 15:47:30 2019 +0800
add:
1. add one FAQ ;
2. add enum transfer example;
---
examples/hello-egg/app/controller/home.ts | 17 +++++++++++
.../dubbo/providers/com/alibaba/dubbo/demo/Sex.ts | 5 ++++
.../com/alibaba/dubbo/demo/UserRequest.ts | 5 ++++
examples/hello-egg/app/router.ts | 1 +
.../hello-egg/typings/app/controller/index.d.ts | 8 +++---
examples/hello-egg/typings/app/index.d.ts | 6 ++++
examples/hello-egg/typings/app/service/index.d.ts | 8 +++---
examples/hello-egg/typings/config/index.d.ts | 12 +++-----
examples/hello-egg/typings/config/plugin.d.ts | 33 ++++++++++++++++++++++
.../src/main/java/com/alibaba/dubbo/demo/Sex.java | 5 ++++
.../java/com/alibaba/dubbo/demo/UserRequest.java | 11 ++++++++
packages/interpret-cli/README.md | 9 ++++++
12 files changed, 104 insertions(+), 16 deletions(-)
diff --git a/examples/hello-egg/app/controller/home.ts
b/examples/hello-egg/app/controller/home.ts
index ac6c457..46afc5d 100644
--- a/examples/hello-egg/app/controller/home.ts
+++ b/examples/hello-egg/app/controller/home.ts
@@ -1,6 +1,8 @@
import {java} from 'dubbo2.js';
import {Controller} from 'egg';
import {TypeRequest} from
'../dubbo/providers/com/alibaba/dubbo/demo/TypeRequest';
+import {UserRequest} from
"../dubbo/providers/com/alibaba/dubbo/demo/UserRequest";
+import {Sex} from "../dubbo/providers/com/alibaba/dubbo/demo/Sex";
export default class HomeController extends Controller {
async index() {
@@ -8,6 +10,21 @@ export default class HomeController extends Controller {
ctx.body = await ctx.service.test.sayHi('egg');
}
+ async userInfo() {
+
+ const {res, err} = await
this.ctx.app.dubbo.service.DemoProvider.getUserInfo(
+ new UserRequest({
+ sex:Sex.female,
+ email:"[email protected]",
+ name:'yangxiaodong',
+ id:1001
+ })
+ );
+
+ this.ctx.body = err ? err.message : res;
+ }
+
+
async sayHello() {
const {res, err} = await this.ctx.app.dubbo.service.DemoProvider.sayHello(
java.String('hello from node world'),
diff --git
a/examples/hello-egg/app/dubbo/providers/com/alibaba/dubbo/demo/Sex.ts
b/examples/hello-egg/app/dubbo/providers/com/alibaba/dubbo/demo/Sex.ts
new file mode 100644
index 0000000..013d38a
--- /dev/null
+++ b/examples/hello-egg/app/dubbo/providers/com/alibaba/dubbo/demo/Sex.ts
@@ -0,0 +1,5 @@
+export enum Sex {
+ female = 'female',
+ male = 'male',
+}
+//generate by interpret-cli dubbo2.js
diff --git
a/examples/hello-egg/app/dubbo/providers/com/alibaba/dubbo/demo/UserRequest.ts
b/examples/hello-egg/app/dubbo/providers/com/alibaba/dubbo/demo/UserRequest.ts
index 99515c9..6d17fee 100644
---
a/examples/hello-egg/app/dubbo/providers/com/alibaba/dubbo/demo/UserRequest.ts
+++
b/examples/hello-egg/app/dubbo/providers/com/alibaba/dubbo/demo/UserRequest.ts
@@ -1,6 +1,8 @@
+import {Sex} from './Sex';
import java from 'js-to-java';
export interface IUserRequest {
+ sex?: Sex;
name?: string;
id?: number;
email?: string;
@@ -8,11 +10,13 @@ export interface IUserRequest {
export class UserRequest {
constructor(params: IUserRequest) {
+ this.sex = params.sex;
this.name = params.name;
this.id = params.id;
this.email = params.email;
}
+ sex?: Sex;
name?: string;
id?: number;
email?: string;
@@ -21,6 +25,7 @@ export class UserRequest {
return {
$class: 'com.alibaba.dubbo.demo.UserRequest',
$: {
+ sex: java['enum']('com.alibaba.dubbo.demo.Sex', Sex[this.sex]),
name: java.String(this.name),
id: java.Integer(this.id),
email: java.String(this.email),
diff --git a/examples/hello-egg/app/router.ts b/examples/hello-egg/app/router.ts
index f95f01f..b2226ba 100644
--- a/examples/hello-egg/app/router.ts
+++ b/examples/hello-egg/app/router.ts
@@ -5,6 +5,7 @@ export default (app: Application) => {
router.get('/', controller.home.index);
router.get('/hello', controller.home.sayHello);
+ router.get('/userInfo', controller.home.userInfo);
router.get('/echo', controller.home.echo);
router.get('/basicType', controller.home.basicType);
};
diff --git a/examples/hello-egg/typings/app/controller/index.d.ts
b/examples/hello-egg/typings/app/controller/index.d.ts
index 0447380..6895321 100644
--- a/examples/hello-egg/typings/app/controller/index.d.ts
+++ b/examples/hello-egg/typings/app/controller/index.d.ts
@@ -1,11 +1,11 @@
-// This file was auto created by egg-ts-helper
+// This file is created by [email protected]
// Do not modify this file!!!!!!!!!
-import 'egg'; // Make sure ts to import egg declaration at first
-import Home from '../../../app/controller/home';
+import 'egg';
+import ExportHome from '../../../app/controller/home';
declare module 'egg' {
interface IController {
- home: Home;
+ home: ExportHome;
}
}
diff --git a/examples/hello-egg/typings/app/index.d.ts
b/examples/hello-egg/typings/app/index.d.ts
new file mode 100644
index 0000000..124ab9b
--- /dev/null
+++ b/examples/hello-egg/typings/app/index.d.ts
@@ -0,0 +1,6 @@
+// This file is created by [email protected]
+// Do not modify this file!!!!!!!!!
+
+import 'egg';
+export * from 'egg';
+export as namespace Egg;
diff --git a/examples/hello-egg/typings/app/service/index.d.ts
b/examples/hello-egg/typings/app/service/index.d.ts
index 070363e..3ccb21e 100644
--- a/examples/hello-egg/typings/app/service/index.d.ts
+++ b/examples/hello-egg/typings/app/service/index.d.ts
@@ -1,11 +1,11 @@
-// This file was auto created by egg-ts-helper
+// This file is created by [email protected]
// Do not modify this file!!!!!!!!!
-import 'egg'; // Make sure ts to import egg declaration at first
-import Test from '../../../app/service/Test';
+import 'egg';
+import ExportTest from '../../../app/service/Test';
declare module 'egg' {
interface IService {
- test: Test;
+ test: ExportTest;
}
}
diff --git a/examples/hello-egg/typings/config/index.d.ts
b/examples/hello-egg/typings/config/index.d.ts
index c8ad026..8ef165d 100644
--- a/examples/hello-egg/typings/config/index.d.ts
+++ b/examples/hello-egg/typings/config/index.d.ts
@@ -1,15 +1,11 @@
-// This file was auto created by egg-ts-helper
+// This file is created by [email protected]
// Do not modify this file!!!!!!!!!
-import 'egg'; // Make sure ts to import egg declaration at first
+import 'egg';
import { EggAppConfig } from 'egg';
import ExportConfigDefault from '../../config/config.default';
-import ExportConfigLocal from '../../config/config.local';
-import ExportConfigProd from '../../config/config.prod';
type ConfigDefault = ReturnType<typeof ExportConfigDefault>;
-type ConfigLocal = ReturnType<typeof ExportConfigLocal>;
-type ConfigProd = ReturnType<typeof ExportConfigProd>;
declare module 'egg' {
- type NewEggAppConfig = ConfigDefault & ConfigLocal & ConfigProd;
- interface EggAppConfig extends NewEggAppConfig { };
+ type NewEggAppConfig = ConfigDefault;
+ interface EggAppConfig extends NewEggAppConfig { }
}
\ No newline at end of file
diff --git a/examples/hello-egg/typings/config/plugin.d.ts
b/examples/hello-egg/typings/config/plugin.d.ts
new file mode 100644
index 0000000..589aaab
--- /dev/null
+++ b/examples/hello-egg/typings/config/plugin.d.ts
@@ -0,0 +1,33 @@
+// This file is created by [email protected]
+// Do not modify this file!!!!!!!!!
+
+import 'egg';
+import 'egg-onerror';
+import 'egg-session';
+import 'egg-i18n';
+import 'egg-watcher';
+import 'egg-multipart';
+import 'egg-security';
+import 'egg-development';
+import 'egg-logrotator';
+import 'egg-schedule';
+import 'egg-static';
+import 'egg-jsonp';
+import 'egg-view';
+import { EggPluginItem } from 'egg';
+declare module 'egg' {
+ interface EggPlugin {
+ onerror?: EggPluginItem;
+ session?: EggPluginItem;
+ i18n?: EggPluginItem;
+ watcher?: EggPluginItem;
+ multipart?: EggPluginItem;
+ security?: EggPluginItem;
+ development?: EggPluginItem;
+ logrotator?: EggPluginItem;
+ schedule?: EggPluginItem;
+ static?: EggPluginItem;
+ jsonp?: EggPluginItem;
+ view?: EggPluginItem;
+ }
+}
\ No newline at end of file
diff --git
a/java/dubbo-demo/dubbo-demo-api/src/main/java/com/alibaba/dubbo/demo/Sex.java
b/java/dubbo-demo/dubbo-demo-api/src/main/java/com/alibaba/dubbo/demo/Sex.java
new file mode 100644
index 0000000..b34b2b3
--- /dev/null
+++
b/java/dubbo-demo/dubbo-demo-api/src/main/java/com/alibaba/dubbo/demo/Sex.java
@@ -0,0 +1,5 @@
+package com.alibaba.dubbo.demo;
+
+public enum Sex {
+ male,female
+}
diff --git
a/java/dubbo-demo/dubbo-demo-api/src/main/java/com/alibaba/dubbo/demo/UserRequest.java
b/java/dubbo-demo/dubbo-demo-api/src/main/java/com/alibaba/dubbo/demo/UserRequest.java
index 8e88373..06f31d1 100644
---
a/java/dubbo-demo/dubbo-demo-api/src/main/java/com/alibaba/dubbo/demo/UserRequest.java
+++
b/java/dubbo-demo/dubbo-demo-api/src/main/java/com/alibaba/dubbo/demo/UserRequest.java
@@ -9,6 +9,7 @@ public class UserRequest implements Serializable {
private Integer id;
private String name;
private String email;
+ private Sex sex;
public Integer getId() {
@@ -35,12 +36,22 @@ public class UserRequest implements Serializable {
this.email = email;
}
+ public Sex getSex() {
+ return sex;
+ }
+
+ public void setSex(Sex sex) {
+ this.sex = sex;
+ }
+
@Override
public String toString() {
return "UserRequest{" +
"id=" + id +
", name='" + name + '\'' +
+ ", sex='" + sex + '\'' +
", email='" + email + '\'' +
'}';
}
+
}
diff --git a/packages/interpret-cli/README.md b/packages/interpret-cli/README.md
index 2c924eb..c3cbd23 100644
--- a/packages/interpret-cli/README.md
+++ b/packages/interpret-cli/README.md
@@ -618,6 +618,15 @@ function minusRedundancy(itemParam: any) {
## FAQ:
### q1:How to integrate with the project?
+There are two ways to use it.
+
+1. Embedding projects directly;
+
+2. Publish NPM packages;
+
+The first approach is very suitable for a small number of Dubbo interfaces,
single projects; see [hello-egg](../../examples/hello-egg/)
+
+The second approach is suitable for large-scale projects, especially
multi-project shared interfaces; see [Automatic Translation Service]
(https://github.com/creasy2010/auto-translator)
**_Tip_** 生成的代码可以发 npm 包供其他业务线使用或直接在项目中引用