From 050310c15c81c5ccd0120cb08e61dfc1ec61ae03 Mon Sep 17 00:00:00 2001 From: walon Date: Fri, 23 Jul 2021 12:04:41 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=AE=8C=E5=96=84=E3=80=91=E5=AE=8C?= =?UTF-8?q?=E5=96=84db=20typescript=20=E7=94=9F=E6=88=90=E3=80=82=E8=A1=A5?= =?UTF-8?q?=E5=85=85table=20key,value=E5=BA=8F=E5=88=97=E5=8C=96=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E5=AE=9E=E7=8E=B0=E3=80=82=20=E3=80=90=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E3=80=91=E4=BF=AE=E5=A4=8DLuban.Client=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=A4=B1=E8=B4=A5=E5=90=8E?= =?UTF-8?q?=E4=B8=8D=E9=80=80=E5=87=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Luban.Client/Source/Program.cs | 15 ++++++-- .../Source/Defs/TTypeTemplateExtends.cs | 10 ++++++ .../Source/Generate/TypescriptRender.cs | 35 ++++++++++--------- 3 files changed, 41 insertions(+), 19 deletions(-) diff --git a/src/Luban.Client/Source/Program.cs b/src/Luban.Client/Source/Program.cs index 09b650e..7837645 100644 --- a/src/Luban.Client/Source/Program.cs +++ b/src/Luban.Client/Source/Program.cs @@ -185,9 +185,18 @@ Options: conn.Wait(); profile.EndPhaseAndLog(); - profile.StartPhase("gen job"); - exitCode = SubmitGenJob(options); - profile.EndPhaseAndLog(); + if (GenClient.Ins.Session.Channel.IsOpen) + { + profile.StartPhase("gen job"); + exitCode = SubmitGenJob(options); + profile.EndPhaseAndLog(); + } + else + { + s_logger.Error("connect fail"); + exitCode = 2; + } + profile.EndPhaseAndLog(); } catch (Exception e) diff --git a/src/Luban.Job.Db/Source/Defs/TTypeTemplateExtends.cs b/src/Luban.Job.Db/Source/Defs/TTypeTemplateExtends.cs index 33be112..3330a6a 100644 --- a/src/Luban.Job.Db/Source/Defs/TTypeTemplateExtends.cs +++ b/src/Luban.Job.Db/Source/Defs/TTypeTemplateExtends.cs @@ -118,5 +118,15 @@ namespace Luban.Job.Db.Defs return type.Apply(DbTypescriptCompatibleDeserializeVisitor.Ins, bufName, fieldName); } } + + public static string DbTsCompatibleSerializeWithoutSegment(string bufName, string fieldName, TType type) + { + return type.Apply(DbTypescriptCompatibleSerializeVisitor.Ins, bufName, fieldName); + } + + public static string DbTsCompatibleDeserializeWithoutSegment(string bufName, string fieldName, TType type) + { + return type.Apply(DbTypescriptCompatibleDeserializeVisitor.Ins, bufName, fieldName); + } } } diff --git a/src/Luban.Job.Db/Source/Generate/TypescriptRender.cs b/src/Luban.Job.Db/Source/Generate/TypescriptRender.cs index e5c132f..48f75bb 100644 --- a/src/Luban.Job.Db/Source/Generate/TypescriptRender.cs +++ b/src/Luban.Job.Db/Source/Generate/TypescriptRender.cs @@ -48,7 +48,6 @@ namespace Luban.Job.Db.Generate readonly_name = ""IReadOnly"" + name }} - {{x.typescript_namespace_begin}} export {{x.ts_class_modifier}} class {{name}} extends {{if parent_def_type}} {{x.parent}} {{else}} TxnBeanBase {{end}}{ {{~ for field in fields~}} @@ -63,23 +62,23 @@ export {{x.ts_class_modifier}} class {{name}} extends {{if parent_def_type}} {{x } {{~ for field in fields~}} - {{ctype = field.ctype}} - {{~if has_setter field.ctype~}} - - private static {{field.log_type}} = class extends FieldLoggerGeneric2<{{name}}, {{db_ts_define_type field.ctype}}> { - constructor(self:{{name}}, value: {{db_ts_define_type field.ctype}}) { super(self, value) } + {{~ctype = field.ctype~}} + {{~if has_setter ctype~}} + private static {{field.log_type}} = class extends FieldLoggerGeneric2<{{name}}, {{db_ts_define_type ctype}}> { + constructor(self:{{name}}, value: {{db_ts_define_type ctype}}) { super(self, value) } get fieldId(): number { return this.host.getObjectId() + {{field.id}} } + get tagId(): number { return FieldTag.{{tag_name ctype}} } + commit() { this.host.{{field.internal_name}} = this.value } writeBlob(_buf: ByteBuf) { - _buf.WriteInt(FieldTag.{{tag_name field.ctype}}); - {{ts_write_blob '_buf' 'this.value' field.ctype}} + {{ts_write_blob '_buf' 'this.value' ctype}} } } - get {{field.ts_style_name}}(): {{db_ts_define_type field.ctype}} { + get {{field.ts_style_name}}(): {{db_ts_define_type ctype}} { if (this.isManaged) { var txn = TransactionContext.current if (txn == null) return {{field.internal_name_with_this}} @@ -90,14 +89,14 @@ export {{x.ts_class_modifier}} class {{name}} extends {{if parent_def_type}} {{x } } - set {{field.ts_style_name}}(value: {{db_ts_define_type field.ctype}}) { + set {{field.ts_style_name}}(value: {{db_ts_define_type ctype}}) { {{~if db_field_cannot_null~}} if (value == null) throw new Error() {{~end~}} if (this.isManaged) { let txn = TransactionContext.current txn.putFieldLong(this.getObjectId() + {{field.id}}, new {{name}}.{{field.log_type}}(this, value)) - {{~if field.ctype.need_set_children_root~}} + {{~if ctype.need_set_children_root~}} value?.initRoot(this.getRoot()) {{~end~}} } else { @@ -106,7 +105,7 @@ export {{x.ts_class_modifier}} class {{name}} extends {{if parent_def_type}} {{x } {{~else~}} - get {{field.ts_style_name}}(): {{db_ts_define_type field.ctype}} { return {{field.internal_name_with_this}} } + get {{field.ts_style_name}}(): {{db_ts_define_type ctype}} { return {{field.internal_name_with_this}} } {{~end~}} {{~end~}} @@ -198,19 +197,23 @@ export {{x.ts_class_modifier}} class {{name}} extends {{if parent_def_type}} {{x newValue(): {{db_ts_define_type value_ttype}} { return new {{db_ts_define_type value_ttype}}() } serializeKey(buf: ByteBuf, key: {{db_ts_define_type key_ttype}}) { - throw new Error('Method not implemented.') + {{db_ts_compatible_serialize_without_segment 'buf' 'key' key_ttype}} } serializeValue(buf: ByteBuf, value: {{db_ts_define_type value_ttype}}) { - throw new Error('Method not implemented.') + {{db_ts_compatible_serialize_without_segment 'buf' 'value' value_ttype}} } deserializeKey(buf: ByteBuf): {{db_ts_define_type key_ttype}} { - throw new Error('Method not implemented.') + let key: {{db_ts_define_type key_ttype}} + {{db_ts_compatible_deserialize_without_segment 'buf' 'key' key_ttype}} + return key } deserializeValue(buf: ByteBuf): {{db_ts_define_type value_ttype}} { - throw new Error('Method not implemented.') + let value = new {{db_ts_define_type value_ttype}}() + {{db_ts_compatible_deserialize_without_segment 'buf' 'value' value_ttype}} + return value } }