From 94197d99685c56251ca87e129a6b866893abf9f7 Mon Sep 17 00:00:00 2001 From: walon Date: Fri, 30 Jul 2021 13:58:13 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=96=B0=E5=A2=9E=E3=80=91proto,db,cf?= =?UTF-8?q?g=E6=96=B0=E5=A2=9E=20--typescript=5Fbright=5Fpackage=5Fname=20?= =?UTF-8?q?=E5=BF=85=E7=84=B6=EF=BC=8C=E6=94=AF=E6=8C=81=E5=9C=A8typescrip?= =?UTF-8?q?t=E8=AF=AD=E8=A8=80=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B?= =?UTF-8?q?=E4=BB=A5package=E5=BD=A2=E5=BC=8F=E5=BC=95=E5=85=A5bright?= =?UTF-8?q?=E5=8C=85=EF=BC=8C=E7=9B=B8=E6=AF=94=E4=BA=8Erequire=20path?= =?UTF-8?q?=E7=9A=84=E5=BD=A2=E5=BC=8F=EF=BC=8C=E4=BB=A5package=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E5=BC=95=E7=94=A8ByteBuf=E4=B9=8B=E7=B1=BB=E7=9A=84?= =?UTF-8?q?=E7=B1=BB=E6=97=B6=E4=B8=8D=E5=8C=85=E5=90=AB=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E5=90=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Source/DataSources/DataSourceFactory.cs | 2 +- src/Luban.Job.Cfg/Source/JobController.cs | 7 ++- src/Luban.Job.Common/Source/GenArgsBase.cs | 19 ++++-- .../Source/Utils/TypescriptStringTemplate.cs | 35 +++++++++-- src/Luban.Job.Db/Source/JobController.cs | 58 +++++++++++++------ src/Luban.Job.Proto/Source/JobController.cs | 9 +-- 6 files changed, 94 insertions(+), 36 deletions(-) diff --git a/src/Luban.Job.Cfg/Source/DataSources/DataSourceFactory.cs b/src/Luban.Job.Cfg/Source/DataSources/DataSourceFactory.cs index e82d59c..1783fc7 100644 --- a/src/Luban.Job.Cfg/Source/DataSources/DataSourceFactory.cs +++ b/src/Luban.Job.Cfg/Source/DataSources/DataSourceFactory.cs @@ -26,7 +26,7 @@ namespace Luban.Job.Cfg.DataSources source.Load(url, sheetName, stream, exportTestData); return source; } - catch (DataCreateException dce) + catch (DataCreateException) { throw; } diff --git a/src/Luban.Job.Cfg/Source/JobController.cs b/src/Luban.Job.Cfg/Source/JobController.cs index 1ab9378..fd78588 100644 --- a/src/Luban.Job.Cfg/Source/JobController.cs +++ b/src/Luban.Job.Cfg/Source/JobController.cs @@ -521,6 +521,7 @@ namespace Luban.Job.Cfg Action> preContent = (fileContent) => { var brightRequirePath = args.TypescriptBrightRequirePath; + var brightPackageName = args.TypescriptBrightPackageName; bool isGenBinary = genType.EndsWith("bin"); if (isGenBinary) { @@ -530,7 +531,7 @@ namespace Luban.Job.Cfg } else { - fileContent.Add(string.Format(TypescriptStringTemplate.BrightByteBufImportsFormat, brightRequirePath)); + fileContent.Add(TypescriptStringTemplate.GetByteBufImports(brightRequirePath, brightPackageName)); } } @@ -546,9 +547,9 @@ namespace Luban.Job.Cfg { if (isGenBinary) { - fileContent.Add(string.Format(TypescriptStringTemplate.SerializeImportsFormat, brightRequirePath)); + fileContent.Add(TypescriptStringTemplate.GetSerializeImports(brightRequirePath, brightPackageName)); } - fileContent.Add(string.Format(TypescriptStringTemplate.VectorImportsFormat, brightRequirePath)); + fileContent.Add(TypescriptStringTemplate.GetVectorImports(brightRequirePath, brightPackageName)); } fileContent.Add(@$"export namespace {ctx.TopModule} {{"); diff --git a/src/Luban.Job.Common/Source/GenArgsBase.cs b/src/Luban.Job.Common/Source/GenArgsBase.cs index 1c97152..0a5cca0 100644 --- a/src/Luban.Job.Common/Source/GenArgsBase.cs +++ b/src/Luban.Job.Common/Source/GenArgsBase.cs @@ -18,14 +18,15 @@ namespace Luban.Job.Common [Option("typescript_bright_require_path", Required = false, HelpText = "bright require path in typescript")] public string TypescriptBrightRequirePath { get; set; } + [Option("typescript_bright_package_name", Required = false, HelpText = "typescript bright package name")] + public string TypescriptBrightPackageName { get; set; } + [Option("use_puerts_bytebuf", Required = false, HelpText = "use puerts bytebuf class")] public bool UsePuertsByteBuf { get; set; } [Option("embed_bright_types", Required = false, HelpText = "use puerts bytebuf class")] public bool EmbedBrightTypes { get; set; } - - public bool ValidateOutouptCodeDir(ref string errMsg) { if (string.IsNullOrWhiteSpace(this.OutputCodeDir)) @@ -40,14 +41,20 @@ namespace Luban.Job.Common { if (genType.Contains("typescript")) { - if (!this.UsePuertsByteBuf && string.IsNullOrWhiteSpace(this.TypescriptBrightRequirePath)) + if (!string.IsNullOrWhiteSpace(this.TypescriptBrightRequirePath) && !string.IsNullOrWhiteSpace(this.TypescriptBrightPackageName)) { - errMsg = $"while use_puerts_bytebuf is false, should provide option --typescript_bright_require_path"; + errMsg = "can't use options --typescript_bright_require_path and --typescript_bright_package_name at the same time"; return false; } - if (!this.EmbedBrightTypes && string.IsNullOrWhiteSpace(this.TypescriptBrightRequirePath)) + bool hasBrightPathOrPacakge = !string.IsNullOrWhiteSpace(this.TypescriptBrightRequirePath) || !string.IsNullOrWhiteSpace(this.TypescriptBrightPackageName); + if (!this.UsePuertsByteBuf && !hasBrightPathOrPacakge) { - errMsg = $"while embed_bright_types is false, should provide option --typescript_bright_require_path"; + errMsg = "while --use_puerts_bytebuf is false, should provide option --typescript_bright_require_path or --typescript_bright_package_name"; + return false; + } + if (!this.EmbedBrightTypes && !hasBrightPathOrPacakge) + { + errMsg = "while --embed_bright_types is false, should provide option --typescript_bright_require_path or --typescript_bright_package_name"; return false; } } diff --git a/src/Luban.Job.Common/Source/Utils/TypescriptStringTemplate.cs b/src/Luban.Job.Common/Source/Utils/TypescriptStringTemplate.cs index 9b70e86..8c79b56 100644 --- a/src/Luban.Job.Common/Source/Utils/TypescriptStringTemplate.cs +++ b/src/Luban.Job.Common/Source/Utils/TypescriptStringTemplate.cs @@ -12,16 +12,43 @@ namespace Luban.Job.Common.Utils import {Bright} from 'csharp' import ByteBuf = Bright.Serialization.ByteBuf"; - public const string BrightByteBufImportsFormat = "import ByteBuf from '{0}/serialization/ByteBuf'"; + public static string GetByteBufImports(string path, string package) + { + return string.IsNullOrEmpty(package) ? string.Format(BrightByteBufPathImportsFormat, path) : string.Format(BrightByteBufPackageImportsFormat, package); + } - public const string VectorImportsFormat = @" + public const string BrightByteBufPathImportsFormat = "import ByteBuf from '{0}/serialization/ByteBuf'"; + public const string BrightByteBufPackageImportsFormat = "import ByteBuf from '{0}'"; + + public static string GetVectorImports(string path, string package) + { + return string.IsNullOrEmpty(package) ? string.Format(VectorPathImportsFormat, path) : string.Format(VectorPackageImportsFormat, package); + } + + public const string VectorPathImportsFormat = @" import Vector2 from '{0}/math/Vector2' import Vector3 from '{0}/math/Vector3' import Vector4 from '{0}/math/Vector4' "; - public const string SerializeImportsFormat = @"import BeanBase from '{0}/serialization/BeanBase'"; + public const string VectorPackageImportsFormat = @" +import Vector2 from '{0}' +import Vector3 from '{0}' +import Vector4 from '{0}' +"; + public static string GetSerializeImports(string path, string package) + { + return string.IsNullOrEmpty(package) ? string.Format(SerializePathImportsFormat, path) : string.Format(SerializePackageImportsFormat, package); + } - public const string ProtocolImportsFormat = "import Protocol from '{0}/net/Protocol'"; + public const string SerializePathImportsFormat = @"import BeanBase from '{0}/serialization/BeanBase'"; + public const string SerializePackageImportsFormat = @"import BeanBase from '{0}'"; + + public static string GetProtocolImports(string path, string package) + { + return string.IsNullOrEmpty(package) ? string.Format(ProtocolPathImportsFormat, path) : string.Format(ProtocolPackageImportsFormat, package); + } + public const string ProtocolPathImportsFormat = "import Protocol from '{0}/net/Protocol'"; + public const string ProtocolPackageImportsFormat = "import Protocol from '{0}'"; public const string SerializeTypes = @" export interface ISerializable { diff --git a/src/Luban.Job.Db/Source/JobController.cs b/src/Luban.Job.Db/Source/JobController.cs index c5a2983..b74f90e 100644 --- a/src/Luban.Job.Db/Source/JobController.cs +++ b/src/Luban.Job.Db/Source/JobController.cs @@ -131,29 +131,51 @@ namespace Luban.Job.Db { var render = new TypescriptRender(); var brightRequirePath = args.TypescriptBrightRequirePath; + var brightPackageName = args.TypescriptBrightPackageName; tasks.Add(Task.Run(() => { var fileContent = new List(); - fileContent.Add(string.Format(TypescriptStringTemplate.BrightByteBufImportsFormat, brightRequirePath)); + fileContent.Add(TypescriptStringTemplate.GetByteBufImports(brightRequirePath, brightPackageName)); - fileContent.Add(string.Format(TypescriptStringTemplate.SerializeImportsFormat, brightRequirePath)); - fileContent.Add(string.Format(TypescriptStringTemplate.ProtocolImportsFormat, brightRequirePath)); - fileContent.Add(string.Format(TypescriptStringTemplate.VectorImportsFormat, brightRequirePath)); - fileContent.Add($"import {{FieldLogger, FieldLoggerGeneric1, FieldLoggerGeneric2}} from '{brightRequirePath}/transaction/FieldLogger'"); - fileContent.Add($"import TxnBeanBase from '{brightRequirePath}/transaction/TxnBeanBase'"); - fileContent.Add($"import {{TxnTable, TxnTableGeneric}} from '{brightRequirePath}/transaction/TxnTable'"); - fileContent.Add($"import TransactionContext from '{brightRequirePath}/transaction/TransactionContext'"); - fileContent.Add($"import {{FieldTag}} from '{brightRequirePath}/serialization/FieldTag'"); - fileContent.Add($"import TKey from '{brightRequirePath}/storage/TKey'"); - fileContent.Add($"import PList from '{brightRequirePath}/transaction/collections/PList'"); - fileContent.Add($"import PList1 from '{brightRequirePath}/transaction/collections/PList1'"); - fileContent.Add($"import PList2 from '{brightRequirePath}/transaction/collections/PList2'"); - fileContent.Add($"import PSet from '{brightRequirePath}/transaction/collections/PSet'"); - fileContent.Add($"import PMap from '{brightRequirePath}/transaction/collections/PMap'"); - fileContent.Add($"import PMap1 from '{brightRequirePath}/transaction/collections/PMap1'"); - fileContent.Add($"import PMap2 from '{brightRequirePath}/transaction/collections/PMap2'"); - fileContent.Add($"import SerializeFactory from '{brightRequirePath}/serialization/SerializeFactory'"); + fileContent.Add(TypescriptStringTemplate.GetSerializeImports(brightRequirePath, brightPackageName)); + fileContent.Add(TypescriptStringTemplate.GetProtocolImports(brightRequirePath, brightPackageName)); + fileContent.Add(TypescriptStringTemplate.GetVectorImports(brightRequirePath, brightPackageName)); + + if (!string.IsNullOrEmpty(brightRequirePath)) + { + fileContent.Add($"import {{FieldLogger, FieldLoggerGeneric1, FieldLoggerGeneric2}} from '{brightRequirePath}/transaction/FieldLogger'"); + fileContent.Add($"import TxnBeanBase from '{brightRequirePath}/transaction/TxnBeanBase'"); + fileContent.Add($"import {{TxnTable, TxnTableGeneric}} from '{brightRequirePath}/transaction/TxnTable'"); + fileContent.Add($"import TransactionContext from '{brightRequirePath}/transaction/TransactionContext'"); + fileContent.Add($"import {{FieldTag}} from '{brightRequirePath}/serialization/FieldTag'"); + fileContent.Add($"import TKey from '{brightRequirePath}/storage/TKey'"); + fileContent.Add($"import PList from '{brightRequirePath}/transaction/collections/PList'"); + fileContent.Add($"import PList1 from '{brightRequirePath}/transaction/collections/PList1'"); + fileContent.Add($"import PList2 from '{brightRequirePath}/transaction/collections/PList2'"); + fileContent.Add($"import PSet from '{brightRequirePath}/transaction/collections/PSet'"); + fileContent.Add($"import PMap from '{brightRequirePath}/transaction/collections/PMap'"); + fileContent.Add($"import PMap1 from '{brightRequirePath}/transaction/collections/PMap1'"); + fileContent.Add($"import PMap2 from '{brightRequirePath}/transaction/collections/PMap2'"); + fileContent.Add($"import SerializeFactory from '{brightRequirePath}/serialization/SerializeFactory'"); + } + else + { + fileContent.Add($"import {{FieldLogger, FieldLoggerGeneric1, FieldLoggerGeneric2}} from '{brightPackageName}'"); + fileContent.Add($"import TxnBeanBase from '{brightPackageName}'"); + fileContent.Add($"import {{TxnTable, TxnTableGeneric}} from '{brightPackageName}'"); + fileContent.Add($"import TransactionContext from '{brightPackageName}'"); + fileContent.Add($"import {{FieldTag}} from '{brightPackageName}'"); + fileContent.Add($"import TKey from '{brightPackageName}'"); + fileContent.Add($"import PList from '{brightPackageName}'"); + fileContent.Add($"import PList1 from '{brightPackageName}'"); + fileContent.Add($"import PList2 from '{brightPackageName}'"); + fileContent.Add($"import PSet from '{brightPackageName}'"); + fileContent.Add($"import PMap from '{brightPackageName}'"); + fileContent.Add($"import PMap1 from '{brightPackageName}'"); + fileContent.Add($"import PMap2 from '{brightPackageName}'"); + fileContent.Add($"import SerializeFactory from '{brightPackageName}'"); + } fileContent.Add($"export namespace {ass.TopModule} {{"); diff --git a/src/Luban.Job.Proto/Source/JobController.cs b/src/Luban.Job.Proto/Source/JobController.cs index 76d15e2..609144f 100644 --- a/src/Luban.Job.Proto/Source/JobController.cs +++ b/src/Luban.Job.Proto/Source/JobController.cs @@ -153,6 +153,7 @@ namespace Luban.Job.Proto { var render = new TypescriptRender(); var brightRequirePath = args.TypescriptBrightRequirePath; + var brightPackageName = args.TypescriptBrightPackageName; tasks.Add(Task.Run(() => { @@ -163,7 +164,7 @@ namespace Luban.Job.Proto } else { - fileContent.Add(string.Format(TypescriptStringTemplate.BrightByteBufImportsFormat, brightRequirePath)); + fileContent.Add(TypescriptStringTemplate.GetByteBufImports(brightRequirePath, brightPackageName)); } if (args.EmbedBrightTypes) { @@ -173,9 +174,9 @@ namespace Luban.Job.Proto } else { - fileContent.Add(string.Format(TypescriptStringTemplate.SerializeImportsFormat, brightRequirePath)); - fileContent.Add(string.Format(TypescriptStringTemplate.ProtocolImportsFormat, brightRequirePath)); - fileContent.Add(string.Format(TypescriptStringTemplate.VectorImportsFormat, brightRequirePath)); + fileContent.Add(TypescriptStringTemplate.GetSerializeImports(brightRequirePath, brightPackageName)); + fileContent.Add(TypescriptStringTemplate.GetProtocolImports(brightRequirePath, brightPackageName)); + fileContent.Add(TypescriptStringTemplate.GetVectorImports(brightRequirePath, brightPackageName)); } fileContent.Add(@$"export namespace {ass.TopModule} {{");