export-table-pulgin-csharp 1.1.163 → 1.1.165

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/CSParseTool.d.ts +4 -0
  2. package/dist/CSParseTool.d.ts.map +1 -1
  3. package/dist/CSParseTool.js +40 -1
  4. package/dist/CSProtoParser.d.ts +22 -0
  5. package/dist/CSProtoParser.d.ts.map +1 -0
  6. package/dist/CSProtoParser.js +142 -0
  7. package/dist/ExportCSPlugin.d.ts +2 -1
  8. package/dist/ExportCSPlugin.d.ts.map +1 -1
  9. package/dist/ExportCSPlugin.js +51 -35
  10. package/dist/ExportLiteDBCSPlugin.js +1 -25
  11. package/dist/ExportLiteDBUnityCSJsonPlugin.js +3 -3
  12. package/dist/ExportUnityCSJsonPlugin.js +3 -27
  13. package/dist/ExportUnityMMPPlugin.js +1 -25
  14. package/dist/index.d.ts +1 -1
  15. package/package.json +2 -2
  16. package/src/CSParseTool.ts +15 -0
  17. package/src/CSProtoParser.ts +120 -0
  18. package/src/ExportCSPlugin.ts +52 -11
  19. package/src/ExportLiteDBCSPlugin.ts +2 -2
  20. package/src/ExportLiteDBUnityCSJsonPlugin.ts +4 -4
  21. package/src/ExportUnityCSJsonPlugin.ts +4 -4
  22. package/src/ExportUnityMMPPlugin.ts +2 -2
  23. package/test/src0/ActivityTable.xlsx +0 -0
  24. package/test/src0/AnnouncementTable.xlsx +0 -0
  25. package/test/src0/AntiAddictionTable.xlsx +0 -0
  26. package/test/src0/BattleTable.xlsx +0 -0
  27. package/test/src0/BlackWhiteTable.xlsx +0 -0
  28. package/test/src0/BuffTable.xlsx +0 -0
  29. package/test/src0/CardTable.xlsx +0 -0
  30. package/test/src0/CommonQualityTable.xlsx +0 -0
  31. package/test/src0/CommonTipsTable.xlsx +0 -0
  32. package/test/src0/CommonValueTable.xlsx +0 -0
  33. package/test/src0/CommonVideoTable.xlsx +0 -0
  34. package/test/src0/CoopRuleTable.xlsx +0 -0
  35. package/test/src0/DefaultNameTable.xlsx +0 -0
  36. package/test/src0/EffectLoadTable.xlsx +0 -0
  37. package/test/src0/ErrorCodeTable.xlsx +0 -0
  38. package/test/src0/FAreaEffectTable.xlsx +0 -0
  39. package/test/src0/FHaloBuffTable.xlsx +0 -0
  40. package/test/src0/FiveAttributeTable.xlsx +0 -0
  41. package/test/src0/FlyerTable.xlsx +0 -0
  42. package/test/src0/FormationTable.xlsx +0 -0
  43. package/test/src0/GameUITable.xlsx +0 -0
  44. package/test/src0/GuildRuinsTable.xlsx +0 -0
  45. package/test/src0/GuildTable.xlsx +0 -0
  46. package/test/src0/HeadIconTable.xlsx +0 -0
  47. package/test/src0/InitialDataTable.xlsx +0 -0
  48. package/test/src0/ItemTable.xlsx +0 -0
  49. package/test/src0/LotteryPoolTable.xlsx +0 -0
  50. package/test/src0/MailTable.xlsx +0 -0
  51. package/test/src0/MatchTable.xlsx +0 -0
  52. package/test/src0/ModuleTable.xlsx +0 -0
  53. package/test/src0/MonsterTable.xlsx +0 -0
  54. package/test/src0/NotificationTable.xlsx +0 -0
  55. package/test/src0/PveAdventureTable.xlsx +0 -0
  56. package/test/src0/PveTable.xlsx +0 -0
  57. package/test/src0/PvpTable.xlsx +0 -0
  58. package/test/src0/RankTable.xlsx +0 -0
  59. package/test/src0/RecordTable.xlsx +0 -0
  60. package/test/src0/RedeemTable.xlsx +0 -0
  61. package/test/src0/RefinerTable.xlsx +0 -0
  62. package/test/src0/RobotServerConfigTable.xlsx +0 -0
  63. package/test/src0/ScreenAdaptTable.xlsx +0 -0
  64. package/test/src0/SeasonTimeTable.xlsx +0 -0
  65. package/test/src0/ServerTable.xlsx +0 -0
  66. package/test/src0/ShopTable.xlsx +0 -0
  67. package/test/src0/SkillTable.xlsx +0 -0
  68. package/test/src0/SpellTable.xlsx +0 -0
  69. package/test/src0/SpiritTable.xlsx +0 -0
  70. package/test/src0/StickerTable.xlsx +0 -0
  71. package/test/src0/SummonerTable.xlsx +0 -0
  72. package/test/src0/SutraStarTable.xlsx +0 -0
  73. package/test/src0/SutraSystemTable.xlsx +0 -0
  74. package/test/src0/SutraTable.xlsx +0 -0
  75. package/test/src0/SwitchTable.xlsx +0 -0
  76. package/test/src0/TaskAchieveTaskTable.xlsx +0 -0
  77. package/test/src0/TaskDayTaskTable.xlsx +0 -0
  78. package/test/src0/TaskSevenDayTaskTable.xlsx +0 -0
  79. package/test/src0/TaskTable.xlsx +0 -0
  80. package/test/src0/TipsTable.xlsx +0 -0
  81. package/test/src0/TowerTable.xlsx +0 -0
  82. package/test/src0/TutorialShowTable.xlsx +0 -0
  83. package/test/src0/TutorialTable.xlsx +0 -0
  84. package/test/src0/UnitAttributeTable.xlsx +0 -0
  85. package/test/src0//346/265/213/350/257/225/345/244/226/347/275/256/350/207/252/345/256/232/344/271/211/347/261/273/345/236/213.xlsx +0 -0
  86. package/test/testCSWithProto.bat +1 -0
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import { Field, FieldType, DataTable } from "export-table-lib";
2
3
  export declare function TryConvValue(value: any, t: FieldType, f: Field): any;
