@colyseus/schema 4.0.2 → 4.0.3

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 (326) hide show
  1. package/{lib → build}/Metadata.d.ts +2 -2
  2. package/{lib → build}/Reflection.d.ts +13 -13
  3. package/{lib → build}/Schema.d.ts +10 -10
  4. package/{lib/src → build}/annotations.d.ts +10 -10
  5. package/build/codegen/languages/cpp.d.ts +3 -0
  6. package/build/codegen/languages/csharp.d.ts +4 -0
  7. package/build/codegen/languages/haxe.d.ts +3 -0
  8. package/{lib → build}/codegen/languages/java.d.ts +2 -2
  9. package/build/codegen/languages/js.d.ts +3 -0
  10. package/build/codegen/languages/lua.d.ts +3 -0
  11. package/build/codegen/languages/ts.d.ts +3 -0
  12. package/{lib → build}/codegen/parser.d.ts +1 -1
  13. package/{lib → build}/decoder/DecodeOperation.d.ts +5 -5
  14. package/{lib/src → build}/decoder/Decoder.d.ts +7 -7
  15. package/{lib → build}/decoder/ReferenceTracker.d.ts +1 -1
  16. package/{lib → build}/decoder/strategy/Callbacks.d.ts +11 -11
  17. package/{lib → build}/decoder/strategy/RawChanges.d.ts +2 -2
  18. package/{lib → build}/decoder/strategy/getDecoderStateCallbacks.d.ts +3 -3
  19. package/{lib → build}/encoder/ChangeTree.d.ts +11 -11
  20. package/{lib → build}/encoder/EncodeOperation.d.ts +5 -5
  21. package/{lib → build}/encoder/Encoder.d.ts +6 -6
  22. package/{lib/src → build}/encoder/Root.d.ts +2 -2
  23. package/{lib/src → build}/encoder/StateView.d.ts +1 -1
  24. package/{lib/src → build}/encoding/assert.d.ts +6 -6
  25. package/{lib/src → build}/encoding/decode.d.ts +1 -1
  26. package/{lib/src → build}/encoding/encode.d.ts +1 -1
  27. package/build/index.cjs.map +1 -0
  28. package/build/index.d.ts +32 -0
  29. package/build/index.mjs.map +1 -0
  30. package/{lib → build}/types/HelperTypes.d.ts +6 -6
  31. package/{lib → build}/types/TypeContext.d.ts +1 -1
  32. package/{lib/src → build}/types/custom/ArraySchema.d.ts +8 -8
  33. package/{lib/src → build}/types/custom/CollectionSchema.d.ts +7 -7
  34. package/{lib → build}/types/custom/MapSchema.d.ts +7 -7
  35. package/{lib/src → build}/types/custom/SetSchema.d.ts +7 -7
  36. package/{lib/src → build}/types/registry.d.ts +2 -2
  37. package/{lib → build}/utils.d.ts +1 -1
  38. package/package.json +9 -10
  39. package/src/Metadata.ts +5 -5
  40. package/src/Reflection.ts +7 -7
  41. package/src/Schema.ts +11 -11
  42. package/src/annotations.ts +13 -13
  43. package/src/codegen/api.ts +3 -3
  44. package/src/codegen/cli.ts +2 -2
  45. package/src/codegen/languages/cpp.ts +2 -2
  46. package/src/codegen/languages/csharp.ts +3 -3
  47. package/src/codegen/languages/haxe.ts +2 -2
  48. package/src/codegen/languages/java.ts +2 -2
  49. package/src/codegen/languages/js.ts +2 -2
  50. package/src/codegen/languages/lua.ts +2 -2
  51. package/src/codegen/languages/ts.ts +2 -2
  52. package/src/codegen/parser.ts +6 -1
  53. package/src/decoder/DecodeOperation.ts +14 -14
  54. package/src/decoder/Decoder.ts +11 -11
  55. package/src/decoder/ReferenceTracker.ts +8 -8
  56. package/src/decoder/strategy/Callbacks.ts +12 -12
  57. package/src/decoder/strategy/RawChanges.ts +2 -2
  58. package/src/decoder/strategy/getDecoderStateCallbacks.ts +10 -10
  59. package/src/encoder/ChangeTree.ts +13 -13
  60. package/src/encoder/EncodeOperation.ts +9 -9
  61. package/src/encoder/Encoder.ts +10 -10
  62. package/src/encoder/Root.ts +4 -4
  63. package/src/encoder/StateView.ts +7 -7
  64. package/src/encoding/assert.ts +6 -6
  65. package/src/encoding/decode.ts +1 -1
  66. package/src/encoding/encode.ts +1 -1
  67. package/src/index.ts +27 -27
  68. package/src/types/HelperTypes.ts +6 -6
  69. package/src/types/TypeContext.ts +3 -3
  70. package/src/types/custom/ArraySchema.ts +11 -11
  71. package/src/types/custom/CollectionSchema.ts +9 -9
  72. package/src/types/custom/MapSchema.ts +10 -10
  73. package/src/types/custom/SetSchema.ts +9 -9
  74. package/src/types/registry.ts +3 -3
  75. package/src/utils.ts +3 -3
  76. package/src/v3_bench.ts +1 -1
  77. package/build/cjs/index.cjs.map +0 -1
  78. package/build/esm/index.mjs.map +0 -1
  79. package/lib/Metadata.js +0 -256
  80. package/lib/Metadata.js.map +0 -1
  81. package/lib/Reflection.js +0 -179
  82. package/lib/Reflection.js.map +0 -1
  83. package/lib/Schema.js +0 -352
  84. package/lib/Schema.js.map +0 -1
  85. package/lib/annotations.d.ts +0 -109
  86. package/lib/annotations.js +0 -473
  87. package/lib/annotations.js.map +0 -1
  88. package/lib/bench_encode.d.ts +0 -1
  89. package/lib/bench_encode.js +0 -91
  90. package/lib/bench_encode.js.map +0 -1
  91. package/lib/benchmark.d.ts +0 -1
  92. package/lib/benchmark.js +0 -218
  93. package/lib/benchmark.js.map +0 -1
  94. package/lib/codegen/api.js +0 -56
  95. package/lib/codegen/api.js.map +0 -1
  96. package/lib/codegen/argv.js +0 -39
  97. package/lib/codegen/argv.js.map +0 -1
  98. package/lib/codegen/cli.js +0 -58
  99. package/lib/codegen/cli.js.map +0 -1
  100. package/lib/codegen/languages/cpp.d.ts +0 -3
  101. package/lib/codegen/languages/cpp.js +0 -258
  102. package/lib/codegen/languages/cpp.js.map +0 -1
  103. package/lib/codegen/languages/csharp.d.ts +0 -4
  104. package/lib/codegen/languages/csharp.js +0 -154
  105. package/lib/codegen/languages/csharp.js.map +0 -1
  106. package/lib/codegen/languages/haxe.d.ts +0 -3
  107. package/lib/codegen/languages/haxe.js +0 -100
  108. package/lib/codegen/languages/haxe.js.map +0 -1
  109. package/lib/codegen/languages/java.js +0 -100
  110. package/lib/codegen/languages/java.js.map +0 -1
  111. package/lib/codegen/languages/js.d.ts +0 -3
  112. package/lib/codegen/languages/js.js +0 -101
  113. package/lib/codegen/languages/js.js.map +0 -1
  114. package/lib/codegen/languages/lua.d.ts +0 -3
  115. package/lib/codegen/languages/lua.js +0 -103
  116. package/lib/codegen/languages/lua.js.map +0 -1
  117. package/lib/codegen/languages/ts.d.ts +0 -3
  118. package/lib/codegen/languages/ts.js +0 -116
  119. package/lib/codegen/languages/ts.js.map +0 -1
  120. package/lib/codegen/parser.js +0 -327
  121. package/lib/codegen/parser.js.map +0 -1
  122. package/lib/codegen/types.js +0 -142
  123. package/lib/codegen/types.js.map +0 -1
  124. package/lib/decoder/DecodeOperation.js +0 -248
  125. package/lib/decoder/DecodeOperation.js.map +0 -1
  126. package/lib/decoder/Decoder.d.ts +0 -21
  127. package/lib/decoder/Decoder.js +0 -114
  128. package/lib/decoder/Decoder.js.map +0 -1
  129. package/lib/decoder/ReferenceTracker.js +0 -135
  130. package/lib/decoder/ReferenceTracker.js.map +0 -1
  131. package/lib/decoder/strategy/Callbacks.js +0 -336
  132. package/lib/decoder/strategy/Callbacks.js.map +0 -1
  133. package/lib/decoder/strategy/RawChanges.js +0 -4
  134. package/lib/decoder/strategy/RawChanges.js.map +0 -1
  135. package/lib/decoder/strategy/getDecoderStateCallbacks.js +0 -274
  136. package/lib/decoder/strategy/getDecoderStateCallbacks.js.map +0 -1
  137. package/lib/encoder/ChangeTree.js +0 -534
  138. package/lib/encoder/ChangeTree.js.map +0 -1
  139. package/lib/encoder/EncodeOperation.js +0 -132
  140. package/lib/encoder/EncodeOperation.js.map +0 -1
  141. package/lib/encoder/Encoder.js +0 -204
  142. package/lib/encoder/Encoder.js.map +0 -1
  143. package/lib/encoder/Root.d.ts +0 -28
  144. package/lib/encoder/Root.js +0 -229
  145. package/lib/encoder/Root.js.map +0 -1
  146. package/lib/encoder/StateView.d.ts +0 -34
  147. package/lib/encoder/StateView.js +0 -279
  148. package/lib/encoder/StateView.js.map +0 -1
  149. package/lib/encoding/assert.d.ts +0 -10
  150. package/lib/encoding/assert.js +0 -49
  151. package/lib/encoding/assert.js.map +0 -1
  152. package/lib/encoding/decode.d.ts +0 -67
  153. package/lib/encoding/decode.js +0 -217
  154. package/lib/encoding/decode.js.map +0 -1
  155. package/lib/encoding/encode.d.ts +0 -40
  156. package/lib/encoding/encode.js +0 -279
  157. package/lib/encoding/encode.js.map +0 -1
  158. package/lib/encoding/spec.js +0 -26
  159. package/lib/encoding/spec.js.map +0 -1
  160. package/lib/index.d.ts +0 -32
  161. package/lib/index.js +0 -39
  162. package/lib/index.js.map +0 -1
  163. package/lib/src/Metadata.d.ts +0 -49
  164. package/lib/src/Metadata.js +0 -256
  165. package/lib/src/Metadata.js.map +0 -1
  166. package/lib/src/Reflection.d.ts +0 -71
  167. package/lib/src/Reflection.js +0 -179
  168. package/lib/src/Reflection.js.map +0 -1
  169. package/lib/src/Schema.d.ts +0 -86
  170. package/lib/src/Schema.js +0 -352
  171. package/lib/src/Schema.js.map +0 -1
  172. package/lib/src/annotations.js +0 -473
  173. package/lib/src/annotations.js.map +0 -1
  174. package/lib/src/bench_encode.d.ts +0 -1
  175. package/lib/src/bench_encode.js +0 -91
  176. package/lib/src/bench_encode.js.map +0 -1
  177. package/lib/src/codegen/api.d.ts +0 -7
  178. package/lib/src/codegen/api.js +0 -56
  179. package/lib/src/codegen/api.js.map +0 -1
  180. package/lib/src/codegen/argv.d.ts +0 -6
  181. package/lib/src/codegen/argv.js +0 -39
  182. package/lib/src/codegen/argv.js.map +0 -1
  183. package/lib/src/codegen/cli.d.ts +0 -1
  184. package/lib/src/codegen/cli.js +0 -58
  185. package/lib/src/codegen/cli.js.map +0 -1
  186. package/lib/src/codegen/languages/cpp.d.ts +0 -3
  187. package/lib/src/codegen/languages/cpp.js +0 -258
  188. package/lib/src/codegen/languages/cpp.js.map +0 -1
  189. package/lib/src/codegen/languages/csharp.d.ts +0 -4
  190. package/lib/src/codegen/languages/csharp.js +0 -154
  191. package/lib/src/codegen/languages/csharp.js.map +0 -1
  192. package/lib/src/codegen/languages/haxe.d.ts +0 -3
  193. package/lib/src/codegen/languages/haxe.js +0 -100
  194. package/lib/src/codegen/languages/haxe.js.map +0 -1
  195. package/lib/src/codegen/languages/java.d.ts +0 -6
  196. package/lib/src/codegen/languages/java.js +0 -100
  197. package/lib/src/codegen/languages/java.js.map +0 -1
  198. package/lib/src/codegen/languages/js.d.ts +0 -3
  199. package/lib/src/codegen/languages/js.js +0 -101
  200. package/lib/src/codegen/languages/js.js.map +0 -1
  201. package/lib/src/codegen/languages/lua.d.ts +0 -3
  202. package/lib/src/codegen/languages/lua.js +0 -103
  203. package/lib/src/codegen/languages/lua.js.map +0 -1
  204. package/lib/src/codegen/languages/ts.d.ts +0 -3
  205. package/lib/src/codegen/languages/ts.js +0 -116
  206. package/lib/src/codegen/languages/ts.js.map +0 -1
  207. package/lib/src/codegen/parser.d.ts +0 -13
  208. package/lib/src/codegen/parser.js +0 -327
  209. package/lib/src/codegen/parser.js.map +0 -1
  210. package/lib/src/codegen/types.d.ts +0 -52
  211. package/lib/src/codegen/types.js +0 -142
  212. package/lib/src/codegen/types.js.map +0 -1
  213. package/lib/src/decoder/DecodeOperation.d.ts +0 -23
  214. package/lib/src/decoder/DecodeOperation.js +0 -248
  215. package/lib/src/decoder/DecodeOperation.js.map +0 -1
  216. package/lib/src/decoder/Decoder.js +0 -114
  217. package/lib/src/decoder/Decoder.js.map +0 -1
  218. package/lib/src/decoder/ReferenceTracker.d.ts +0 -25
  219. package/lib/src/decoder/ReferenceTracker.js +0 -135
  220. package/lib/src/decoder/ReferenceTracker.js.map +0 -1
  221. package/lib/src/decoder/strategy/Callbacks.d.ts +0 -154
  222. package/lib/src/decoder/strategy/Callbacks.js +0 -336
  223. package/lib/src/decoder/strategy/Callbacks.js.map +0 -1
  224. package/lib/src/decoder/strategy/RawChanges.d.ts +0 -3
  225. package/lib/src/decoder/strategy/RawChanges.js +0 -4
  226. package/lib/src/decoder/strategy/RawChanges.js.map +0 -1
  227. package/lib/src/decoder/strategy/getDecoderStateCallbacks.d.ts +0 -76
  228. package/lib/src/decoder/strategy/getDecoderStateCallbacks.js +0 -274
  229. package/lib/src/decoder/strategy/getDecoderStateCallbacks.js.map +0 -1
  230. package/lib/src/encoder/ChangeTree.d.ts +0 -135
  231. package/lib/src/encoder/ChangeTree.js +0 -534
  232. package/lib/src/encoder/ChangeTree.js.map +0 -1
  233. package/lib/src/encoder/EncodeOperation.d.ts +0 -22
  234. package/lib/src/encoder/EncodeOperation.js +0 -132
  235. package/lib/src/encoder/EncodeOperation.js.map +0 -1
  236. package/lib/src/encoder/Encoder.d.ts +0 -22
  237. package/lib/src/encoder/Encoder.js +0 -204
  238. package/lib/src/encoder/Encoder.js.map +0 -1
  239. package/lib/src/encoder/Root.js +0 -229
  240. package/lib/src/encoder/Root.js.map +0 -1
  241. package/lib/src/encoder/StateView.js +0 -279
  242. package/lib/src/encoder/StateView.js.map +0 -1
  243. package/lib/src/encoding/assert.js +0 -49
  244. package/lib/src/encoding/assert.js.map +0 -1
  245. package/lib/src/encoding/decode.js +0 -217
  246. package/lib/src/encoding/decode.js.map +0 -1
  247. package/lib/src/encoding/encode.js +0 -279
  248. package/lib/src/encoding/encode.js.map +0 -1
  249. package/lib/src/encoding/spec.d.ts +0 -24
  250. package/lib/src/encoding/spec.js +0 -26
  251. package/lib/src/encoding/spec.js.map +0 -1
  252. package/lib/src/index.d.ts +0 -32
  253. package/lib/src/index.js +0 -39
  254. package/lib/src/index.js.map +0 -1
  255. package/lib/src/symbol.shim.js +0 -3
  256. package/lib/src/symbol.shim.js.map +0 -1
  257. package/lib/src/types/HelperTypes.d.ts +0 -77
  258. package/lib/src/types/HelperTypes.js +0 -2
  259. package/lib/src/types/HelperTypes.js.map +0 -1
  260. package/lib/src/types/TypeContext.d.ts +0 -31
  261. package/lib/src/types/TypeContext.js +0 -143
  262. package/lib/src/types/TypeContext.js.map +0 -1
  263. package/lib/src/types/custom/ArraySchema.js +0 -733
  264. package/lib/src/types/custom/ArraySchema.js.map +0 -1
  265. package/lib/src/types/custom/CollectionSchema.js +0 -170
  266. package/lib/src/types/custom/CollectionSchema.js.map +0 -1
  267. package/lib/src/types/custom/MapSchema.d.ts +0 -51
  268. package/lib/src/types/custom/MapSchema.js +0 -222
  269. package/lib/src/types/custom/MapSchema.js.map +0 -1
  270. package/lib/src/types/custom/SetSchema.js +0 -178
  271. package/lib/src/types/custom/SetSchema.js.map +0 -1
  272. package/lib/src/types/registry.js +0 -30
  273. package/lib/src/types/registry.js.map +0 -1
  274. package/lib/src/types/symbols.js +0 -34
  275. package/lib/src/types/symbols.js.map +0 -1
  276. package/lib/src/types/utils.js +0 -13
  277. package/lib/src/types/utils.js.map +0 -1
  278. package/lib/src/utils.d.ts +0 -13
  279. package/lib/src/utils.js +0 -49
  280. package/lib/src/utils.js.map +0 -1
  281. package/lib/src/v3_bench.js +0 -128
  282. package/lib/src/v3_bench.js.map +0 -1
  283. package/lib/symbol.shim.d.ts +0 -6
  284. package/lib/symbol.shim.js +0 -3
  285. package/lib/symbol.shim.js.map +0 -1
  286. package/lib/types/HelperTypes.js +0 -2
  287. package/lib/types/HelperTypes.js.map +0 -1
  288. package/lib/types/TypeContext.js +0 -143
  289. package/lib/types/TypeContext.js.map +0 -1
  290. package/lib/types/custom/ArraySchema.d.ts +0 -270
  291. package/lib/types/custom/ArraySchema.js +0 -733
  292. package/lib/types/custom/ArraySchema.js.map +0 -1
  293. package/lib/types/custom/CollectionSchema.d.ts +0 -51
  294. package/lib/types/custom/CollectionSchema.js +0 -170
  295. package/lib/types/custom/CollectionSchema.js.map +0 -1
  296. package/lib/types/custom/MapSchema.js +0 -222
  297. package/lib/types/custom/MapSchema.js.map +0 -1
  298. package/lib/types/custom/SetSchema.d.ts +0 -48
  299. package/lib/types/custom/SetSchema.js +0 -178
  300. package/lib/types/custom/SetSchema.js.map +0 -1
  301. package/lib/types/registry.d.ts +0 -16
  302. package/lib/types/registry.js +0 -30
  303. package/lib/types/registry.js.map +0 -1
  304. package/lib/types/symbols.d.ts +0 -33
  305. package/lib/types/symbols.js +0 -34
  306. package/lib/types/symbols.js.map +0 -1
  307. package/lib/types/utils.d.ts +0 -1
  308. package/lib/types/utils.js +0 -13
  309. package/lib/types/utils.js.map +0 -1
  310. package/lib/utils.js +0 -49
  311. package/lib/utils.js.map +0 -1
  312. package/lib/v3_bench.d.ts +0 -1
  313. package/lib/v3_bench.js +0 -128
  314. package/lib/v3_bench.js.map +0 -1
  315. /package/{lib → build}/codegen/api.d.ts +0 -0
  316. /package/{lib → build}/codegen/argv.d.ts +0 -0
  317. /package/{lib → build}/codegen/cli.d.ts +0 -0
  318. /package/{lib → build}/codegen/types.d.ts +0 -0
  319. /package/{lib → build}/encoding/spec.d.ts +0 -0
  320. /package/build/{cjs/index.cjs → index.cjs} +0 -0
  321. /package/build/{umd/index.js → index.js} +0 -0
  322. /package/build/{esm/index.mjs → index.mjs} +0 -0
  323. /package/{lib/src → build}/symbol.shim.d.ts +0 -0
  324. /package/{lib/src → build}/types/symbols.d.ts +0 -0
  325. /package/{lib/src → build}/types/utils.d.ts +0 -0
  326. /package/{lib/src → build}/v3_bench.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"bench_encode.js","sourceRoot":"","sources":["../src/bench_encode.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAClE,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AAEvC,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;AAEpC,MAAM,YAAa,SAAQ,MAAM;CAGhC;AAFmB;IAAf,IAAI,CAAC,QAAQ,CAAC;0CAAc;AACb;IAAf,IAAI,CAAC,QAAQ,CAAC;2CAAe;AAGlC,MAAM,OAAQ,SAAQ,MAAM;IAA5B;;QAE4B,eAAU,GAAG,IAAI,WAAW,EAAgB,CAAC;IACzE,CAAC;CAAA;AAFmB;IAAf,IAAI,CAAC,QAAQ,CAAC;sCAAe;AACN;IAAvB,IAAI,CAAC,CAAE,YAAY,CAAE,CAAC;2CAA8C;AAGzE,MAAM,WAAY,SAAQ,MAAM;CAG/B;AAFmB;IAAf,IAAI,CAAC,QAAQ,CAAC;sCAAW;AACV;IAAf,IAAI,CAAC,QAAQ,CAAC;sCAAW;AAG9B,MAAM,SAAU,SAAQ,MAAM;IAA9B;;QACuB,aAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QACxB,UAAK,GAAG,IAAI,SAAS,EAAW,CAAC;IAC7D,CAAC;CAAA;AAFsB;IAAlB,IAAI,CAAC,WAAW,CAAC;2CAA8B;AACxB;IAAvB,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;wCAAkC;AAG7D,MAAM,QAAS,SAAQ,MAAM;IAA7B;;QAC8B,YAAO,GAAG,IAAI,SAAS,EAAa,CAAC;IAEnE,CAAC;CAAA;AAF6B;IAAzB,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;yCAAsC;AAC/C;IAAf,IAAI,CAAC,QAAQ,CAAC;6CAAqB;AAGxC,MAAM,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;AAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAE3C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;AACL,CAAC;AAED,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,GAAG,CAAC;AACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AAEnC,+BAA+B;AAE/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;IAC5B,OAAO,CAAC,SAAS,EAAE,CAAC;AACxB,CAAC;AACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC","sourcesContent":["import { nanoid } from \"nanoid\";\nimport { Schema, type, MapSchema, ArraySchema, Encoder } from \".\";\nimport * as benchmark from \"benchmark\";\n\nconst suite = new benchmark.Suite();\n\nclass AttributeNew extends Schema {\n @type(\"string\") name: string;\n @type(\"number\") value: number;\n}\n\nclass ItemNew extends Schema {\n @type(\"number\") price: number;\n @type([ AttributeNew ]) attributes = new ArraySchema<AttributeNew>();\n}\n\nclass PositionNew extends Schema {\n @type(\"number\") x: number;\n @type(\"number\") y: number;\n}\n\nclass PlayerNew extends Schema {\n @type(PositionNew) position = new PositionNew();\n @type({ map: ItemNew }) items = new MapSchema<ItemNew>();\n}\n\nclass StateNew extends Schema {\n @type({ map: PlayerNew }) players = new MapSchema<PlayerNew>();\n @type(\"string\") currentTurn: string;\n}\n\nconst state = new StateNew();\n\nfor (let i = 0; i < 50; i++) {\n const player = new PlayerNew();\n state.players.set(`p-${nanoid()}`, player);\n\n player.position.x = (i + 1) * 100;\n player.position.y = (i + 1) * 100;\n for (let j = 0; j < 10; j++) {\n const item = new ItemNew();\n item.price = (i + 1) * 50;\n for (let k = 0; k < 5; k++) {\n const attr = new AttributeNew();\n attr.name = `Attribute ${k}`;\n attr.value = k;\n item.attributes.push(attr);\n\n }\n player.items.set(`item-${j}`, item);\n }\n}\n\nEncoder.BUFFER_SIZE = 1024 * 128;\nconst encoder = new Encoder(state);\n\n// measure time to .encodeAll()\n\nconst now = Date.now();\nfor (let i = 0; i < 1000; i++) {\n encoder.encodeAll();\n}\nconsole.log(Date.now() - now);\nconsole.log(Array.from(encoder.encodeAll()).join(\",\"));\n"]}
