@colyseus/schema 4.0.0 → 4.0.2

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 (241) hide show
  1. package/build/cjs/{index.js → index.cjs} +1 -1
  2. package/build/cjs/index.cjs.map +1 -0
  3. package/build/esm/index.mjs.map +1 -1
  4. package/lib/Metadata.js +54 -58
  5. package/lib/Metadata.js.map +1 -1
  6. package/lib/Reflection.js +29 -32
  7. package/lib/Reflection.js.map +1 -1
  8. package/lib/Schema.js +41 -45
  9. package/lib/Schema.js.map +1 -1
  10. package/lib/annotations.d.ts +1 -1
  11. package/lib/annotations.js +58 -69
  12. package/lib/annotations.js.map +1 -1
  13. package/lib/bench_encode.js +24 -59
  14. package/lib/bench_encode.js.map +1 -1
  15. package/lib/benchmark.d.ts +1 -0
  16. package/lib/benchmark.js +218 -0
  17. package/lib/benchmark.js.map +1 -0
  18. package/lib/codegen/api.js +10 -41
  19. package/lib/codegen/api.js.map +1 -1
  20. package/lib/codegen/argv.js +1 -3
  21. package/lib/codegen/argv.js.map +1 -1
  22. package/lib/codegen/cli.js +4 -9
  23. package/lib/codegen/cli.js.map +1 -1
  24. package/lib/codegen/languages/cpp.js +5 -8
  25. package/lib/codegen/languages/cpp.js.map +1 -1
  26. package/lib/codegen/languages/csharp.js +5 -8
  27. package/lib/codegen/languages/csharp.js.map +1 -1
  28. package/lib/codegen/languages/haxe.js +3 -6
  29. package/lib/codegen/languages/haxe.js.map +1 -1
  30. package/lib/codegen/languages/java.js +3 -6
  31. package/lib/codegen/languages/java.js.map +1 -1
  32. package/lib/codegen/languages/js.js +4 -7
  33. package/lib/codegen/languages/js.js.map +1 -1
  34. package/lib/codegen/languages/lua.js +4 -7
  35. package/lib/codegen/languages/lua.js.map +1 -1
  36. package/lib/codegen/languages/ts.js +5 -8
  37. package/lib/codegen/languages/ts.js.map +1 -1
  38. package/lib/codegen/parser.js +22 -59
  39. package/lib/codegen/parser.js.map +1 -1
  40. package/lib/codegen/types.js +12 -51
  41. package/lib/codegen/types.js.map +1 -1
  42. package/lib/decoder/DecodeOperation.js +44 -51
  43. package/lib/decoder/DecodeOperation.js.map +1 -1
  44. package/lib/decoder/Decoder.js +24 -28
  45. package/lib/decoder/Decoder.js.map +1 -1
  46. package/lib/decoder/ReferenceTracker.js +10 -14
  47. package/lib/decoder/ReferenceTracker.js.map +1 -1
  48. package/lib/decoder/strategy/Callbacks.js +39 -43
  49. package/lib/decoder/strategy/Callbacks.js.map +1 -1
  50. package/lib/decoder/strategy/RawChanges.js +1 -4
  51. package/lib/decoder/strategy/RawChanges.js.map +1 -1
  52. package/lib/decoder/strategy/getDecoderStateCallbacks.js +24 -27
  53. package/lib/decoder/strategy/getDecoderStateCallbacks.js.map +1 -1
  54. package/lib/encoder/ChangeTree.js +36 -44
  55. package/lib/encoder/ChangeTree.js.map +1 -1
  56. package/lib/encoder/EncodeOperation.js +25 -32
  57. package/lib/encoder/EncodeOperation.js.map +1 -1
  58. package/lib/encoder/Encoder.d.ts +5 -5
  59. package/lib/encoder/Encoder.js +25 -29
  60. package/lib/encoder/Encoder.js.map +1 -1
  61. package/lib/encoder/Root.js +17 -21
  62. package/lib/encoder/Root.js.map +1 -1
  63. package/lib/encoder/StateView.js +40 -45
  64. package/lib/encoder/StateView.js.map +1 -1
  65. package/lib/encoding/assert.js +3 -9
  66. package/lib/encoding/assert.js.map +1 -1
  67. package/lib/encoding/decode.js +2 -6
  68. package/lib/encoding/decode.js.map +1 -1
  69. package/lib/encoding/encode.js +1 -4
  70. package/lib/encoding/encode.js.map +1 -1
  71. package/lib/encoding/spec.js +4 -7
  72. package/lib/encoding/spec.js.map +1 -1
  73. package/lib/index.d.ts +2 -2
  74. package/lib/index.js +33 -75
  75. package/lib/index.js.map +1 -1
  76. package/lib/src/Metadata.d.ts +49 -0
  77. package/lib/src/Metadata.js +256 -0
  78. package/lib/src/Metadata.js.map +1 -0
  79. package/lib/src/Reflection.d.ts +71 -0
  80. package/lib/src/Reflection.js +179 -0
  81. package/lib/src/Reflection.js.map +1 -0
  82. package/lib/src/Schema.d.ts +86 -0
  83. package/lib/src/Schema.js +352 -0
  84. package/lib/src/Schema.js.map +1 -0
  85. package/lib/src/annotations.d.ts +109 -0
  86. package/lib/src/annotations.js +473 -0
  87. package/lib/src/annotations.js.map +1 -0
  88. package/lib/src/bench_encode.d.ts +1 -0
  89. package/lib/src/bench_encode.js +91 -0
  90. package/lib/src/bench_encode.js.map +1 -0
  91. package/lib/src/codegen/api.d.ts +7 -0
  92. package/lib/src/codegen/api.js +56 -0
  93. package/lib/src/codegen/api.js.map +1 -0
  94. package/lib/src/codegen/argv.d.ts +6 -0
  95. package/lib/src/codegen/argv.js +39 -0
  96. package/lib/src/codegen/argv.js.map +1 -0
  97. package/lib/src/codegen/cli.d.ts +1 -0
  98. package/lib/src/codegen/cli.js +58 -0
  99. package/lib/src/codegen/cli.js.map +1 -0
  100. package/lib/src/codegen/languages/cpp.d.ts +3 -0
  101. package/lib/src/codegen/languages/cpp.js +258 -0
  102. package/lib/src/codegen/languages/cpp.js.map +1 -0
  103. package/lib/src/codegen/languages/csharp.d.ts +4 -0
  104. package/lib/src/codegen/languages/csharp.js +154 -0
  105. package/lib/src/codegen/languages/csharp.js.map +1 -0
  106. package/lib/src/codegen/languages/haxe.d.ts +3 -0
  107. package/lib/src/codegen/languages/haxe.js +100 -0
  108. package/lib/src/codegen/languages/haxe.js.map +1 -0
  109. package/lib/src/codegen/languages/java.d.ts +6 -0
  110. package/lib/src/codegen/languages/java.js +100 -0
  111. package/lib/src/codegen/languages/java.js.map +1 -0
  112. package/lib/src/codegen/languages/js.d.ts +3 -0
  113. package/lib/src/codegen/languages/js.js +101 -0
  114. package/lib/src/codegen/languages/js.js.map +1 -0
  115. package/lib/src/codegen/languages/lua.d.ts +3 -0
  116. package/lib/src/codegen/languages/lua.js +103 -0
  117. package/lib/src/codegen/languages/lua.js.map +1 -0
  118. package/lib/src/codegen/languages/ts.d.ts +3 -0
  119. package/lib/src/codegen/languages/ts.js +116 -0
  120. package/lib/src/codegen/languages/ts.js.map +1 -0
  121. package/lib/src/codegen/parser.d.ts +13 -0
  122. package/lib/src/codegen/parser.js +327 -0
  123. package/lib/src/codegen/parser.js.map +1 -0
  124. package/lib/src/codegen/types.d.ts +52 -0
  125. package/lib/src/codegen/types.js +142 -0
  126. package/lib/src/codegen/types.js.map +1 -0
  127. package/lib/src/decoder/DecodeOperation.d.ts +23 -0
  128. package/lib/src/decoder/DecodeOperation.js +248 -0
  129. package/lib/src/decoder/DecodeOperation.js.map +1 -0
  130. package/lib/src/decoder/Decoder.d.ts +21 -0
  131. package/lib/src/decoder/Decoder.js +114 -0
  132. package/lib/src/decoder/Decoder.js.map +1 -0
  133. package/lib/src/decoder/ReferenceTracker.d.ts +25 -0
  134. package/lib/src/decoder/ReferenceTracker.js +135 -0
  135. package/lib/src/decoder/ReferenceTracker.js.map +1 -0
  136. package/lib/src/decoder/strategy/Callbacks.d.ts +154 -0
  137. package/lib/src/decoder/strategy/Callbacks.js +336 -0
  138. package/lib/src/decoder/strategy/Callbacks.js.map +1 -0
  139. package/lib/src/decoder/strategy/RawChanges.d.ts +3 -0
  140. package/lib/src/decoder/strategy/RawChanges.js +4 -0
  141. package/lib/src/decoder/strategy/RawChanges.js.map +1 -0
  142. package/lib/src/decoder/strategy/getDecoderStateCallbacks.d.ts +76 -0
  143. package/lib/src/decoder/strategy/getDecoderStateCallbacks.js +274 -0
  144. package/lib/src/decoder/strategy/getDecoderStateCallbacks.js.map +1 -0
  145. package/lib/src/encoder/ChangeTree.d.ts +135 -0
  146. package/lib/src/encoder/ChangeTree.js +534 -0
  147. package/lib/src/encoder/ChangeTree.js.map +1 -0
  148. package/lib/src/encoder/EncodeOperation.d.ts +22 -0
  149. package/lib/src/encoder/EncodeOperation.js +132 -0
  150. package/lib/src/encoder/EncodeOperation.js.map +1 -0
  151. package/lib/src/encoder/Encoder.d.ts +22 -0
  152. package/lib/src/encoder/Encoder.js +204 -0
  153. package/lib/src/encoder/Encoder.js.map +1 -0
  154. package/lib/src/encoder/Root.d.ts +28 -0
  155. package/lib/src/encoder/Root.js +229 -0
  156. package/lib/src/encoder/Root.js.map +1 -0
  157. package/lib/src/encoder/StateView.d.ts +34 -0
  158. package/lib/src/encoder/StateView.js +279 -0
  159. package/lib/src/encoder/StateView.js.map +1 -0
  160. package/lib/src/encoding/assert.d.ts +10 -0
  161. package/lib/src/encoding/assert.js +49 -0
  162. package/lib/src/encoding/assert.js.map +1 -0
  163. package/lib/src/encoding/decode.d.ts +67 -0
  164. package/lib/src/encoding/decode.js +217 -0
  165. package/lib/src/encoding/decode.js.map +1 -0
  166. package/lib/src/encoding/encode.d.ts +40 -0
  167. package/lib/src/encoding/encode.js +279 -0
  168. package/lib/src/encoding/encode.js.map +1 -0
  169. package/lib/src/encoding/spec.d.ts +24 -0
  170. package/lib/src/encoding/spec.js +26 -0
  171. package/lib/src/encoding/spec.js.map +1 -0
  172. package/lib/src/index.d.ts +32 -0
  173. package/lib/src/index.js +39 -0
  174. package/lib/src/index.js.map +1 -0
  175. package/lib/src/symbol.shim.d.ts +6 -0
  176. package/lib/src/symbol.shim.js +3 -0
  177. package/lib/src/symbol.shim.js.map +1 -0
  178. package/lib/src/types/HelperTypes.d.ts +77 -0
  179. package/lib/src/types/HelperTypes.js +2 -0
  180. package/lib/src/types/HelperTypes.js.map +1 -0
  181. package/lib/src/types/TypeContext.d.ts +31 -0
  182. package/lib/src/types/TypeContext.js +143 -0
  183. package/lib/src/types/TypeContext.js.map +1 -0
  184. package/lib/src/types/custom/ArraySchema.d.ts +270 -0
  185. package/lib/src/types/custom/ArraySchema.js +733 -0
  186. package/lib/src/types/custom/ArraySchema.js.map +1 -0
  187. package/lib/src/types/custom/CollectionSchema.d.ts +51 -0
  188. package/lib/src/types/custom/CollectionSchema.js +170 -0
  189. package/lib/src/types/custom/CollectionSchema.js.map +1 -0
  190. package/lib/src/types/custom/MapSchema.d.ts +51 -0
  191. package/lib/src/types/custom/MapSchema.js +222 -0
  192. package/lib/src/types/custom/MapSchema.js.map +1 -0
  193. package/lib/src/types/custom/SetSchema.d.ts +48 -0
  194. package/lib/src/types/custom/SetSchema.js +178 -0
  195. package/lib/src/types/custom/SetSchema.js.map +1 -0
  196. package/lib/src/types/registry.d.ts +16 -0
  197. package/lib/src/types/registry.js +30 -0
  198. package/lib/src/types/registry.js.map +1 -0
  199. package/lib/src/types/symbols.d.ts +33 -0
  200. package/lib/src/types/symbols.js +34 -0
  201. package/lib/src/types/symbols.js.map +1 -0
  202. package/lib/src/types/utils.d.ts +1 -0
  203. package/lib/src/types/utils.js +13 -0
  204. package/lib/src/types/utils.js.map +1 -0
  205. package/lib/src/utils.d.ts +13 -0
  206. package/lib/src/utils.js +49 -0
  207. package/lib/src/utils.js.map +1 -0
  208. package/lib/src/v3_bench.d.ts +1 -0
  209. package/lib/src/v3_bench.js +128 -0
  210. package/lib/src/v3_bench.js.map +1 -0
  211. package/lib/symbol.shim.js +1 -2
  212. package/lib/symbol.shim.js.map +1 -1
  213. package/lib/types/HelperTypes.js +1 -2
  214. package/lib/types/TypeContext.js +8 -12
  215. package/lib/types/TypeContext.js.map +1 -1
  216. package/lib/types/custom/ArraySchema.js +63 -67
  217. package/lib/types/custom/ArraySchema.js.map +1 -1
  218. package/lib/types/custom/CollectionSchema.js +27 -31
  219. package/lib/types/custom/CollectionSchema.js.map +1 -1
  220. package/lib/types/custom/MapSchema.js +37 -41
  221. package/lib/types/custom/MapSchema.js.map +1 -1
  222. package/lib/types/custom/SetSchema.js +28 -32
  223. package/lib/types/custom/SetSchema.js.map +1 -1
  224. package/lib/types/registry.js +13 -20
  225. package/lib/types/registry.js.map +1 -1
  226. package/lib/types/symbols.js +16 -19
  227. package/lib/types/symbols.js.map +1 -1
  228. package/lib/types/utils.js +1 -4
  229. package/lib/types/utils.js.map +1 -1
  230. package/lib/utils.js +9 -14
  231. package/lib/utils.js.map +1 -1
  232. package/lib/v3_bench.js +17 -19
  233. package/lib/v3_bench.js.map +1 -1
  234. package/package.json +9 -7
  235. package/src/codegen/api.ts +7 -0
  236. package/src/codegen/parser.ts +2 -2
  237. package/src/codegen/types.ts +5 -0
  238. package/src/encoder/Encoder.ts +24 -7
  239. package/src/index.ts +2 -2
  240. package/build/cjs/index.js.map +0 -1
  241. package/src/bench_encode.ts +0 -64
