diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java index c55e0911..3e257a80 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/GenerateJsUtils.java @@ -18,9 +18,9 @@ import com.zfoo.protocol.generate.GenerateOperation; import com.zfoo.protocol.generate.GenerateProtocolFile; import com.zfoo.protocol.generate.GenerateProtocolNote; import com.zfoo.protocol.generate.GenerateProtocolPath; -import com.zfoo.protocol.model.Pair; import com.zfoo.protocol.registration.IProtocolRegistration; import com.zfoo.protocol.registration.ProtocolRegistration; +import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.reflect.*; import com.zfoo.protocol.util.ClassUtils; @@ -114,38 +114,39 @@ public abstract class GenerateJsUtils { var protocolTemplate = ClassUtils.getFileFromClassPathToString("javascript/ProtocolTemplate.js"); var classNote = GenerateProtocolNote.classNote(protocolId, CodeLanguage.JavaScript); - var valueOfMethod = valueOfMethod(registration); + var fieldDefinition = fieldDefinition(registration); var writeObject = writeObject(registration); var readObject = readObject(registration); protocolTemplate = StringUtils.format(protocolTemplate, classNote, protocolClazzName - , valueOfMethod.getKey().trim(), valueOfMethod.getValue().trim(), protocolClazzName, protocolId, protocolClazzName + , fieldDefinition.trim(), protocolClazzName, protocolId, protocolClazzName , writeObject.trim(), protocolClazzName, protocolClazzName, readObject.trim(), protocolClazzName); var protocolOutputPath = StringUtils.format("{}/{}/{}.js", protocolOutputRootPath , GenerateProtocolPath.getProtocolPath(protocolId), protocolClazzName); FileUtils.writeStringToFile(new File(protocolOutputPath), protocolTemplate, true); } - private static Pair valueOfMethod(ProtocolRegistration registration) { + private static String fieldDefinition(ProtocolRegistration registration) { var protocolId = registration.getId(); var fields = registration.getFields(); - - var fieldValueOf = StringUtils.joinWith(", ", Arrays.stream(fields).map(it -> it.getName()).toList().toArray()); + var fieldRegistrations = registration.getFieldRegistrations(); var fieldDefinitionBuilder = new StringBuilder(); - - for (var field : fields) { + for (int i = 0; i < fields.length; i++) { + var field = fields[i]; + IFieldRegistration fieldRegistration = fieldRegistrations[i]; var fieldName = field.getName(); // 生成注释 - var fileNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.JavaScript); - if (StringUtils.isNotBlank(fileNote)) { - fieldDefinitionBuilder.append(TAB).append(fileNote).append(LS); + var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.JavaScript); + if (StringUtils.isNotBlank(fieldNote)) { + fieldDefinitionBuilder.append(TAB).append(fieldNote).append(LS); } + var triple = jsSerializer(fieldRegistration.serializer()).field(field, fieldRegistration); fieldDefinitionBuilder.append(TAB) - .append(StringUtils.format("this.{} = {};", fieldName, fieldName)) - .append(" // ").append(field.getGenericType().getTypeName())// 生成类型的注释 + .append(StringUtils.format("this.{} = {}; // {}", fieldName, triple.getRight(), triple.getLeft())) .append(LS); + } - return new Pair<>(fieldValueOf, fieldDefinitionBuilder.toString()); + return fieldDefinitionBuilder.toString(); } private static String writeObject(ProtocolRegistration registration) { diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/IJsSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/IJsSerializer.java index 47db6442..453cc892 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/IJsSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/IJsSerializer.java @@ -13,6 +13,7 @@ package com.zfoo.protocol.serializer.javascript; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import java.lang.reflect.Field; @@ -22,6 +23,11 @@ import java.lang.reflect.Field; */ public interface IJsSerializer { + /** + * 获取属性的类型,名称,默认值 + */ + Triple field(Field field, IFieldRegistration fieldRegistration); + void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration); String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsArraySerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsArraySerializer.java index 91594ef8..eccb70b7 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsArraySerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsArraySerializer.java @@ -14,10 +14,12 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.ArrayField; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CutDownArraySerializer; +import com.zfoo.protocol.serializer.typescript.GenerateTsUtils; import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -28,6 +30,12 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsArraySerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + var type = StringUtils.format("Array<{}>", GenerateTsUtils.toTsClassName(field.getType().getComponentType().getSimpleName())); + return new Triple<>(type, field.getName(), "[]"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsBooleanSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsBooleanSerializer.java index a280e9c2..528442ae 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsBooleanSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsBooleanSerializer.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsBooleanSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>("boolean", field.getName(), "false"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsByteSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsByteSerializer.java index 82479d8c..a98c8e5b 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsByteSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsByteSerializer.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsByteSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>("number", field.getName(), "0"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsCharSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsCharSerializer.java deleted file mode 100644 index b73f337c..00000000 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsCharSerializer.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2020 The zfoo Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except - * in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed - * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and limitations under the License. - */ - -package com.zfoo.protocol.serializer.javascript; - -import com.zfoo.protocol.generate.GenerateProtocolFile; -import com.zfoo.protocol.registration.field.IFieldRegistration; -import com.zfoo.protocol.util.StringUtils; - -import java.lang.reflect.Field; - -import static com.zfoo.protocol.util.FileUtils.LS; - -/** - * @author godotg - */ -public class JsCharSerializer implements IJsSerializer { - @Override - public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { - GenerateProtocolFile.addTab(builder, deep); - builder.append(StringUtils.format("buffer.writeChar({});", objectStr)).append(LS); - } - - @Override - public String readObject(StringBuilder builder, int deep, Field field, IFieldRegistration fieldRegistration) { - String result = "result" + GenerateProtocolFile.index.getAndIncrement(); - GenerateProtocolFile.addTab(builder, deep); - builder.append(StringUtils.format("const {} = buffer.readChar();", result)).append(LS); - return result; - } -} diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsDoubleSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsDoubleSerializer.java index 913fa7a4..53bdbeee 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsDoubleSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsDoubleSerializer.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsDoubleSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>("number", field.getName(), "0"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsFloatSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsFloatSerializer.java index de349bdb..1b02b023 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsFloatSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsFloatSerializer.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsFloatSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>("number", field.getName(), "0"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsIntSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsIntSerializer.java index 350ba775..196d8c69 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsIntSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsIntSerializer.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsIntSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>("number", field.getName(), "0"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsListSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsListSerializer.java index dc846d37..cf37e008 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsListSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsListSerializer.java @@ -14,10 +14,12 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.registration.field.ListField; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CutDownListSerializer; +import com.zfoo.protocol.serializer.typescript.GenerateTsUtils; import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -28,6 +30,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsListSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>(GenerateTsUtils.toTsClassName(field.getGenericType().toString()), field.getName(), "[]"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsLongSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsLongSerializer.java index d46458ce..8560f653 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsLongSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsLongSerializer.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsLongSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>("number", field.getName(), "0"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsMapSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsMapSerializer.java index aea1144c..f3434034 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsMapSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsMapSerializer.java @@ -14,10 +14,12 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.registration.field.MapField; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CutDownMapSerializer; +import com.zfoo.protocol.serializer.typescript.GenerateTsUtils; import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -28,6 +30,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsMapSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>(GenerateTsUtils.toTsClassName(field.getGenericType().toString()), field.getName(), "new Map()"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsObjectProtocolSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsObjectProtocolSerializer.java index 7e8410a1..2353e184 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsObjectProtocolSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsObjectProtocolSerializer.java @@ -14,8 +14,10 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.registration.field.ObjectProtocolField; +import com.zfoo.protocol.serializer.enhance.EnhanceObjectProtocolSerializer; import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -26,6 +28,14 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsObjectProtocolSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; + var protocolSimpleName = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(objectProtocolField.getProtocolId()); + var type = StringUtils.format("{} | null", protocolSimpleName); + return new Triple<>(type, field.getName(), "null"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { ObjectProtocolField objectProtocolField = (ObjectProtocolField) fieldRegistration; diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsSetSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsSetSerializer.java index 2713d06c..624d1225 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsSetSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsSetSerializer.java @@ -14,10 +14,12 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.registration.field.SetField; import com.zfoo.protocol.serializer.CodeLanguage; import com.zfoo.protocol.serializer.CutDownSetSerializer; +import com.zfoo.protocol.serializer.typescript.GenerateTsUtils; import com.zfoo.protocol.util.StringUtils; import java.lang.reflect.Field; @@ -28,6 +30,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsSetSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>(GenerateTsUtils.toTsClassName(field.getGenericType().toString()), field.getName(), "new Set()"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsShortSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsShortSerializer.java index 6a8b83b1..c99a3c8c 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsShortSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsShortSerializer.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsShortSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>("number", field.getName(), "0"); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); diff --git a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsStringSerializer.java b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsStringSerializer.java index d5ead111..6b52b82c 100644 --- a/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsStringSerializer.java +++ b/protocol/src/main/java/com/zfoo/protocol/serializer/javascript/JsStringSerializer.java @@ -14,6 +14,7 @@ package com.zfoo.protocol.serializer.javascript; import com.zfoo.protocol.generate.GenerateProtocolFile; +import com.zfoo.protocol.model.Triple; import com.zfoo.protocol.registration.field.IFieldRegistration; import com.zfoo.protocol.util.StringUtils; @@ -25,6 +26,11 @@ import static com.zfoo.protocol.util.FileUtils.LS; * @author godotg */ public class JsStringSerializer implements IJsSerializer { + @Override + public Triple field(Field field, IFieldRegistration fieldRegistration) { + return new Triple<>("string", field.getName(), "\"\""); + } + @Override public void writeObject(StringBuilder builder, String objectStr, int deep, Field field, IFieldRegistration fieldRegistration) { GenerateProtocolFile.addTab(builder, deep); 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 304b86b8..bb2ca4e0 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 @@ -160,10 +160,9 @@ public abstract class GenerateTsUtils { var fields = registration.getFields(); var fieldRegistrations = registration.getFieldRegistrations(); var fieldDefinitionBuilder = new StringBuilder(); - var sequencedFields = ReflectionUtils.notStaticAndTransientFields(registration.getConstructor().getDeclaringClass()); - for (int i = 0; i < sequencedFields.size(); i++) { - var field = sequencedFields.get(i); - IFieldRegistration fieldRegistration = fieldRegistrations[GenerateProtocolFile.indexOf(fields, field)]; + for (int i = 0; i < fields.length; i++) { + var field = fields[i]; + IFieldRegistration fieldRegistration = fieldRegistrations[i]; var fieldName = field.getName(); // 生成注释 var fieldNote = GenerateProtocolNote.fieldNote(protocolId, fieldName, CodeLanguage.TypeScript); diff --git a/protocol/src/main/resources/javascript/ProtocolTemplate.js b/protocol/src/main/resources/javascript/ProtocolTemplate.js index 9f62e2d6..14af85df 100644 --- a/protocol/src/main/resources/javascript/ProtocolTemplate.js +++ b/protocol/src/main/resources/javascript/ProtocolTemplate.js @@ -1,5 +1,5 @@ {} -const {} = function({}) { +const {} = function() { {} }; diff --git a/protocol/src/main/resources/javascript/buffer/ByteBuffer.js b/protocol/src/main/resources/javascript/buffer/ByteBuffer.js index 970a836e..db023527 100644 --- a/protocol/src/main/resources/javascript/buffer/ByteBuffer.js +++ b/protocol/src/main/resources/javascript/buffer/ByteBuffer.js @@ -321,7 +321,7 @@ const ByteBuffer = function() { } } } - return readInt64(new Uint8Array(buffer.slice(0, count))).toString(); + return readInt64(new Uint8Array(buffer.slice(0, count))); }; this.writeFloat = function(value) {