@colyseus/schema 4.0.2 → 4.0.4

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 +18 -43
  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/{cjs/index.cjs → index.cjs} +8 -34
  28. package/build/index.cjs.map +1 -0
  29. package/build/index.d.ts +32 -0
  30. package/build/{umd/index.js → index.js} +8 -34
  31. package/build/{esm/index.mjs → index.mjs} +8 -34
  32. package/build/index.mjs.map +1 -0
  33. package/{lib → build}/types/HelperTypes.d.ts +6 -6
  34. package/{lib → build}/types/TypeContext.d.ts +1 -1
  35. package/{lib/src → build}/types/custom/ArraySchema.d.ts +8 -8
  36. package/{lib/src → build}/types/custom/CollectionSchema.d.ts +7 -7
  37. package/{lib → build}/types/custom/MapSchema.d.ts +7 -7
  38. package/{lib/src → build}/types/custom/SetSchema.d.ts +7 -7
  39. package/{lib/src → build}/types/registry.d.ts +2 -2
  40. package/{lib → build}/utils.d.ts +1 -1
  41. package/package.json +9 -10
  42. package/src/Metadata.ts +5 -5
  43. package/src/Reflection.ts +7 -7
  44. package/src/Schema.ts +11 -11
  45. package/src/annotations.ts +13 -13
  46. package/src/codegen/api.ts +3 -3
  47. package/src/codegen/cli.ts +2 -2
  48. package/src/codegen/languages/cpp.ts +2 -2
  49. package/src/codegen/languages/csharp.ts +3 -3
  50. package/src/codegen/languages/haxe.ts +2 -2
  51. package/src/codegen/languages/java.ts +2 -2
  52. package/src/codegen/languages/js.ts +2 -2
  53. package/src/codegen/languages/lua.ts +2 -2
  54. package/src/codegen/languages/ts.ts +2 -2
  55. package/src/codegen/parser.ts +6 -1
  56. package/src/decoder/DecodeOperation.ts +14 -14
  57. package/src/decoder/Decoder.ts +11 -11
  58. package/src/decoder/ReferenceTracker.ts +8 -8
  59. package/src/decoder/strategy/Callbacks.ts +27 -53
  60. package/src/decoder/strategy/RawChanges.ts +2 -2
  61. package/src/decoder/strategy/getDecoderStateCallbacks.ts +10 -10
  62. package/src/encoder/ChangeTree.ts +13 -13
  63. package/src/encoder/EncodeOperation.ts +9 -9
  64. package/src/encoder/Encoder.ts +10 -10
  65. package/src/encoder/Root.ts +4 -4
  66. package/src/encoder/StateView.ts +7 -7
  67. package/src/encoding/assert.ts +6 -6
  68. package/src/encoding/decode.ts +1 -1
  69. package/src/encoding/encode.ts +1 -1
  70. package/src/index.ts +27 -27
  71. package/src/types/HelperTypes.ts +6 -6
  72. package/src/types/TypeContext.ts +3 -3
  73. package/src/types/custom/ArraySchema.ts +11 -11
  74. package/src/types/custom/CollectionSchema.ts +9 -9
  75. package/src/types/custom/MapSchema.ts +10 -10
  76. package/src/types/custom/SetSchema.ts +9 -9
  77. package/src/types/registry.ts +3 -3
  78. package/src/utils.ts +3 -3
  79. package/src/v3_bench.ts +1 -1
  80. package/build/cjs/index.cjs.map +0 -1
  81. package/build/esm/index.mjs.map +0 -1
  82. package/lib/Metadata.js +0 -256
  83. package/lib/Metadata.js.map +0 -1
  84. package/lib/Reflection.js +0 -179
  85. package/lib/Reflection.js.map +0 -1
  86. package/lib/Schema.js +0 -352
  87. package/lib/Schema.js.map +0 -1
  88. package/lib/annotations.d.ts +0 -109
  89. package/lib/annotations.js +0 -473
  90. package/lib/annotations.js.map +0 -1
  91. package/lib/bench_encode.d.ts +0 -1
  92. package/lib/bench_encode.js +0 -91
  93. package/lib/bench_encode.js.map +0 -1
  94. package/lib/benchmark.d.ts +0 -1
  95. package/lib/benchmark.js +0 -218
  96. package/lib/benchmark.js.map +0 -1
  97. package/lib/codegen/api.js +0 -56
  98. package/lib/codegen/api.js.map +0 -1
  99. package/lib/codegen/argv.js +0 -39
  100. package/lib/codegen/argv.js.map +0 -1
  101. package/lib/codegen/cli.js +0 -58
  102. package/lib/codegen/cli.js.map +0 -1
  103. package/lib/codegen/languages/cpp.d.ts +0 -3
  104. package/lib/codegen/languages/cpp.js +0 -258
  105. package/lib/codegen/languages/cpp.js.map +0 -1
  106. package/lib/codegen/languages/csharp.d.ts +0 -4
  107. package/lib/codegen/languages/csharp.js +0 -154
  108. package/lib/codegen/languages/csharp.js.map +0 -1
  109. package/lib/codegen/languages/haxe.d.ts +0 -3
  110. package/lib/codegen/languages/haxe.js +0 -100
  111. package/lib/codegen/languages/haxe.js.map +0 -1
  112. package/lib/codegen/languages/java.js +0 -100
  113. package/lib/codegen/languages/java.js.map +0 -1
  114. package/lib/codegen/languages/js.d.ts +0 -3
  115. package/lib/codegen/languages/js.js +0 -101
  116. package/lib/codegen/languages/js.js.map +0 -1
  117. package/lib/codegen/languages/lua.d.ts +0 -3
  118. package/lib/codegen/languages/lua.js +0 -103
  119. package/lib/codegen/languages/lua.js.map +0 -1
  120. package/lib/codegen/languages/ts.d.ts +0 -3
  121. package/lib/codegen/languages/ts.js +0 -116
  122. package/lib/codegen/languages/ts.js.map +0 -1
  123. package/lib/codegen/parser.js +0 -327
  124. package/lib/codegen/parser.js.map +0 -1
  125. package/lib/codegen/types.js +0 -142
  126. package/lib/codegen/types.js.map +0 -1
  127. package/lib/decoder/DecodeOperation.js +0 -248
  128. package/lib/decoder/DecodeOperation.js.map +0 -1
  129. package/lib/decoder/Decoder.d.ts +0 -21
  130. package/lib/decoder/Decoder.js +0 -114
  131. package/lib/decoder/Decoder.js.map +0 -1
  132. package/lib/decoder/ReferenceTracker.js +0 -135
  133. package/lib/decoder/ReferenceTracker.js.map +0 -1
  134. package/lib/decoder/strategy/Callbacks.js +0 -336
  135. package/lib/decoder/strategy/Callbacks.js.map +0 -1
  136. package/lib/decoder/strategy/RawChanges.js +0 -4
  137. package/lib/decoder/strategy/RawChanges.js.map +0 -1
  138. package/lib/decoder/strategy/getDecoderStateCallbacks.js +0 -274
  139. package/lib/decoder/strategy/getDecoderStateCallbacks.js.map +0 -1
  140. package/lib/encoder/ChangeTree.js +0 -534
  141. package/lib/encoder/ChangeTree.js.map +0 -1
  142. package/lib/encoder/EncodeOperation.js +0 -132
  143. package/lib/encoder/EncodeOperation.js.map +0 -1
  144. package/lib/encoder/Encoder.js +0 -204
  145. package/lib/encoder/Encoder.js.map +0 -1
  146. package/lib/encoder/Root.d.ts +0 -28
  147. package/lib/encoder/Root.js +0 -229
  148. package/lib/encoder/Root.js.map +0 -1
  149. package/lib/encoder/StateView.d.ts +0 -34
  150. package/lib/encoder/StateView.js +0 -279
  151. package/lib/encoder/StateView.js.map +0 -1
  152. package/lib/encoding/assert.d.ts +0 -10
  153. package/lib/encoding/assert.js +0 -49
  154. package/lib/encoding/assert.js.map +0 -1
  155. package/lib/encoding/decode.d.ts +0 -67
  156. package/lib/encoding/decode.js +0 -217
  157. package/lib/encoding/decode.js.map +0 -1
  158. package/lib/encoding/encode.d.ts +0 -40
  159. package/lib/encoding/encode.js +0 -279
  160. package/lib/encoding/encode.js.map +0 -1
  161. package/lib/encoding/spec.js +0 -26
  162. package/lib/encoding/spec.js.map +0 -1
  163. package/lib/index.d.ts +0 -32
  164. package/lib/index.js +0 -39
  165. package/lib/index.js.map +0 -1
  166. package/lib/src/Metadata.d.ts +0 -49
  167. package/lib/src/Metadata.js +0 -256
  168. package/lib/src/Metadata.js.map +0 -1
  169. package/lib/src/Reflection.d.ts +0 -71
  170. package/lib/src/Reflection.js +0 -179
  171. package/lib/src/Reflection.js.map +0 -1
  172. package/lib/src/Schema.d.ts +0 -86
  173. package/lib/src/Schema.js +0 -352
  174. package/lib/src/Schema.js.map +0 -1
  175. package/lib/src/annotations.js +0 -473
  176. package/lib/src/annotations.js.map +0 -1
  177. package/lib/src/bench_encode.d.ts +0 -1
  178. package/lib/src/bench_encode.js +0 -91
  179. package/lib/src/bench_encode.js.map +0 -1
  180. package/lib/src/codegen/api.d.ts +0 -7
  181. package/lib/src/codegen/api.js +0 -56
  182. package/lib/src/codegen/api.js.map +0 -1
  183. package/lib/src/codegen/argv.d.ts +0 -6
  184. package/lib/src/codegen/argv.js +0 -39
  185. package/lib/src/codegen/argv.js.map +0 -1
  186. package/lib/src/codegen/cli.d.ts +0 -1
  187. package/lib/src/codegen/cli.js +0 -58
  188. package/lib/src/codegen/cli.js.map +0 -1
  189. package/lib/src/codegen/languages/cpp.d.ts +0 -3
  190. package/lib/src/codegen/languages/cpp.js +0 -258
  191. package/lib/src/codegen/languages/cpp.js.map +0 -1
  192. package/lib/src/codegen/languages/csharp.d.ts +0 -4
  193. package/lib/src/codegen/languages/csharp.js +0 -154
  194. package/lib/src/codegen/languages/csharp.js.map +0 -1
  195. package/lib/src/codegen/languages/haxe.d.ts +0 -3
  196. package/lib/src/codegen/languages/haxe.js +0 -100
  197. package/lib/src/codegen/languages/haxe.js.map +0 -1
  198. package/lib/src/codegen/languages/java.d.ts +0 -6
  199. package/lib/src/codegen/languages/java.js +0 -100
  200. package/lib/src/codegen/languages/java.js.map +0 -1
  201. package/lib/src/codegen/languages/js.d.ts +0 -3
  202. package/lib/src/codegen/languages/js.js +0 -101
  203. package/lib/src/codegen/languages/js.js.map +0 -1
  204. package/lib/src/codegen/languages/lua.d.ts +0 -3
  205. package/lib/src/codegen/languages/lua.js +0 -103
  206. package/lib/src/codegen/languages/lua.js.map +0 -1
  207. package/lib/src/codegen/languages/ts.d.ts +0 -3
  208. package/lib/src/codegen/languages/ts.js +0 -116
  209. package/lib/src/codegen/languages/ts.js.map +0 -1
  210. package/lib/src/codegen/parser.d.ts +0 -13
  211. package/lib/src/codegen/parser.js +0 -327
  212. package/lib/src/codegen/parser.js.map +0 -1
  213. package/lib/src/codegen/types.d.ts +0 -52
  214. package/lib/src/codegen/types.js +0 -142
  215. package/lib/src/codegen/types.js.map +0 -1
  216. package/lib/src/decoder/DecodeOperation.d.ts +0 -23
  217. package/lib/src/decoder/DecodeOperation.js +0 -248
  218. package/lib/src/decoder/DecodeOperation.js.map +0 -1
  219. package/lib/src/decoder/Decoder.js +0 -114
  220. package/lib/src/decoder/Decoder.js.map +0 -1
  221. package/lib/src/decoder/ReferenceTracker.d.ts +0 -25
  222. package/lib/src/decoder/ReferenceTracker.js +0 -135
  223. package/lib/src/decoder/ReferenceTracker.js.map +0 -1
  224. package/lib/src/decoder/strategy/Callbacks.d.ts +0 -154
  225. package/lib/src/decoder/strategy/Callbacks.js +0 -336
  226. package/lib/src/decoder/strategy/Callbacks.js.map +0 -1
  227. package/lib/src/decoder/strategy/RawChanges.d.ts +0 -3
  228. package/lib/src/decoder/strategy/RawChanges.js +0 -4
  229. package/lib/src/decoder/strategy/RawChanges.js.map +0 -1
  230. package/lib/src/decoder/strategy/getDecoderStateCallbacks.d.ts +0 -76
  231. package/lib/src/decoder/strategy/getDecoderStateCallbacks.js +0 -274
  232. package/lib/src/decoder/strategy/getDecoderStateCallbacks.js.map +0 -1
  233. package/lib/src/encoder/ChangeTree.d.ts +0 -135
  234. package/lib/src/encoder/ChangeTree.js +0 -534
  235. package/lib/src/encoder/ChangeTree.js.map +0 -1
  236. package/lib/src/encoder/EncodeOperation.d.ts +0 -22
  237. package/lib/src/encoder/EncodeOperation.js +0 -132
  238. package/lib/src/encoder/EncodeOperation.js.map +0 -1
  239. package/lib/src/encoder/Encoder.d.ts +0 -22
  240. package/lib/src/encoder/Encoder.js +0 -204
  241. package/lib/src/encoder/Encoder.js.map +0 -1
  242. package/lib/src/encoder/Root.js +0 -229
  243. package/lib/src/encoder/Root.js.map +0 -1
  244. package/lib/src/encoder/StateView.js +0 -279
  245. package/lib/src/encoder/StateView.js.map +0 -1
  246. package/lib/src/encoding/assert.js +0 -49
  247. package/lib/src/encoding/assert.js.map +0 -1
  248. package/lib/src/encoding/decode.js +0 -217
  249. package/lib/src/encoding/decode.js.map +0 -1
  250. package/lib/src/encoding/encode.js +0 -279
  251. package/lib/src/encoding/encode.js.map +0 -1
  252. package/lib/src/encoding/spec.d.ts +0 -24
  253. package/lib/src/encoding/spec.js +0 -26
  254. package/lib/src/encoding/spec.js.map +0 -1
  255. package/lib/src/index.d.ts +0 -32
  256. package/lib/src/index.js +0 -39
  257. package/lib/src/index.js.map +0 -1
  258. package/lib/src/symbol.shim.js +0 -3
  259. package/lib/src/symbol.shim.js.map +0 -1
  260. package/lib/src/types/HelperTypes.d.ts +0 -77
  261. package/lib/src/types/HelperTypes.js +0 -2
  262. package/lib/src/types/HelperTypes.js.map +0 -1
  263. package/lib/src/types/TypeContext.d.ts +0 -31
  264. package/lib/src/types/TypeContext.js +0 -143
  265. package/lib/src/types/TypeContext.js.map +0 -1
  266. package/lib/src/types/custom/ArraySchema.js +0 -733
  267. package/lib/src/types/custom/ArraySchema.js.map +0 -1
  268. package/lib/src/types/custom/CollectionSchema.js +0 -170
  269. package/lib/src/types/custom/CollectionSchema.js.map +0 -1
  270. package/lib/src/types/custom/MapSchema.d.ts +0 -51
  271. package/lib/src/types/custom/MapSchema.js +0 -222
  272. package/lib/src/types/custom/MapSchema.js.map +0 -1
  273. package/lib/src/types/custom/SetSchema.js +0 -178
  274. package/lib/src/types/custom/SetSchema.js.map +0 -1
  275. package/lib/src/types/registry.js +0 -30
  276. package/lib/src/types/registry.js.map +0 -1
  277. package/lib/src/types/symbols.js +0 -34
  278. package/lib/src/types/symbols.js.map +0 -1
  279. package/lib/src/types/utils.js +0 -13
  280. package/lib/src/types/utils.js.map +0 -1
  281. package/lib/src/utils.d.ts +0 -13
  282. package/lib/src/utils.js +0 -49
  283. package/lib/src/utils.js.map +0 -1
  284. package/lib/src/v3_bench.js +0 -128
  285. package/lib/src/v3_bench.js.map +0 -1
  286. package/lib/symbol.shim.d.ts +0 -6
  287. package/lib/symbol.shim.js +0 -3
  288. package/lib/symbol.shim.js.map +0 -1
  289. package/lib/types/HelperTypes.js +0 -2
  290. package/lib/types/HelperTypes.js.map +0 -1
  291. package/lib/types/TypeContext.js +0 -143
  292. package/lib/types/TypeContext.js.map +0 -1
  293. package/lib/types/custom/ArraySchema.d.ts +0 -270
  294. package/lib/types/custom/ArraySchema.js +0 -733
  295. package/lib/types/custom/ArraySchema.js.map +0 -1
  296. package/lib/types/custom/CollectionSchema.d.ts +0 -51
  297. package/lib/types/custom/CollectionSchema.js +0 -170
  298. package/lib/types/custom/CollectionSchema.js.map +0 -1
  299. package/lib/types/custom/MapSchema.js +0 -222
  300. package/lib/types/custom/MapSchema.js.map +0 -1
  301. package/lib/types/custom/SetSchema.d.ts +0 -48
  302. package/lib/types/custom/SetSchema.js +0 -178
  303. package/lib/types/custom/SetSchema.js.map +0 -1
  304. package/lib/types/registry.d.ts +0 -16
  305. package/lib/types/registry.js +0 -30
  306. package/lib/types/registry.js.map +0 -1
  307. package/lib/types/symbols.d.ts +0 -33
  308. package/lib/types/symbols.js +0 -34
  309. package/lib/types/symbols.js.map +0 -1
  310. package/lib/types/utils.d.ts +0 -1
  311. package/lib/types/utils.js +0 -13
  312. package/lib/types/utils.js.map +0 -1
  313. package/lib/utils.js +0 -49
  314. package/lib/utils.js.map +0 -1
  315. package/lib/v3_bench.d.ts +0 -1
  316. package/lib/v3_bench.js +0 -128
  317. package/lib/v3_bench.js.map +0 -1
  318. /package/{lib → build}/codegen/api.d.ts +0 -0
  319. /package/{lib → build}/codegen/argv.d.ts +0 -0
  320. /package/{lib → build}/codegen/cli.d.ts +0 -0
  321. /package/{lib → build}/codegen/types.d.ts +0 -0
  322. /package/{lib → build}/encoding/spec.d.ts +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":"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","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[];