3
4
  export declare function ConvValue(value: any, t: FieldType, f: Field): any;
@@ -12,6 +13,8 @@ export declare function genTupleArrayValue(f: Field, content: string): {
12
13
  export declare function ToNewTupleStatement(obj: ValueTuple): string;
13
14
  export declare function ConvValue2Literal(value: any, t: FieldType, f: Field): string;
14
15
  export declare let isSkipExportDefaults0: boolean;
16
+ export declare let isOverwriteWithProto: boolean;
17
+ export declare let overwriteWithProtoPath: string;
15
18
  export declare let firstLetterUpper: (str: string) => string;
16
19
  export declare let firstLetterLower: (str: string) => string;
17
20
  export declare let convMemberName: (str: string) => string;
@@ -30,4 +33,5 @@ export declare const convTupleArrayTypeDefine: (f: Field) => string;
30
33
  export declare function GetUsingJsonToolNamespace(): string;
31
34
  export declare let isEnableMMP: boolean;
32
35
  export declare let useMMPNamespace: string;
36
+ export declare function outputFileSync(savePath: string, content1: any, options: BufferEncoding): void;
33
37
  //# sourceMappingURL=CSParseTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CSParseTool.d.ts","sourceRoot":"","sources":["../src/CSParseTool.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,EAA4D,SAAS,EAAwB,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEtK,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,CAWpE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,CA0CjE;AAED,MAAM,MAAM,UAAU,GAAG;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;CACZ,CAAA;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,UAAU,EAAE,CAAA;CAAE,GAAG,SAAS,CAoDlH;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,UAElD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAwE5E;AAED,eAAO,IAAI,qBAAqB,SAA0D,CAAA;AAE1F,eAAO,IAAI,gBAAgB,QAAkB,MAAM,WAElD,CAAC;AACF,eAAO,IAAI,gBAAgB,QAAkB,MAAM,WAElD,CAAC;AACF,eAAO,IAAI,cAAc,QAAkB,MAAM,WAEhD,CAAA;AACD,eAAO,IAAI,WAAW,QANuB,MAAM,WAMV,CAAA;AAEzC,eAAO,IAAI,mBAAmB,MAAgB,KAAK,WAclD,CAAA;AAED,eAAO,IAAI,YAAY,MAAgB,KAAK,wGAiD3C,CAAA;AAED,eAAO,IAAI,WAAW,MAAgB,KAAK,YAI1C,CAAA;AAED,eAAO,IAAI,kBAAkB,MAAgB,KAAK,WA+CjD,CAAA;AAED,eAAO,IAAI,4BAA4B,MAAgB,KAAK,WAiB3D,CAAA;AAED,eAAO,IAAI,cAAc,WAAqB,SAAS,EAAE,SAAS,KAAK,cAEtE,CAAA;AAED,eAAO,MAAM,QAAQ,UAAW,GAAG,KAAK,KAAK,KAAG,MAE/C,CAAA;AAED,eAAO,MAAM,QAAQ,MAAO,KAAK,WAEhC,CAAA;AAED,eAAO,MAAM,YAAY,MAAO,KAAK,aAEpC,CAAA;AAED,eAAO,MAAM,kBAAkB,MAAO,KAAK,sBAc1C,CAAA;AAED,eAAO,MAAM,wBAAwB,MAAO,KAAK,WAYhD,CAAA;AAED,wBAAgB,yBAAyB,WAQxC;AAED,eAAO,IAAI,WAAW,SAAwD,CAAA;AAC9E,eAAO,IAAI,eAAe,QAAgC,CAAA"}
1
+ {"version":3,"file":"CSParseTool.d.ts","sourceRoot":"","sources":["../src/CSParseTool.ts"],"names":[],"mappings":";AACA,OAAO,EAA0B,KAAK,EAA4D,SAAS,EAAwB,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGtK,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,CAWpE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,CA0CjE;AAED,MAAM,MAAM,UAAU,GAAG;IACxB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;CACZ,CAAA;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,UAAU,EAAE,CAAA;CAAE,GAAG,SAAS,CAoDlH;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,UAAU,UAElD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAwE5E;AAED,eAAO,IAAI,qBAAqB,SAA0D,CAAA;AAE1F,eAAO,IAAI,oBAAoB,SAAsB,CAAA;AACrD,eAAO,IAAI,sBAAsB,QAA+D,CAAA;AAEhG,eAAO,IAAI,gBAAgB,QAAkB,MAAM,WAElD,CAAC;AACF,eAAO,IAAI,gBAAgB,QAAkB,MAAM,WAElD,CAAC;AACF,eAAO,IAAI,cAAc,QAAkB,MAAM,WAEhD,CAAA;AACD,eAAO,IAAI,WAAW,QANuB,MAAM,WAMV,CAAA;AAEzC,eAAO,IAAI,mBAAmB,MAAgB,KAAK,WAclD,CAAA;AAED,eAAO,IAAI,YAAY,MAAgB,KAAK,wGAiD3C,CAAA;AAED,eAAO,IAAI,WAAW,MAAgB,KAAK,YAI1C,CAAA;AAED,eAAO,IAAI,kBAAkB,MAAgB,KAAK,WA+CjD,CAAA;AAED,eAAO,IAAI,4BAA4B,MAAgB,KAAK,WAiB3D,CAAA;AAED,eAAO,IAAI,cAAc,WAAqB,SAAS,EAAE,SAAS,KAAK,cAEtE,CAAA;AAED,eAAO,MAAM,QAAQ,UAAW,GAAG,KAAK,KAAK,KAAG,MAE/C,CAAA;AAED,eAAO,MAAM,QAAQ,MAAO,KAAK,WAEhC,CAAA;AAED,eAAO,MAAM,YAAY,MAAO,KAAK,aAEpC,CAAA;AAED,eAAO,MAAM,kBAAkB,MAAO,KAAK,sBAc1C,CAAA;AAED,eAAO,MAAM,wBAAwB,MAAO,KAAK,WAYhD,CAAA;AAED,wBAAgB,yBAAyB,WAQxC;AAED,eAAO,IAAI,WAAW,SAAwD,CAAA;AAC9E,eAAO,IAAI,eAAe,QAAgC,CAAA;AAE1D,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAS7F"}
@@ -1,7 +1,31 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useMMPNamespace = exports.isEnableMMP = exports.GetUsingJsonToolNamespace = exports.convTupleArrayTypeDefine = exports.convTupleArrayType = exports.getDescripts = exports.getTitle = exports.genValue = exports.getFkFieldType = exports.getCustomFieldTypeAnnotation = exports.getFieldAnnotation = exports.isTypeArray = exports.getFieldType = exports.getFieldElementType = exports.convVarName = exports.convMemberName = exports.firstLetterLower = exports.firstLetterUpper = exports.isSkipExportDefaults0 = exports.ConvValue2Literal = exports.ToNewTupleStatement = exports.genTupleArrayValue = exports.ConvValue = exports.TryConvValue = void 0;
26
+ exports.outputFileSync = exports.useMMPNamespace = exports.isEnableMMP = exports.GetUsingJsonToolNamespace = exports.convTupleArrayTypeDefine = exports.convTupleArrayType = exports.getDescripts = exports.getTitle = exports.genValue = exports.getFkFieldType = exports.getCustomFieldTypeAnnotation = exports.getFieldAnnotation = exports.isTypeArray = exports.getFieldType = exports.getFieldElementType = exports.convVarName = exports.convMemberName = exports.firstLetterLower = exports.firstLetterUpper = exports.overwriteWithProtoPath = exports.isOverwriteWithProto = exports.isSkipExportDefaults0 = exports.ConvValue2Literal = exports.ToNewTupleStatement = exports.genTupleArrayValue = exports.ConvValue = exports.TryConvValue = void 0;
4
27
  const export_table_lib_1 = require("export-table-lib");
28
+ const fs = __importStar(require("fs-extra"));
5
29
  function TryConvValue(value, t, f) {
6
30
  try {
7
31
  return ConvValue(value, t, f);
@@ -222,6 +246,9 @@ function ConvValue2Literal(value, t, f) {
222
246
  }
223
247
  exports.ConvValue2Literal = ConvValue2Literal;
224
248
  exports.isSkipExportDefaults0 = process.argv.findIndex(v => v == "--SkipDefaults") >= 0;
249
+ let withProtoIndex = process.argv.findIndex(v => v == "--WithProto");
250
+ exports.isOverwriteWithProto = withProtoIndex >= 0;
251
+ exports.overwriteWithProtoPath = exports.isOverwriteWithProto ? process.argv[withProtoIndex + 1] : "";
225
252
  let firstLetterUpper = function (str) {
226
253
  return str.charAt(0).toUpperCase() + str.slice(1);
227
254
  };
@@ -481,3 +508,15 @@ function GetUsingJsonToolNamespace() {
481
508
  exports.GetUsingJsonToolNamespace = GetUsingJsonToolNamespace;
482
509
  exports.isEnableMMP = process.argv.findIndex(v => v == "--EnableMMPB") >= 0;
483
510
  exports.useMMPNamespace = "using LoadTableMMP.Runtime;";
511
+ function outputFileSync(savePath, content1, options) {
512
+ if (fs.existsSync(savePath)) {
513
+ let content = fs.readFileSync(savePath, options);
514
+ if (content != content1) {
515
+ fs.outputFileSync(savePath, content1, options);
516
+ }
517
+ }
518
+ else {
519
+ fs.outputFileSync(savePath, content1, options);
520
+ }
521
+ }
522
+ exports.outputFileSync = outputFileSync;
@@ -0,0 +1,22 @@
1
+ export declare class FieldInfo {
2
+ name: string;
3
+ isArray: boolean;
4
+ type: string;
5
+ csName: string;
6
+ csType: string;
7
+ setName(n: string): void;
8
+ setType(t: string): void;
9
+ getFieldType(): string;
10
+ }
11
+ export declare class ClassInfo {
12
+ name: string;
13
+ type: "class" | "enum";
14
+ fields: FieldInfo[];
15
+ getFieldInfo(fieldName: string): FieldInfo | undefined;
16
+ }
17
+ export declare class CSProtoParser {
18
+ typeMap: Map<string, ClassInfo>;
19
+ parseProtoFile(filePath: string): void;
20
+ getClassInfo(className: string): ClassInfo | undefined;
21
+ }
22
+ //# sourceMappingURL=CSProtoParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CSProtoParser.d.ts","sourceRoot":"","sources":["../src/CSProtoParser.ts"],"names":[],"mappings":"AAUA,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,OAAO,EAAE,OAAO,CAAQ;IACxB,IAAI,EAAE,MAAM,CAAK;IACjB,MAAM,EAAE,MAAM,CAAK;IACnB,MAAM,EAAE,MAAM,CAAK;IAEnB,OAAO,CAAC,CAAC,EAAE,MAAM;IAOjB,OAAO,CAAC,CAAC,EAAE,MAAM;IAWjB,YAAY;CAGf;AAED,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAK;IACjB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAU;IAChC,MAAM,EAAE,SAAS,EAAE,CAAK;IAExB,YAAY,CAAC,SAAS,EAAE,MAAM;CAIjC;AAED,qBAAa,aAAa;IACtB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAa;IAC5C,cAAc,CAAC,QAAQ,EAAE,MAAM;IA+D/B,YAAY,CAAC,SAAS,EAAE,MAAM;CAGjC"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.CSProtoParser = exports.ClassInfo = exports.FieldInfo = void 0;
27
+ const fs = __importStar(require("fs-extra"));
28
+ const CSParseTool_1 = require("./CSParseTool");
29
+ let fieldTypeMap = {
30
+ ["float"]: "float",
31
+ ["double"]: "double",
32
+ ["int32"]: "int",
33
+ ["bool"]: "bool",
34
+ ["bytes"]: "byte[]",
35
+ };
36
+ class FieldInfo {
37
+ name = "";
38
+ isArray = false;
39
+ type = "";
40
+ csName = "";
41
+ csType = "";
42
+ setName(n) {
43
+ this.name = n;
44
+ this.csName = (0, CSParseTool_1.firstLetterLower)(this.name.split("_")
45
+ .map(t => t.slice(0, 1).toUpperCase() + t.slice(1))
46
+ .join(""));
47
+ }
48
+ setType(t) {
49
+ this.type = t;
50
+ let internalType = fieldTypeMap[this.type];
51
+ if (internalType != undefined) {
52
+ this.csType = internalType;
53
+ }
54
+ else {
55
+ this.csType = t;
56
+ }
57
+ }
58
+ getFieldType() {
59
+ return this.csType;
60
+ }
61
+ }
62
+ exports.FieldInfo = FieldInfo;
63
+ class ClassInfo {
64
+ name = "";
65
+ type = "class";
66
+ fields = [];
67
+ getFieldInfo(fieldName) {
68
+ return this.fields.find(field => field.csName == fieldName);
69
+ }
70
+ }
71
+ exports.ClassInfo = ClassInfo;
72
+ class CSProtoParser {
73
+ typeMap = new Map();
74
+ parseProtoFile(filePath) {
75
+ let content = fs.readFileSync(filePath, "utf-8");
76
+ let curClass = null;
77
+ let codeLines = content.split("\n");
78
+ let messageRegex = /message (\w+)/;
79
+ let enumRegex = /enum (\w+)/;
80
+ let structEndRegex = /^\}/;
81
+ let fieldRegex = /(?:(repeated) )?(\w+) (\w+)\s*=\s*\d+;/;
82
+ let codeLinesLen = codeLines.length;
83
+ let isInClass = false;
84
+ for (let i = 0; i < codeLinesLen; i++) {
85
+ let line = codeLines[i];
86
+ if (!isInClass) {
87
+ // check enter class
88
+ while (true) {
89
+ let m1 = line.match(messageRegex);
90
+ if (m1) {
91
+ let className = m1[1];
92
+ curClass = new ClassInfo();
93
+ console.log(`find class: ${className}`);
94
+ curClass.name = className;
95
+ curClass.type = "class";
96
+ this.typeMap.set(className, curClass);
97
+ isInClass = true;
98
+ break;
99
+ }
100
+ let m2 = line.match(enumRegex);
101
+ if (m2) {
102
+ let enumName = m2[1];
103
+ curClass = new ClassInfo();
104
+ curClass.name = enumName;
105
+ curClass.type = "enum";
106
+ this.typeMap.set(enumName, curClass);
107
+ isInClass = true;
108
+ break;
109
+ }
110
+ break;
111
+ }
112
+ }
113
+ else {
114
+ // check leave class
115
+ let m3 = line.match(structEndRegex);
116
+ if (m3) {
117
+ curClass = null;
118
+ isInClass = false;
119
+ }
120
+ else {
121
+ // parse class fields
122
+ let mField = line.match(fieldRegex);
123
+ if (mField) {
124
+ let isArray = mField[1] == "repeated";
125
+ let fieldType = mField[2];
126
+ let fieldName = mField[3];
127
+ let field = new FieldInfo();
128
+ field.setName(fieldName);
129
+ field.setType(fieldType);
130
+ field.isArray = isArray;
131
+ curClass.fields.push(field);
132
+ console.log(`find field: ${field.csName}, ${field.csType}, ${curClass.fields.length}`);
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ getClassInfo(className) {
139
+ return this.typeMap.get(className);
140
+ }
141
+ }
142
+ exports.CSProtoParser = CSProtoParser;
@@ -1,8 +1,9 @@
1
- import { HandleSheetParams, PluginBase } from "export-table-lib";
1
+ import { HandleSheetParams, PluginBase, HandleBatchParams } from "export-table-lib";
2
2
  export declare function export_stuff(paras: HandleSheetParams): string | null;
3
3
  export declare class ExportPlugin extends PluginBase {
4
4
  name: string;
5
5
  tags: string[];
6
+ handleBatch(paras: HandleBatchParams): void;
6
7
  handleSheet(paras: HandleSheetParams): string | null;
7
8
  }
8
9
  //# sourceMappingURL=ExportCSPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExportCSPlugin.d.ts","sourceRoot":"","sources":["../src/ExportCSPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,iBAAiB,EAA+B,UAAU,EAAsE,MAAM,kBAAkB,CAAA;AAItK,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CA0OpE;AAED,qBAAa,YAAa,SAAQ,UAAU;IAC3C,IAAI,SAAW;IACf,IAAI,EAAE,MAAM,EAAE,CAAS;IAEvB,WAAW,CAAC,KAAK,EAAE,iBAAiB;CAOpC"}
1
+ {"version":3,"file":"ExportCSPlugin.d.ts","sourceRoot":"","sources":["../src/ExportCSPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,iBAAiB,EAA+B,UAAU,EAAE,iBAAiB,EAAmD,MAAM,kBAAkB,CAAA;AAMtK,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CA6QpE;AAED,qBAAa,YAAa,SAAQ,UAAU;IAC3C,IAAI,SAAW;IACf,IAAI,EAAE,MAAM,EAAE,CAAS;IAEvB,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAI3C,WAAW,CAAC,KAAK,EAAE,iBAAiB;CAOpC"}
@@ -1,34 +1,12 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.ExportPlugin = exports.export_stuff = void 0;
27
4
  const export_table_lib_1 = require("export-table-lib");
28
5
  const CSParseTool_1 = require("./CSParseTool");
29
- const fs = __importStar(require("fs-extra"));
6
+ const CSProtoParser_1 = require("./CSProtoParser");
7
+ let protoParser = new CSProtoParser_1.CSProtoParser();
30
8
  function export_stuff(paras) {
31
- let { datas, fields, inject, name, objects, packagename, tables, xxtea, exportNamespace, moreOptions, allTags, } = paras;
9
+ let { datas, fields, inject, name, objects, packagename, tables, table: { nameOrigin, }, xxtea, exportNamespace, moreOptions, allTags, } = paras;
32
10
  let isSkipExportDefaults = !!(moreOptions?.SkipDefaults ?? false);
33
11
  if (CSParseTool_1.isSkipExportDefaults0) {
34
12
  isSkipExportDefaults = true;
@@ -45,17 +23,51 @@ function export_stuff(paras) {
45
23
  customFields.push(f3);
46
24
  }
47
25
  }
26
+ let isValidField;
27
+ let getFieldType2;
28
+ let classNameOrigin = (0, CSParseTool_1.firstLetterUpper)(nameOrigin);
29
+ if (CSParseTool_1.isOverwriteWithProto) {
30
+ let classInfo = protoParser.getClassInfo(classNameOrigin);
31
+ if (classInfo != null) {
32
+ for (let f of classInfo.fields) {
33
+ console.log(`${f.csName}`);
34
+ }
35
+ }
36
+ isValidField = (f) => {
37
+ let fieldInfo = classInfo?.getFieldInfo(f.name);
38
+ console.log(`validf: ${f.name}, ${fieldInfo}`);
39
+ return fieldInfo == null;
40
+ };
41
+ getFieldType2 = (f) => {
42
+ let fieldInfo = classInfo?.getFieldInfo(f.name);
43
+ if (fieldInfo != null) {
44
+ let fieldName = fieldInfo.getFieldType();
45
+ return fieldName;
46
+ }
47
+ else {
48
+ return (0, CSParseTool_1.getFieldType)(f);
49
+ }
50
+ };
51
+ }
52
+ else {
53
+ isValidField = (f) => true;
54
+ getFieldType2 = CSParseTool_1.getFieldType;
55
+ }
56
+ let validFields = fields.filter(f => isValidField(f));
57
+ let mmpPrefix = CSParseTool_1.isOverwriteWithProto ? "[MemoryPackable]" : "";
58
+ let extendClass = CSParseTool_1.isOverwriteWithProto ? ` : ${classNameOrigin}` : "";
59
+ let usingProtoNamespace = CSParseTool_1.isOverwriteWithProto ? "\nusing DXTS.BattleProto;" : "";
48
60
  let isMMPEnabled = allTags.indexOf('csharp:mmp') != -1;
49
61
  let mmpNamespace = isMMPEnabled ? CSParseTool_1.useMMPNamespace : "";
50
62
  let temp = `
51
63
  using System.Collections.Generic;
52
64
  using System.Linq;
53
- using System.Runtime.InteropServices;
65
+ using System.Runtime.InteropServices;${usingProtoNamespace}
54
66
  ${mmpNamespace}
55
67
 
56
68
  namespace ${exportNamespace}{
57
- [System.Serializable]
58
- public partial class ${RowClass} {
69
+ [System.Serializable]${mmpPrefix}
70
+ public partial class ${RowClass}${extendClass} {
59
71
 
60
72
  public static List<${RowClass}> Configs = new List<${RowClass}>()
61
73
  {
@@ -65,7 +77,7 @@ ${(0, export_table_lib_1.foreach)(datas, data => ` new ${RowClass}(${(0, export
65
77
  };
66
78
 
67
79
  public ${RowClass}() { }
68
- public ${RowClass}(${(0, export_table_lib_1.st)(() => customFields.map(f => `${(0, CSParseTool_1.getFieldType)(f)} ${(0, CSParseTool_1.convVarName)(f.name)}`).join(", "))})
80
+ public ${RowClass}(${(0, export_table_lib_1.st)(() => customFields.map(f => `${getFieldType2(f)} ${(0, CSParseTool_1.convVarName)(f.name)}`).join(", "))})
69
81
  {
70
82
  ${(0, export_table_lib_1.foreach)(customFields, f => ` this.${(0, CSParseTool_1.convMemberName)(f.name)} = ${(0, CSParseTool_1.convVarName)(f.name)};`)}
71
83
  }
@@ -84,12 +96,12 @@ ${(0, export_table_lib_1.foreach)(customFields, f => ` this.${(0, CSParseTool_1
84
96
  }
85
97
 
86
98
  ${(0, export_table_lib_1.cmm)( /**生成字段 */)}
87
- ${(0, export_table_lib_1.foreach)(fields, f => `
99
+ ${(0, export_table_lib_1.foreach)(validFields, f => `
88
100
  /// <summary>
89
101
  ${(0, export_table_lib_1.foreach)((0, CSParseTool_1.getDescripts)(f), line => ` /// ${line}`)}
90
102
  /// </summary>
91
103
  ${(0, CSParseTool_1.getFieldAnnotation)(f)}
92
- public ${(0, CSParseTool_1.getFieldType)(f)} ${(0, CSParseTool_1.convMemberName)(f.name)};
104
+ public ${getFieldType2(f)} ${(0, CSParseTool_1.convMemberName)(f.name)};
93
105
 
94
106
  ${(0, export_table_lib_1.iff)(f.rawType.startsWith("@"), () => `
95
107
  /// <summary>
@@ -102,7 +114,7 @@ ${(0, export_table_lib_1.foreach)((0, CSParseTool_1.getDescripts)(f), line => `
102
114
  #region get字段
103
115
  ${(0, export_table_lib_1.foreach)(fields, f => {
104
116
  if (f.nameOrigin != f.name) {
105
- return ` public ${(0, CSParseTool_1.getFieldType)(f)} ${(0, CSParseTool_1.getTitle)(f).replace(" ", "_")} => ${(0, CSParseTool_1.convMemberName)(f.name)};`;
117
+ return ` public ${getFieldType2(f)} ${(0, CSParseTool_1.getTitle)(f).replace(" ", "_")} => ${(0, CSParseTool_1.convMemberName)(f.name)};`;
106
118
  }
107
119
  else {
108
120
  return "";
@@ -116,7 +128,7 @@ ${(0, export_table_lib_1.foreach)(fields, f => {
116
128
  let memberName = (0, CSParseTool_1.convMemberName)(f.name);
117
129
  let paraName = (0, CSParseTool_1.convVarName)(memberName);
118
130
  let tempDictByMemberName = `TempDictBy${memberName}`;
119
- let memberType = (0, CSParseTool_1.getFieldType)(f);
131
+ let memberType = getFieldType2(f);
120
132
  return `
121
133
  protected static Dictionary<${memberType}, ${RowClass}> ${tempDictByMemberName};
122
134
  public static ${RowClass} GetConfigBy${memberName}(${memberType} ${paraName})
@@ -144,7 +156,7 @@ ${(0, export_table_lib_1.foreach)(fields, f => {
144
156
  let memberName = (0, CSParseTool_1.convMemberName)(f.name);
145
157
  let paraName = (0, CSParseTool_1.convVarName)(memberName);
146
158
  let tempRecordsDictByMemberName = `TempRecordsDictBy${memberName}`;
147
- let memberType = (0, CSParseTool_1.getFieldType)(f);
159
+ let memberType = getFieldType2(f);
148
160
  return `
149
161
  protected static Dictionary<${memberType}, ${RowClass}[]> ${tempRecordsDictByMemberName};
150
162
  public static ${RowClass}[] GetConfigsBy${memberName}(${memberType} ${paraName})
@@ -237,10 +249,14 @@ exports.export_stuff = export_stuff;
237
249
  class ExportPlugin extends export_table_lib_1.PluginBase {
238
250
  name = "csharp";
239
251
  tags = ["cs"];
252
+ handleBatch(paras) {
253
+ console.log(`try parse proto: ${CSParseTool_1.overwriteWithProtoPath}`);
254
+ protoParser.parseProtoFile(CSParseTool_1.overwriteWithProtoPath);
255
+ }
240
256
  handleSheet(paras) {
241
257
  let content = export_stuff(paras);
242
258
  if (content != null) {
243
- fs.outputFileSync(paras.outFilePath.fullPath, content, "utf-8");
259
+ (0, CSParseTool_1.outputFileSync)(paras.outFilePath.fullPath, content, "utf-8");
244
260
  }
245
261
  return content;
246
262
  }
@@ -1,32 +1,8 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.ExportLiteDBCSPlugin = exports.export_stuff = void 0;
27
4
  const export_table_lib_1 = require("export-table-lib");
28
5
  const CSParseTool_1 = require("./CSParseTool");
29
- const fs = __importStar(require("fs-extra"));
30
6
  function export_stuff(paras) {
31
7
  let { datas, fields, inject, name, objects, packagename, tables, xxtea, exportNamespace, moreOptions, } = paras;
32
8
  let isSkipExportDefaults = !!(moreOptions?.SkipDefaults ?? false);
@@ -237,7 +213,7 @@ class ExportLiteDBCSPlugin extends export_table_lib_1.PluginBase {
237
213
  if (content != null) {
238
214
  var fullName = `${paras.table.workbookName}-${paras.name}`;
239
215
  let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, ".cs").fullPath;
240
- fs.outputFileSync(savePath, content, "utf-8");
216
+ (0, CSParseTool_1.outputFileSync)(savePath, content, "utf-8");
241
217
  }
242
218
  return content;
243
219
  }
@@ -121,14 +121,14 @@ class ExportLiteDBUJsonPlugin extends export_table_lib_1.PluginBase {
121
121
  let content1 = exportUJsonLoader(paras);
122
122
  if (content1 != null) {
123
123
  let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, "Loader.cs").fullPath;
124
- fs.outputFileSync(savePath, content1, "utf-8");
124
+ (0, CSParseTool_1.outputFileSync)(savePath, content1, "utf-8");
125
125
  }
126
126
  }
127
127
  {
128
128
  let content2 = (0, ExportUnityCSJsonPlugin_1.exportUJson)(paras);
129
129
  if (content2 != null) {
130
130
  let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, ".json").fullPath;
131
- fs.outputFileSync(savePath, content2, "utf-8");
131
+ (0, CSParseTool_1.outputFileSync)(savePath, content2, "utf-8");
132
132
  }
133
133
  return content2;
134
134
  }
@@ -160,7 +160,7 @@ ${(0, export_table_lib_1.foreach)(tables.sort((ta, tb) => ta.name.localeCompare(
160
160
  }
161
161
  `;
162
162
  let savePath = paras.outPath + "/DefaultConfigLoader.cs";
163
- fs.outputFileSync(savePath, temp, "utf-8");
163
+ (0, CSParseTool_1.outputFileSync)(savePath, temp, "utf-8");
164
164
  // var options = new program.Command().option("--litedbpath <string>").parse(process.argv).allowUnknownOption(true).opts()
165
165
  // let litedbpath = options["litedbpath"]
166
166
  let litedbpathIndex = process.argv.indexOf("--litedbpath");
@@ -1,31 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.ExportUJsonPlugin = exports.exportUJsonLoader = exports.exportUJson = void 0;
27
4
  const export_table_lib_1 = require("export-table-lib");
28
- const fs = __importStar(require("fs-extra"));
29
5
  const CSParseTool_1 = require("./CSParseTool");
30
6
  var isSkipIndexLoader0 = process.argv.findIndex(v => v == "--SkipIndexLoader") >= 0;
31
7
  var isWrapObject = process.argv.findIndex(v => v == "--WrapObject") >= 0;
@@ -200,14 +176,14 @@ class ExportUJsonPlugin extends export_table_lib_1.PluginBase {
200
176
  let content1 = exportUJsonLoader(paras);
201
177
  if (content1 != null) {
202
178
  let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, "Loader.cs").fullPath;
203
- fs.outputFileSync(savePath, content1, "utf-8");
179
+ (0, CSParseTool_1.outputFileSync)(savePath, content1, "utf-8");
204
180
  }
205
181
  }
206
182
  {
207
183
  let content2 = exportUJson(paras);
208
184
  if (content2 != null) {
209
185
  let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, ".json").fullPath;
210
- fs.outputFileSync(savePath, content2, "utf-8");
186
+ (0, CSParseTool_1.outputFileSync)(savePath, content2, "utf-8");
211
187
  }
212
188
  return content2;
213
189
  }
@@ -248,7 +224,7 @@ ${(0, export_table_lib_1.foreach)(tables.sort((ta, tb) => ta.name.localeCompare(
248
224
  }
249
225
  `;
250
226
  let savePath = paras.outPath + "/DefaultConfigLoader.cs";
251
- fs.outputFileSync(savePath, temp, "utf-8");
227
+ (0, CSParseTool_1.outputFileSync)(savePath, temp, "utf-8");
252
228
  }
253
229
  }
254
230
  exports.ExportUJsonPlugin = ExportUJsonPlugin;
@@ -1,31 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.ExportUnityMMPPlugin = exports.exportMMP = void 0;
27
4
  const export_table_lib_1 = require("export-table-lib");
28
- const fs = __importStar(require("fs-extra"));
29
5
  const CSParseTool_1 = require("./CSParseTool");
30
6
  var isEnableMMPB = process.argv.findIndex(v => v == "--EnableMMPB") >= 0;
31
7
  let firstLetterUpper = export_table_lib_1.makeFirstLetterUpper;
@@ -132,7 +108,7 @@ class ExportUnityMMPPlugin extends export_table_lib_1.PluginBase {
132
108
  let content1 = exportMMP(paras);
133
109
  if (content1 != null) {
134
110
  let savePath = new export_table_lib_1.OutFilePath(paras.outPath, fullName, "MMP.cs").fullPath;
135
- fs.outputFileSync(savePath, content1, "utf-8");
111
+ (0, CSParseTool_1.outputFileSync)(savePath, content1, "utf-8");
136
112
  }
137
113
  }
138
114
  }
package/dist/index.d.ts CHANGED
@@ -3,5 +3,5 @@ import { ExportLiteDBCSPlugin } from "./ExportLiteDBCSPlugin";
3
3
  import { ExportLiteDBUJsonPlugin } from "./ExportLiteDBUnityCSJsonPlugin";
4
4
  import { ExportUJsonPlugin } from "./ExportUnityCSJsonPlugin";
5
5
  import { ExportUnityMMPPlugin } from "./ExportUnityMMPPlugin";
6
- export declare const ExportPlugins: (ExportCSPlugin | ExportLiteDBCSPlugin | ExportUJsonPlugin | ExportLiteDBUJsonPlugin | ExportUnityMMPPlugin)[];
6
+ export declare const ExportPlugins: (ExportCSPlugin | ExportUJsonPlugin | ExportLiteDBCSPlugin | ExportLiteDBUJsonPlugin | ExportUnityMMPPlugin)[];
7
7
  //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "export-table-pulgin-csharp",
3
- "version": "1.1.163",
3
+ "version": "1.1.165",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {},
@@ -13,7 +13,7 @@
13
13
  "dependencies": {
14
14
  "@types/commander": "2.12.2",
15
15
  "@types/node": "^17.0.18",
16
- "export-table-lib": "^1.0.67",
16
+ "export-table-lib": "^1.0.68",
17
17
  "fs": "^0.0.1-security",
18
18
  "fs-extra": "^10.0.0",
19
19
  "fse": "^4.0.1"
@@ -1,5 +1,6 @@
1
1
 
2
2
  import { cmm, HandleSheetParams, Field, foreach, IPlugin, st, PluginBase, HandleBatchParams, iff, FieldType, makeFirstLetterLower, DataTable } from "export-table-lib"
3
+ import * as fs from "fs-extra"
3
4
 
4
5
  export function TryConvValue(value: any, t: FieldType, f: Field): any {
5
6
  try {
@@ -196,6 +197,9 @@ export function ConvValue2Literal(value: any, t: FieldType, f: Field): string {
196
197
  }
197
198
 
198
199
  export let isSkipExportDefaults0 = process.argv.findIndex(v => v == "--SkipDefaults") >= 0
200
+ let withProtoIndex = process.argv.findIndex(v => v == "--WithProto")
201
+ export let isOverwriteWithProto = withProtoIndex >= 0
202
+ export let overwriteWithProtoPath = isOverwriteWithProto ? process.argv[withProtoIndex + 1] : ""
199
203
 
200
204
  export let firstLetterUpper = function (str: string) {
201
205
  return str.charAt(0).toUpperCase() + str.slice(1);
@@ -407,3 +411,14 @@ export function GetUsingJsonToolNamespace() {
407
411
 
408
412
  export let isEnableMMP = process.argv.findIndex(v => v == "--EnableMMPB") >= 0
409
413
  export let useMMPNamespace = "using LoadTableMMP.Runtime;"
414
+
415
+ export function outputFileSync(savePath: string, content1: any, options: BufferEncoding): void {
416
+ if (fs.existsSync(savePath)) {
417
+ let content = fs.readFileSync(savePath, options)
418
+ if (content != content1) {
419
+ fs.outputFileSync(savePath, content1, options)
420
+ }
421
+ } else {
422
+ fs.outputFileSync(savePath, content1, options)
423
+ }
424
+ }