@@ -1 +0,0 @@
1
- export {};
package/lib/benchmark.js DELETED
@@ -1,218 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { nanoid } from "nanoid";
8
- import * as SchemaOld from "./schema-1.0/src";
9
- import * as SchemaNew from "./src";
10
- import * as benchmark from "benchmark";
11
- const suite = new benchmark.Suite();
12
- // ---------- OLD ---------- //
13
- class AttributeOld extends SchemaOld.Schema {
14
- }
15
- __decorate([
16
- SchemaOld.type("string")
17
- ], AttributeOld.prototype, "name", void 0);
18
- __decorate([
19
- SchemaOld.type("number")
20
- ], AttributeOld.prototype, "value", void 0);
21
- class ItemOld extends SchemaOld.Schema {
22
- constructor() {
23
- super(...arguments);
24
- this.attributes = new SchemaOld.MapSchema();
25
- }
26
- }
27
- __decorate([
28
- SchemaOld.type("number")
29
- ], ItemOld.prototype, "price", void 0);
30
- __decorate([
31
- SchemaOld.type({ map: AttributeOld })
32
- ], ItemOld.prototype, "attributes", void 0);
33
- class PositionOld extends SchemaOld.Schema {
34
- }
35
- __decorate([
36
- SchemaOld.type("number")
37
- ], PositionOld.prototype, "x", void 0);
38
- __decorate([
39
- SchemaOld.type("number")
40
- ], PositionOld.prototype, "y", void 0);
41
- class PlayerOld extends SchemaOld.Schema {
42
- constructor() {
43
- super(...arguments);
44
- this.position = new PositionOld();
45
- this.items = new SchemaOld.MapSchema();
46
- }
47
- }
48
- __decorate([
49
- SchemaOld.type(PositionOld)
50
- ], PlayerOld.prototype, "position", void 0);
51
- __decorate([
52
- SchemaOld.type({ map: ItemOld })
53
- ], PlayerOld.prototype, "items", void 0);
54
- class StateOld extends SchemaOld.Schema {
55
- constructor() {
56
- super(...arguments);
57
- this.players = new SchemaOld.MapSchema();
58
- }
59
- }
60
- __decorate([
61
- SchemaOld.type({ map: PlayerOld })
62
- ], StateOld.prototype, "players", void 0);
63
- const oldSchema = new StateOld();
64
- for (let i = 0; i < 50; i++) {
65
- const player = new PlayerOld();
66
- oldSchema.players.set(`p-${nanoid()}`, player);
67
- player.position.x = Math.random() * 500;
68
- player.position.y = Math.random() * 500;
69
- for (let j = 0; j < 10; j++) {
70
- const item = new ItemOld();
71
- item.price = Math.random() * 50;
72
- for (let k = 0; k < 5; k++) {
73
- const attr = new AttributeOld();
74
- attr.name = `Attribute ${k}`;
75
- attr.value = k;
76
- item.attributes.set(`attr-${k}`, attr);
77
- }
78
- player.items.set(`item-${j}`, item);
79
- }
80
- }
81
- const oldEncoded = oldSchema.encode();
82
- oldSchema.players.forEach((player) => {
83
- player.position.x++;
84
- player.position.y++;
85
- });
86
- const oldPatch = oldSchema.encode();
87
- // ---------- OLD ---------- //
88
- // ---------- NEW ---------- //
89
- class AttributeNew extends SchemaNew.Schema {
90
- }
91
- __decorate([
92
- SchemaNew.type("string")
93
- ], AttributeNew.prototype, "name", void 0);
94
- __decorate([
95
- SchemaNew.type("number")
96
- ], AttributeNew.prototype, "value", void 0);
97
- class ItemNew extends SchemaNew.Schema {
98
- constructor() {
99
- super(...arguments);
100
- this.attributes = new SchemaNew.MapSchema();
101
- }
102
- }
103
- __decorate([
104
- SchemaNew.type("number")
105
- ], ItemNew.prototype, "price", void 0);
106
- __decorate([
107
- SchemaNew.type({ map: AttributeNew })
108
- ], ItemNew.prototype, "attributes", void 0);
109
- class PositionNew extends SchemaNew.Schema {
110
- }
111
- __decorate([
112
- SchemaNew.type("number")
113
- ], PositionNew.prototype, "x", void 0);
114
- __decorate([
115
- SchemaNew.type("number")
116
- ], PositionNew.prototype, "y", void 0);
117
- class PlayerNew extends SchemaNew.Schema {
118
- constructor() {
119
- super(...arguments);
120
- this.position = new PositionNew();
121
- this.items = new SchemaNew.MapSchema();
122
- }
123
- }
124
- __decorate([
125
- SchemaNew.type(PositionNew)
126
- ], PlayerNew.prototype, "position", void 0);
127
- __decorate([
128
- SchemaNew.type({ map: ItemNew })
129
- ], PlayerNew.prototype, "items", void 0);
130
- class StateNew extends SchemaNew.Schema {
131
- constructor() {
132
- super(...arguments);
133
- this.players = new SchemaNew.MapSchema();
134
- }
135
- }
136
- __decorate([
137
- SchemaNew.type({ map: PlayerNew })
138
- ], StateNew.prototype, "players", void 0);
139
- __decorate([
140
- SchemaNew.type("string")
141
- ], StateNew.prototype, "currentTurn", void 0);
142
- const newSchema = new StateNew();
143
- for (let i = 0; i < 50; i++) {
144
- const player = new PlayerNew();
145
- newSchema.players.set(`p-${nanoid()}`, player);
146
- player.position.x = Math.random() * 500;
147
- player.position.y = Math.random() * 500;
148
- // for (let j = 0; j < 10; j++) {
149
- // const item = new ItemNew();
150
- // item.price = Math.random() * 50;
151
- // for (let k = 0; k < 5; k++) {
152
- // const attr = new AttributeNew();
153
- // attr.name = `Attribute ${k}`;
154
- // attr.value = k;
155
- // item.attributes.set(`attr-${k}`, attr);
156
- // }
157
- // player.items.set(`item-${j}`, item);
158
- // }
159
- }
160
- const newEncoded = newSchema.encode();
161
- newSchema.players.forEach((player) => {
162
- player.position.x++;
163
- player.position.y++;
164
- });
165
- const newPatch = newSchema.encode();
166
- // ---------- NEW ---------- //
167
- function useOld() {
168
- const schema = new StateOld();
169
- schema.players.onAdd = (player, playerKey) => {
170
- player.items.onAdd = (item, itemKey) => {
171
- item.attributes.onAdd = (attr, attrKey) => {
172
- };
173
- item.attributes.onRemove = (attr, attrKey) => {
174
- };
175
- };
176
- player.items.onRemove = (item, itemKey) => {
177
- };
178
- player.onChange = (changes) => {
179
- };
180
- };
181
- schema.decode(oldEncoded);
182
- schema.decode(oldPatch);
183
- }
184
- function useNew() {
185
- const schema = new StateNew();
186
- schema.players.onAdd((player, playerKey) => {
187
- player.position.listen("x", (value, previousValue) => {
188
- });
189
- player.position.onChange(() => {
190
- });
191
- player.items.onAdd((item, itemKey) => {
192
- item.attributes.onAdd((attr, attrKey) => {
193
- });
194
- item.attributes.onRemove((attr, attrKey) => {
195
- });
196
- item.attributes.onChange((attr, attrKey) => {
197
- });
198
- });
199
- player.items.onRemove((item, itemKey) => {
200
- });
201
- player.onChange(() => {
202
- // console.log("player onChange!", playerKey);
203
- });
204
- });
205
- schema.players.onChange((item, key) => {
206
- });
207
- // console.log("FIRST DECODE!");
208
- schema.decode(newEncoded);
209
- // console.log("SECOND DECODE!");
210
- schema.decode(newPatch);
211
- }
212
- suite.add("Decode OLD", () => useOld());
213
- suite.add("Decode NEW", () => useNew());
214
- suite.on('cycle', (event) => console.log(String(event.target)));
215
- suite.on('complete', () => console.log('Fastest is ' + suite.filter('fastest').map('name')));
216
- suite.run();
217
- useNew();
218
- //# sourceMappingURL=benchmark.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../benchmark.ts"],"names":[],"mappings":"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","sourcesContent":["import { nanoid } from \"nanoid\";\nimport * as SchemaOld from \"./schema-1.0/src\";\nimport * as SchemaNew from \"./src\";\nimport * as benchmark from \"benchmark\";\n\nconst suite = new benchmark.Suite();\n\n// ---------- OLD ---------- //\nclass AttributeOld extends SchemaOld.Schema {\n @SchemaOld.type(\"string\") name: string;\n @SchemaOld.type(\"number\") value: number;\n}\n\nclass ItemOld extends SchemaOld.Schema {\n @SchemaOld.type(\"number\") price: number;\n @SchemaOld.type({ map: AttributeOld }) attributes = new SchemaOld.MapSchema<AttributeOld>();\n}\n\nclass PositionOld extends SchemaOld.Schema {\n @SchemaOld.type(\"number\") x: number;\n @SchemaOld.type(\"number\") y: number;\n}\n\nclass PlayerOld extends SchemaOld.Schema {\n @SchemaOld.type(PositionOld) position = new PositionOld();\n @SchemaOld.type({ map: ItemOld }) items = new SchemaOld.MapSchema<ItemOld>();\n}\n\nclass StateOld extends SchemaOld.Schema {\n @SchemaOld.type({ map: PlayerOld }) players = new SchemaOld.MapSchema<PlayerOld>();\n}\n\nconst oldSchema = new StateOld();\nfor (let i=0; i<50; i++) {\n const player = new PlayerOld();\n oldSchema.players.set(`p-${nanoid()}`, player);\n\n player.position.x = Math.random() * 500;\n player.position.y = Math.random() * 500;\n for (let j = 0; j < 10; j++) {\n const item = new ItemOld();\n item.price = Math.random() * 50;\n for (let k = 0; k < 5; k++) {\n const attr = new AttributeOld();\n attr.name = `Attribute ${k}`;\n attr.value = k;\n item.attributes.set(`attr-${k}`, attr);\n\n }\n player.items.set(`item-${j}`, item);\n }\n}\n\nconst oldEncoded = oldSchema.encode();\noldSchema.players.forEach((player) => {\n player.position.x++;\n player.position.y++;\n});\nconst oldPatch = oldSchema.encode();\n// ---------- OLD ---------- //\n\n// ---------- NEW ---------- //\nclass AttributeNew extends SchemaNew.Schema {\n @SchemaNew.type(\"string\") name: string;\n @SchemaNew.type(\"number\") value: number;\n}\n\nclass ItemNew extends SchemaNew.Schema {\n @SchemaNew.type(\"number\") price: number;\n @SchemaNew.type({ map: AttributeNew }) attributes = new SchemaNew.MapSchema<AttributeNew>();\n}\n\nclass PositionNew extends SchemaNew.Schema {\n @SchemaNew.type(\"number\") x: number;\n @SchemaNew.type(\"number\") y: number;\n}\n\nclass PlayerNew extends SchemaNew.Schema {\n @SchemaNew.type(PositionNew) position = new PositionNew();\n @SchemaNew.type({ map: ItemNew }) items = new SchemaNew.MapSchema<ItemNew>();\n}\n\nclass StateNew extends SchemaNew.Schema {\n @SchemaNew.type({ map: PlayerNew }) players = new SchemaNew.MapSchema<PlayerNew>();\n @SchemaNew.type(\"string\") currentTurn;\n}\n\nconst newSchema = new StateNew();\nfor (let i=0; i<50; i++) {\n const player = new PlayerNew();\n newSchema.players.set(`p-${nanoid()}`, player);\n\n player.position.x = Math.random() * 500;\n player.position.y = Math.random() * 500;\n // for (let j = 0; j < 10; j++) {\n // const item = new ItemNew();\n // item.price = Math.random() * 50;\n // for (let k = 0; k < 5; k++) {\n // const attr = new AttributeNew();\n // attr.name = `Attribute ${k}`;\n // attr.value = k;\n // item.attributes.set(`attr-${k}`, attr);\n\n // }\n // player.items.set(`item-${j}`, item);\n // }\n}\nconst newEncoded = newSchema.encode();\nnewSchema.players.forEach((player) => {\n player.position.x++;\n player.position.y++;\n});\nconst newPatch = newSchema.encode();\n// ---------- NEW ---------- //\n\nfunction useOld() {\n const schema = new StateOld();\n schema.players.onAdd = (player, playerKey) => {\n player.items.onAdd = (item, itemKey) => {\n item.attributes.onAdd = (attr, attrKey) => {\n };\n item.attributes.onRemove = (attr, attrKey) => {\n };\n };\n player.items.onRemove = (item, itemKey) => {\n };\n player.onChange = (changes) => {\n };\n };\n schema.decode(oldEncoded);\n schema.decode(oldPatch);\n}\n\nfunction useNew() {\n const schema = new StateNew();\n\n schema.players.onAdd((player, playerKey) => {\n\n player.position.listen(\"x\", (value, previousValue) => {\n });\n\n player.position.onChange(() => {\n });\n\n player.items.onAdd((item, itemKey) => {\n item.attributes.onAdd((attr, attrKey) => {\n });\n item.attributes.onRemove((attr, attrKey) => {\n });\n item.attributes.onChange((attr, attrKey) => {\n });\n });\n\n player.items.onRemove((item, itemKey) => {\n });\n\n player.onChange(() => {\n // console.log(\"player onChange!\", playerKey);\n });\n });\n\n schema.players.onChange((item, key) => {\n });\n\n // console.log(\"FIRST DECODE!\");\n schema.decode(newEncoded);\n\n // console.log(\"SECOND DECODE!\");\n schema.decode(newPatch);\n}\n\nsuite.add(\"Decode OLD\", () => useOld());\nsuite.add(\"Decode NEW\", () => useNew());\n\nsuite.on('cycle', (event) => console.log(String(event.target)));\nsuite.on('complete', () => console.log('Fastest is ' + suite.filter('fastest').map('name')));\n\nsuite.run();\n\nuseNew();"]}
@@ -1,56 +0,0 @@
1
- import * as fs from "fs";
2
- import * as path from "path";
3
- import { createRequire } from "module";
4
- import { parseFiles } from "./parser";
5
- // Create require relative to this file's location (for ESM compatibility)
6
- // const __filename = fileURLToPath(import.meta.url);
7
- // const __dirname = path.dirname(__filename);
8
- const require = createRequire(import.meta.url);
9
- export function generate(targetId, options) {
10
- let generator;
11
- try {
12
- generator = require('./languages/' + targetId).generate;
13
- }
14
- catch (e) {
15
- throw new Error("You must provide a valid generator as argument, such as: --csharp, --haxe or --cpp");
16
- }
17
- if (!fs.existsSync(options.output)) {
18
- console.log("Creating", options.output, "directory");
19
- fs.mkdirSync(options.output);
20
- }
21
- /**
22
- * Default `@type()` decorator name
23
- */
24
- if (!options.decorator) {
25
- options.decorator = "type";
26
- }
27
- // resolve wildcard files
28
- options.files = options.files.reduce((acc, cur) => {
29
- if (cur.endsWith("*")) {
30
- acc.push(...recursiveFiles(cur.slice(0, -1)).filter(filename => /\.(js|ts|mjs)$/.test(filename)));
31
- }
32
- else {
33
- acc.push(cur);
34
- }
35
- return acc;
36
- }, []);
37
- const structures = parseFiles(options.files, options.decorator);
38
- // Post-process classes before generating
39
- structures.classes.forEach(klass => klass.postProcessing());
40
- const files = generator(structures, options);
41
- files.forEach((file) => {
42
- const outputPath = path.resolve(options.output, file.name);
43
- fs.writeFileSync(outputPath, file.content);
44
- console.log("generated:", file.name);
45
- });
46
- }
47
- function recursiveFiles(dir) {
48
- const files = fs.readdirSync(dir, { withFileTypes: true });
49
- let collect = [];
50
- files.forEach(file => {
51
- const filename = path.resolve(dir, file.name);
52
- file.isDirectory() ? collect.push(...recursiveFiles(filename)) : collect.push(filename);
53
- });
54
- return collect;
55
- }
56
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/codegen/api.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { createRequire } from \"module\";\n// import { fileURLToPath } from \"url\";\n\nimport { File } from \"./types\";\nimport { parseFiles } from \"./parser\";\n\n// Create require relative to this file's location (for ESM compatibility)\n// const __filename = fileURLToPath(import.meta.url);\n// const __dirname = path.dirname(__filename);\nconst require = createRequire(import.meta.url);\n\nexport interface GenerateOptions {\n files: string[],\n output: string;\n decorator?: string;\n namespace?: string;\n}\n\nexport function generate(targetId: string, options: GenerateOptions) {\n let generator: Function;\n\n try {\n generator = require('./languages/' + targetId).generate;\n\n } catch (e) {\n throw new Error(\"You must provide a valid generator as argument, such as: --csharp, --haxe or --cpp\");\n }\n\n if (!fs.existsSync(options.output)) {\n console.log(\"Creating\", options.output, \"directory\");\n fs.mkdirSync(options.output);\n }\n\n /**\n * Default `@type()` decorator name\n */\n if (!options.decorator) { options.decorator = \"type\"; }\n\n // resolve wildcard files\n options.files = options.files.reduce((acc, cur) => {\n if (cur.endsWith(\"*\")) {\n acc.push(...recursiveFiles(cur.slice(0, -1)).filter(filename => /\\.(js|ts|mjs)$/.test(filename)));\n } else {\n acc.push(cur)\n }\n return acc;\n }, [])\n\n const structures = parseFiles(options.files, options.decorator);\n\n // Post-process classes before generating\n structures.classes.forEach(klass => klass.postProcessing());\n\n const files = generator(structures, options);\n\n files.forEach((file: File) => {\n const outputPath = path.resolve(options.output, file.name);\n fs.writeFileSync(outputPath, file.content);\n console.log(\"generated:\", file.name);\n });\n}\n\nfunction recursiveFiles(dir: string): string[] {\n const files = fs.readdirSync(dir, { withFileTypes: true });\n let collect: string[] = [];\n files.forEach(file => {\n const filename = path.resolve(dir, file.name);\n file.isDirectory() ? collect.push(...recursiveFiles(filename)) : collect.push(filename);\n })\n return collect;\n}\n"]}
@@ -1,39 +0,0 @@
1
- /**
2
- * @author Ethan Davis
3
- * https://github.com/ethanent/gar
4
- */
5
- export default (sargs) => {
6
- let props = {};
7
- let lones = [];
8
- const convertIfApplicable = (value) => (isNaN(value) ? (value.toString().toLowerCase() === 'true' ? true : (value.toString().toLowerCase() === 'false' ? false : value)) : Number(value));
9
- const removeStartHyphens = (value) => value.replace(/^\-+/g, '');
10
- for (let i = 0; i < sargs.length; i++) {
11
- const equalsIndex = sargs[i].indexOf('=');
12
- const isNextRefProp = sargs[i].charAt(0) === '-' && sargs.length - 1 >= i + 1 && sargs[i + 1].indexOf('=') === -1 && sargs[i + 1].charAt(0) !== '-';
13
- const argName = equalsIndex === -1 ? removeStartHyphens(sargs[i]) : removeStartHyphens(sargs[i].slice(0, equalsIndex));
14
- if (equalsIndex !== -1) {
15
- props[argName] = convertIfApplicable(sargs[i].slice(equalsIndex + 1));
16
- }
17
- else if (isNextRefProp) {
18
- props[argName] = convertIfApplicable(sargs[i + 1]);
19
- i++;
20
- }
21
- else if (sargs[i].charAt(0) === '-') {
22
- if (sargs[i].charAt(1) === '-') {
23
- props[argName] = true;
24
- }
25
- else {
26
- for (let b = 0; b < argName.length; b++) {
27
- props[argName.charAt(b)] = true;
28
- }
29
- }
30
- }
31
- else {
32
- lones.push(convertIfApplicable(argName));
33
- }
34
- }
35
- return Object.assign(props, {
36
- '_': lones
37
- });
38
- };
39
- //# sourceMappingURL=argv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/codegen/argv.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @author Ethan Davis\n * https://github.com/ethanent/gar\n */\nexport default (sargs: string[]): any => {\n\tlet props: any = {}\n\tlet lones: any = []\n\n\tconst convertIfApplicable = (value: any) => (isNaN(value) ? (value.toString().toLowerCase() === 'true' ? true : (value.toString().toLowerCase() === 'false' ? false : value)) : Number(value))\n\tconst removeStartHyphens = (value: string) => value.replace(/^\\-+/g, '')\n\n\tfor (let i = 0; i < sargs.length; i++) {\n\t\tconst equalsIndex = sargs[i].indexOf('=')\n\t\tconst isNextRefProp = sargs[i].charAt(0) === '-' && sargs.length - 1 >= i + 1 && sargs[i + 1].indexOf('=') === -1 && sargs[i + 1].charAt(0) !== '-'\n\t\tconst argName = equalsIndex === -1 ? removeStartHyphens(sargs[i]) : removeStartHyphens(sargs[i].slice(0, equalsIndex))\n\n\t\tif (equalsIndex !== -1) {\n\t\t\tprops[argName] = convertIfApplicable(sargs[i].slice(equalsIndex + 1))\n\t\t}\n\t\telse if (isNextRefProp) {\n\t\t\tprops[argName] = convertIfApplicable(sargs[i + 1])\n\t\t\ti++\n\t\t} else if (sargs[i].charAt(0) === '-') {\n\t\t\tif (sargs[i].charAt(1) === '-') {\n\t\t\t\tprops[argName] = true\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfor (let b = 0; b < argName.length; b++) {\n\t\t\t\t\tprops[argName.charAt(b)] = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tlones.push(convertIfApplicable(argName))\n\t\t}\n\t}\n\n\treturn Object.assign(props, {\n\t\t'_': lones\n\t})\n}\n"]}
@@ -1,58 +0,0 @@
1
- import argv from "./argv";
2
- import { generate } from "./api";
3
- const supportedTargets = {
4
- csharp: 'generate for C#/Unity',
5
- cpp: 'generate for C++',
6
- haxe: 'generate for Haxe',
7
- ts: 'generate for TypeScript',
8
- js: 'generate for JavaScript',
9
- java: 'generate for Java',
10
- lua: 'generate for LUA',
11
- };
12
- function displayHelp() {
13
- console.log(`\nschema-codegen [path/to/Schema.ts]
14
-
15
- Usage (C#/Unity)
16
- schema-codegen src/Schema.ts --output client-side/ --csharp --namespace MyGame.Schema
17
-
18
- Valid options:
19
- --output: the output directory for generated client-side schema files
20
- ${Object.
21
- keys(supportedTargets).
22
- map((targetId) => (` --${targetId}: ${supportedTargets[targetId]}`)).
23
- join("\n")}
24
-
25
- Optional:
26
- --namespace: generate namespace on output code
27
- --decorator: custom name for @type decorator to scan for`);
28
- process.exit();
29
- }
30
- const args = argv(process.argv.slice(2));
31
- if (args.help) {
32
- displayHelp();
33
- }
34
- let targetId;
35
- for (let target in supportedTargets) {
36
- if (args[target]) {
37
- targetId = target;
38
- }
39
- }
40
- if (!args.output) {
41
- console.error("You must provide a valid --output directory.");
42
- displayHelp();
43
- }
44
- try {
45
- args.files = args._;
46
- generate(targetId, {
47
- files: args._,
48
- decorator: args.decorator,
49
- output: args.output,
50
- namespace: args.namespace
51
- });
52
- }
53
- catch (e) {
54
- console.error(e.message);
55
- console.error(e.stack);
56
- displayHelp();
57
- }
58
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/codegen/cli.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,gBAAgB,GAA2B;IAC7C,MAAM,EAAE,uBAAuB;IAC/B,GAAG,EAAE,kBAAkB;IACvB,IAAI,EAAE,mBAAmB;IACzB,EAAE,EAAE,yBAAyB;IAC7B,EAAE,EAAE,yBAAyB;IAC7B,IAAI,EAAE,mBAAmB;IACzB,GAAG,EAAE,kBAAkB;CAC1B,CAAA;AAED,SAAS,WAAW;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;EAOd,MAAM;QACJ,IAAI,CAAC,gBAAgB,CAAC;QACtB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtB,SAAS,QAAQ,KAAK,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAC7C,CAAC;QACF,IAAI,CAAC,IAAI,CAAC;;;;6DAI+C,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,EAAE,CAAC;AACnB,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACZ,WAAW,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,QAAgB,CAAC;AACrB,KAAK,IAAI,MAAM,IAAI,gBAAgB,EAAE,CAAC;IAClC,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACf,QAAQ,GAAG,MAAM,CAAC;IACtB,CAAC;AACL,CAAC;AAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,WAAW,EAAE,CAAC;AAClB,CAAC;AAED,IAAI,CAAC;IACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE;QACf,KAAK,EAAE,IAAI,CAAC,CAAC;QACb,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,SAAS,EAAE,IAAI,CAAC,SAAS;KAC5B,CAAC,CAAC;AAEP,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC;AAClB,CAAC","sourcesContent":["import argv from \"./argv\";\nimport { generate } from \"./api\";\n\nconst supportedTargets: Record<string, string> = {\n csharp: 'generate for C#/Unity',\n cpp: 'generate for C++',\n haxe: 'generate for Haxe',\n ts: 'generate for TypeScript',\n js: 'generate for JavaScript',\n java: 'generate for Java',\n lua: 'generate for LUA',\n}\n\nfunction displayHelp() {\n console.log(`\\nschema-codegen [path/to/Schema.ts]\n\nUsage (C#/Unity)\n schema-codegen src/Schema.ts --output client-side/ --csharp --namespace MyGame.Schema\n\nValid options:\n --output: the output directory for generated client-side schema files\n${Object.\n keys(supportedTargets).\n map((targetId) => (\n` --${targetId}: ${supportedTargets[targetId]}`\n )).\n join(\"\\n\")}\n\nOptional:\n --namespace: generate namespace on output code\n --decorator: custom name for @type decorator to scan for`);\n process.exit();\n}\n\nconst args = argv(process.argv.slice(2));\nif (args.help) {\n displayHelp();\n}\n\nlet targetId: string;\nfor (let target in supportedTargets) {\n if (args[target]) {\n targetId = target;\n }\n}\n\nif (!args.output) {\n console.error(\"You must provide a valid --output directory.\");\n displayHelp();\n}\n\ntry {\n args.files = args._;\n generate(targetId, {\n files: args._,\n decorator: args.decorator,\n output: args.output,\n namespace: args.namespace\n });\n\n} catch (e) {\n console.error(e.message);\n console.error(e.stack);\n displayHelp();\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { File, Context } from "../types";
2
- import { GenerateOptions } from "../api";
3
- export declare function generate(context: Context, options: GenerateOptions): File[];