diff --git a/README.md b/README.md
index 836504c2..dbde4c0a 100644
--- a/README.md
+++ b/README.md
@@ -22,9 +22,8 @@
-----------
Why is zfoo protocol ?
-----------
-- 目前的Java二进制序列化和反序列化速度最快的框架,并且为序列化字节最少的框架
-- 自定义协议格式的私有化序列化框架,同时能够前后兼容,更加安全,防止破解
-- 协议目前原生支持 C++ Java Javascript C# Lua GDScript,可以轻易实现跨平台
+- 目前的Java二进制序列化和反序列化速度最快的自定义格式框架,并且为序列化字节最少的框架,更加安全,可前后兼容
+- 协议目前原生支持 C++ C# Java Javascript TypeScript GDScript Lua,可以轻易实现跨平台
- 单线程的Benchmark测试中,序列化和反序列化速度比Protobuf快50%,比Kryo快100%
Ⅰ. zfoo简介🚩
diff --git a/net/src/main/java/com/zfoo/net/config/model/NetConfig.java b/net/src/main/java/com/zfoo/net/config/model/NetConfig.java
index 9a7f944b..016653d8 100644
--- a/net/src/main/java/com/zfoo/net/config/model/NetConfig.java
+++ b/net/src/main/java/com/zfoo/net/config/model/NetConfig.java
@@ -36,6 +36,7 @@ public class NetConfig {
private String protocolParam;
// 是否生成对应语言的协议
private boolean javascriptProtocol;
+ private boolean typescriptProtocol;
private boolean csharpProtocol;
private boolean luaProtocol;
private boolean gdscriptProtocol;
@@ -173,6 +174,14 @@ public class NetConfig {
this.cppProtocol = cppProtocol;
}
+ public boolean isTypescriptProtocol() {
+ return typescriptProtocol;
+ }
+
+ public void setTypescriptProtocol(boolean typescriptProtocol) {
+ this.typescriptProtocol = typescriptProtocol;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
diff --git a/net/src/main/java/com/zfoo/net/packet/service/PacketService.java b/net/src/main/java/com/zfoo/net/packet/service/PacketService.java
index aed15499..411b3119 100644
--- a/net/src/main/java/com/zfoo/net/packet/service/PacketService.java
+++ b/net/src/main/java/com/zfoo/net/packet/service/PacketService.java
@@ -90,6 +90,9 @@ public class PacketService implements IPacketService {
if (netConfig.isJavascriptProtocol()) {
generateOperation.getGenerateLanguages().add(CodeLanguage.JavaScript);
}
+ if (netConfig.isTypescriptProtocol()) {
+ generateOperation.getGenerateLanguages().add(CodeLanguage.TypeScript);
+ }
if (netConfig.isCsharpProtocol()) {
generateOperation.getGenerateLanguages().add(CodeLanguage.CSharp);
}
diff --git a/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java b/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java
index 552bbbe1..1d541a60 100644
--- a/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java
+++ b/net/src/main/java/com/zfoo/net/schema/NetDefinitionParser.java
@@ -90,6 +90,7 @@ public class NetDefinitionParser implements BeanDefinitionParser {
resolvePlaceholder("id", "id", builder, element, parserContext);
resolvePlaceholder("protocol-location", "protocolLocation", builder, element, parserContext);
resolvePlaceholder("javascript-protocol", "javascriptProtocol", builder, element, parserContext);
+ resolvePlaceholder("typescript-protocol", "typescriptProtocol", builder, element, parserContext);
resolvePlaceholder("csharp-protocol", "csharpProtocol", builder, element, parserContext);
resolvePlaceholder("lua-protocol", "luaProtocol", builder, element, parserContext);
resolvePlaceholder("gdscript-protocol", "gdscriptProtocol", builder, element, parserContext);
diff --git a/net/src/main/resources/net-1.0.xsd b/net/src/main/resources/net-1.0.xsd
index 89150b4c..be4352e1 100644
--- a/net/src/main/resources/net-1.0.xsd
+++ b/net/src/main/resources/net-1.0.xsd
@@ -67,6 +67,7 @@
+
diff --git a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java
index 0b0c17f6..4b5354ab 100644
--- a/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java
+++ b/protocol/src/main/java/com/zfoo/protocol/registration/ProtocolAnalysis.java
@@ -31,6 +31,7 @@ import com.zfoo.protocol.serializer.javascript.GenerateJsUtils;
import com.zfoo.protocol.serializer.lua.GenerateLuaUtils;
import com.zfoo.protocol.serializer.protobuf.GenerateProtobufUtils;
import com.zfoo.protocol.serializer.reflect.*;
+import com.zfoo.protocol.serializer.typescript.GenerateTsUtils;
import com.zfoo.protocol.util.AssertionUtils;
import com.zfoo.protocol.util.ReflectionUtils;
import com.zfoo.protocol.util.StringUtils;
@@ -205,6 +206,7 @@ public class ProtocolAnalysis {
GenerateCppUtils.clear();
GenerateCsUtils.clear();
GenerateJsUtils.clear();
+ GenerateTsUtils.clear();
GenerateLuaUtils.clear();
GenerateGdUtils.clear();
GenerateProtobufUtils.clear();
diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java
index 7bcf5082..4a153c8b 100644
--- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java
+++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/GenerateTsUtils.java
@@ -77,6 +77,7 @@ public abstract class GenerateTsUtils {
public static void clear() {
protocolOutputRootPath = null;
+ tsSerializerMap = null;
}
public static void createProtocolManager(List protocolList) throws IOException {
diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsArraySerializer.java
index 1ad0e481..1c6eca4a 100644
--- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsArraySerializer.java
+++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsArraySerializer.java
@@ -40,7 +40,7 @@ public class TsArraySerializer implements ITsSerializer {
@Override
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
GenerateProtocolFile.addTab(builder, deep);
- if (CutDownArraySerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.JavaScript)) {
+ if (CutDownArraySerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.TypeScript)) {
return;
}
@@ -69,7 +69,7 @@ public class TsArraySerializer implements ITsSerializer {
@Override
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
GenerateProtocolFile.addTab(builder, deep);
- var cutDown = CutDownArraySerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.JavaScript);
+ var cutDown = CutDownArraySerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.TypeScript);
if (cutDown != null) {
return cutDown;
}
diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsListSerializer.java
index 415449b5..b433c789 100644
--- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsListSerializer.java
+++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsListSerializer.java
@@ -40,7 +40,7 @@ public class TsListSerializer implements ITsSerializer {
@Override
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
GenerateProtocolFile.addTab(builder, deep);
- if (CutDownListSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.JavaScript)) {
+ if (CutDownListSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.TypeScript)) {
return;
}
@@ -69,7 +69,7 @@ public class TsListSerializer implements ITsSerializer {
@Override
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
GenerateProtocolFile.addTab(builder, deep);
- var cutDown = CutDownListSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.JavaScript);
+ var cutDown = CutDownListSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.TypeScript);
if (cutDown != null) {
return cutDown;
}
diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsMapSerializer.java
index 6bbcf2e1..2a211a1d 100644
--- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsMapSerializer.java
+++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsMapSerializer.java
@@ -40,7 +40,7 @@ public class TsMapSerializer implements ITsSerializer {
@Override
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
GenerateProtocolFile.addTab(builder, deep);
- if (CutDownMapSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.JavaScript)) {
+ if (CutDownMapSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.TypeScript)) {
return;
}
@@ -73,7 +73,7 @@ public class TsMapSerializer implements ITsSerializer {
@Override
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
GenerateProtocolFile.addTab(builder, deep);
- var cutDown = CutDownMapSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.JavaScript);
+ var cutDown = CutDownMapSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.TypeScript);
if (cutDown != null) {
return cutDown;
}
diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsSetSerializer.java
index b64f188b..23604d08 100644
--- a/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsSetSerializer.java
+++ b/protocol/src/main/java/com/zfoo/protocol/serializer/typescript/TsSetSerializer.java
@@ -40,7 +40,7 @@ public class TsSetSerializer implements ITsSerializer {
@Override
public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) {
GenerateProtocolFile.addTab(builder, deep);
- if (CutDownSetSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.JavaScript)) {
+ if (CutDownSetSerializer.getInstance().writeObject(builder, objectStr, field, fieldRegistration, CodeLanguage.TypeScript)) {
return;
}
@@ -70,7 +70,7 @@ public class TsSetSerializer implements ITsSerializer {
@Override
public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) {
GenerateProtocolFile.addTab(builder, deep);
- var cutDown = CutDownSetSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.JavaScript);
+ var cutDown = CutDownSetSerializer.getInstance().readObject(builder, field, fieldRegistration, CodeLanguage.TypeScript);
if (cutDown != null) {
return cutDown;
}