@@ -1,64 +0,0 @@
1
- import { nanoid } from "nanoid";
2
- import { Schema, type, MapSchema, ArraySchema, Encoder } from ".";
3
- import * as benchmark from "benchmark";
4
-
5
- const suite = new benchmark.Suite();
6
-
7
- class AttributeNew extends Schema {
8
- @type("string") name: string;
9
- @type("number") value: number;
10
- }
11
-
12
- class ItemNew extends Schema {
13
- @type("number") price: number;
14
- @type([ AttributeNew ]) attributes = new ArraySchema<AttributeNew>();
15
- }
16
-
17
- class PositionNew extends Schema {
18
- @type("number") x: number;
19
- @type("number") y: number;
20
- }
21
-
22
- class PlayerNew extends Schema {
23
- @type(PositionNew) position = new PositionNew();
24
- @type({ map: ItemNew }) items = new MapSchema<ItemNew>();
25
- }
26
-
27
- class StateNew extends Schema {
28
- @type({ map: PlayerNew }) players = new MapSchema<PlayerNew>();
29
- @type("string") currentTurn: string;
30
- }
31
-
32
- const state = new StateNew();
33
-
34
- for (let i = 0; i < 50; i++) {
35
- const player = new PlayerNew();
36
- state.players.set(`p-${nanoid()}`, player);
37
-
38
- player.position.x = (i + 1) * 100;
39
- player.position.y = (i + 1) * 100;
40
- for (let j = 0; j < 10; j++) {
41
- const item = new ItemNew();
42
- item.price = (i + 1) * 50;
43
- for (let k = 0; k < 5; k++) {
44
- const attr = new AttributeNew();
45
- attr.name = `Attribute ${k}`;
46
- attr.value = k;
47
- item.attributes.push(attr);
48
-
49
- }
50
- player.items.set(`item-${j}`, item);
51
- }
52
- }
53
-
54
- Encoder.BUFFER_SIZE = 1024 * 128;
55
- const encoder = new Encoder(state);
56
-
57
- // measure time to .encodeAll()
58
-
59
- const now = Date.now();
60
- for (let i = 0; i < 1000; i++) {
61
- encoder.encodeAll();
62
- }
63
- console.log(Date.now() - now);
64
- console.log(Array.from(encoder.encodeAll()).join(","));