@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.
- package/{lib → build}/Metadata.d.ts +2 -2
- package/{lib → build}/Reflection.d.ts +13 -13
- package/{lib → build}/Schema.d.ts +10 -10
- package/{lib/src → build}/annotations.d.ts +10 -10
- package/build/codegen/languages/cpp.d.ts +3 -0
- package/build/codegen/languages/csharp.d.ts +4 -0
- package/build/codegen/languages/haxe.d.ts +3 -0
- package/{lib → build}/codegen/languages/java.d.ts +2 -2
- package/build/codegen/languages/js.d.ts +3 -0
- package/build/codegen/languages/lua.d.ts +3 -0
- package/build/codegen/languages/ts.d.ts +3 -0
- package/{lib → build}/codegen/parser.d.ts +1 -1
- package/{lib → build}/decoder/DecodeOperation.d.ts +5 -5
- package/{lib/src → build}/decoder/Decoder.d.ts +7 -7
- package/{lib → build}/decoder/ReferenceTracker.d.ts +1 -1
- package/{lib → build}/decoder/strategy/Callbacks.d.ts +11 -11
- package/{lib → build}/decoder/strategy/RawChanges.d.ts +2 -2
- package/{lib → build}/decoder/strategy/getDecoderStateCallbacks.d.ts +3 -3
- package/{lib → build}/encoder/ChangeTree.d.ts +11 -11
- package/{lib → build}/encoder/EncodeOperation.d.ts +5 -5
- package/{lib → build}/encoder/Encoder.d.ts +6 -6
- package/{lib/src → build}/encoder/Root.d.ts +2 -2
- package/{lib/src → build}/encoder/StateView.d.ts +1 -1
- package/{lib/src → build}/encoding/assert.d.ts +6 -6
- package/{lib/src → build}/encoding/decode.d.ts +1 -1
- package/{lib/src → build}/encoding/encode.d.ts +1 -1
- package/build/index.cjs.map +1 -0
- package/build/index.d.ts +32 -0
- package/build/index.mjs.map +1 -0
- package/{lib → build}/types/HelperTypes.d.ts +6 -6
- package/{lib → build}/types/TypeContext.d.ts +1 -1
- package/{lib/src → build}/types/custom/ArraySchema.d.ts +8 -8
- package/{lib/src → build}/types/custom/CollectionSchema.d.ts +7 -7
- package/{lib → build}/types/custom/MapSchema.d.ts +7 -7
- package/{lib/src → build}/types/custom/SetSchema.d.ts +7 -7
- package/{lib/src → build}/types/registry.d.ts +2 -2
- package/{lib → build}/utils.d.ts +1 -1
- package/package.json +9 -10
- package/src/Metadata.ts +5 -5
- package/src/Reflection.ts +7 -7
- package/src/Schema.ts +11 -11
- package/src/annotations.ts +13 -13
- package/src/codegen/api.ts +3 -3
- package/src/codegen/cli.ts +2 -2
- package/src/codegen/languages/cpp.ts +2 -2
- package/src/codegen/languages/csharp.ts +3 -3
- package/src/codegen/languages/haxe.ts +2 -2
- package/src/codegen/languages/java.ts +2 -2
- package/src/codegen/languages/js.ts +2 -2
- package/src/codegen/languages/lua.ts +2 -2
- package/src/codegen/languages/ts.ts +2 -2
- package/src/codegen/parser.ts +6 -1
- package/src/decoder/DecodeOperation.ts +14 -14
- package/src/decoder/Decoder.ts +11 -11
- package/src/decoder/ReferenceTracker.ts +8 -8
- package/src/decoder/strategy/Callbacks.ts +12 -12
- package/src/decoder/strategy/RawChanges.ts +2 -2
- package/src/decoder/strategy/getDecoderStateCallbacks.ts +10 -10
- package/src/encoder/ChangeTree.ts +13 -13
- package/src/encoder/EncodeOperation.ts +9 -9
- package/src/encoder/Encoder.ts +10 -10
- package/src/encoder/Root.ts +4 -4
- package/src/encoder/StateView.ts +7 -7
- package/src/encoding/assert.ts +6 -6
- package/src/encoding/decode.ts +1 -1
- package/src/encoding/encode.ts +1 -1
- package/src/index.ts +27 -27
- package/src/types/HelperTypes.ts +6 -6
- package/src/types/TypeContext.ts +3 -3
- package/src/types/custom/ArraySchema.ts +11 -11
- package/src/types/custom/CollectionSchema.ts +9 -9
- package/src/types/custom/MapSchema.ts +10 -10
- package/src/types/custom/SetSchema.ts +9 -9
- package/src/types/registry.ts +3 -3
- package/src/utils.ts +3 -3
- package/src/v3_bench.ts +1 -1
- package/build/cjs/index.cjs.map +0 -1
- package/build/esm/index.mjs.map +0 -1
- package/lib/Metadata.js +0 -256
- package/lib/Metadata.js.map +0 -1
- package/lib/Reflection.js +0 -179
- package/lib/Reflection.js.map +0 -1
- package/lib/Schema.js +0 -352
- package/lib/Schema.js.map +0 -1
- package/lib/annotations.d.ts +0 -109
- package/lib/annotations.js +0 -473
- package/lib/annotations.js.map +0 -1
- package/lib/bench_encode.d.ts +0 -1
- package/lib/bench_encode.js +0 -91
- package/lib/bench_encode.js.map +0 -1
- package/lib/benchmark.d.ts +0 -1
- package/lib/benchmark.js +0 -218
- package/lib/benchmark.js.map +0 -1
- package/lib/codegen/api.js +0 -56
- package/lib/codegen/api.js.map +0 -1
- package/lib/codegen/argv.js +0 -39
- package/lib/codegen/argv.js.map +0 -1
- package/lib/codegen/cli.js +0 -58
- package/lib/codegen/cli.js.map +0 -1
- package/lib/codegen/languages/cpp.d.ts +0 -3
- package/lib/codegen/languages/cpp.js +0 -258
- package/lib/codegen/languages/cpp.js.map +0 -1
- package/lib/codegen/languages/csharp.d.ts +0 -4
- package/lib/codegen/languages/csharp.js +0 -154
- package/lib/codegen/languages/csharp.js.map +0 -1
- package/lib/codegen/languages/haxe.d.ts +0 -3
- package/lib/codegen/languages/haxe.js +0 -100
- package/lib/codegen/languages/haxe.js.map +0 -1
- package/lib/codegen/languages/java.js +0 -100
- package/lib/codegen/languages/java.js.map +0 -1
- package/lib/codegen/languages/js.d.ts +0 -3
- package/lib/codegen/languages/js.js +0 -101
- package/lib/codegen/languages/js.js.map +0 -1
- package/lib/codegen/languages/lua.d.ts +0 -3
- package/lib/codegen/languages/lua.js +0 -103
- package/lib/codegen/languages/lua.js.map +0 -1
- package/lib/codegen/languages/ts.d.ts +0 -3
- package/lib/codegen/languages/ts.js +0 -116
- package/lib/codegen/languages/ts.js.map +0 -1
- package/lib/codegen/parser.js +0 -327
- package/lib/codegen/parser.js.map +0 -1
- package/lib/codegen/types.js +0 -142
- package/lib/codegen/types.js.map +0 -1
- package/lib/decoder/DecodeOperation.js +0 -248
- package/lib/decoder/DecodeOperation.js.map +0 -1
- package/lib/decoder/Decoder.d.ts +0 -21
- package/lib/decoder/Decoder.js +0 -114
- package/lib/decoder/Decoder.js.map +0 -1
- package/lib/decoder/ReferenceTracker.js +0 -135
- package/lib/decoder/ReferenceTracker.js.map +0 -1
- package/lib/decoder/strategy/Callbacks.js +0 -336
- package/lib/decoder/strategy/Callbacks.js.map +0 -1
- package/lib/decoder/strategy/RawChanges.js +0 -4
- package/lib/decoder/strategy/RawChanges.js.map +0 -1
- package/lib/decoder/strategy/getDecoderStateCallbacks.js +0 -274
- package/lib/decoder/strategy/getDecoderStateCallbacks.js.map +0 -1
- package/lib/encoder/ChangeTree.js +0 -534
- package/lib/encoder/ChangeTree.js.map +0 -1
- package/lib/encoder/EncodeOperation.js +0 -132
- package/lib/encoder/EncodeOperation.js.map +0 -1
- package/lib/encoder/Encoder.js +0 -204
- package/lib/encoder/Encoder.js.map +0 -1
- package/lib/encoder/Root.d.ts +0 -28
- package/lib/encoder/Root.js +0 -229
- package/lib/encoder/Root.js.map +0 -1
- package/lib/encoder/StateView.d.ts +0 -34
- package/lib/encoder/StateView.js +0 -279
- package/lib/encoder/StateView.js.map +0 -1
- package/lib/encoding/assert.d.ts +0 -10
- package/lib/encoding/assert.js +0 -49
- package/lib/encoding/assert.js.map +0 -1
- package/lib/encoding/decode.d.ts +0 -67
- package/lib/encoding/decode.js +0 -217
- package/lib/encoding/decode.js.map +0 -1
- package/lib/encoding/encode.d.ts +0 -40
- package/lib/encoding/encode.js +0 -279
- package/lib/encoding/encode.js.map +0 -1
- package/lib/encoding/spec.js +0 -26
- package/lib/encoding/spec.js.map +0 -1
- package/lib/index.d.ts +0 -32
- package/lib/index.js +0 -39
- package/lib/index.js.map +0 -1
- package/lib/src/Metadata.d.ts +0 -49
- package/lib/src/Metadata.js +0 -256
- package/lib/src/Metadata.js.map +0 -1
- package/lib/src/Reflection.d.ts +0 -71
- package/lib/src/Reflection.js +0 -179
- package/lib/src/Reflection.js.map +0 -1
- package/lib/src/Schema.d.ts +0 -86
- package/lib/src/Schema.js +0 -352
- package/lib/src/Schema.js.map +0 -1
- package/lib/src/annotations.js +0 -473
- package/lib/src/annotations.js.map +0 -1
- package/lib/src/bench_encode.d.ts +0 -1
- package/lib/src/bench_encode.js +0 -91
- package/lib/src/bench_encode.js.map +0 -1
- package/lib/src/codegen/api.d.ts +0 -7
- package/lib/src/codegen/api.js +0 -56
- package/lib/src/codegen/api.js.map +0 -1
- package/lib/src/codegen/argv.d.ts +0 -6
- package/lib/src/codegen/argv.js +0 -39
- package/lib/src/codegen/argv.js.map +0 -1
- package/lib/src/codegen/cli.d.ts +0 -1
- package/lib/src/codegen/cli.js +0 -58
- package/lib/src/codegen/cli.js.map +0 -1
- package/lib/src/codegen/languages/cpp.d.ts +0 -3
- package/lib/src/codegen/languages/cpp.js +0 -258
- package/lib/src/codegen/languages/cpp.js.map +0 -1
- package/lib/src/codegen/languages/csharp.d.ts +0 -4
- package/lib/src/codegen/languages/csharp.js +0 -154
- package/lib/src/codegen/languages/csharp.js.map +0 -1
- package/lib/src/codegen/languages/haxe.d.ts +0 -3
- package/lib/src/codegen/languages/haxe.js +0 -100
- package/lib/src/codegen/languages/haxe.js.map +0 -1
- package/lib/src/codegen/languages/java.d.ts +0 -6
- package/lib/src/codegen/languages/java.js +0 -100
- package/lib/src/codegen/languages/java.js.map +0 -1
- package/lib/src/codegen/languages/js.d.ts +0 -3
- package/lib/src/codegen/languages/js.js +0 -101
- package/lib/src/codegen/languages/js.js.map +0 -1
- package/lib/src/codegen/languages/lua.d.ts +0 -3
- package/lib/src/codegen/languages/lua.js +0 -103
- package/lib/src/codegen/languages/lua.js.map +0 -1
- package/lib/src/codegen/languages/ts.d.ts +0 -3
- package/lib/src/codegen/languages/ts.js +0 -116
- package/lib/src/codegen/languages/ts.js.map +0 -1
- package/lib/src/codegen/parser.d.ts +0 -13
- package/lib/src/codegen/parser.js +0 -327
- package/lib/src/codegen/parser.js.map +0 -1
- package/lib/src/codegen/types.d.ts +0 -52
- package/lib/src/codegen/types.js +0 -142
- package/lib/src/codegen/types.js.map +0 -1
- package/lib/src/decoder/DecodeOperation.d.ts +0 -23
- package/lib/src/decoder/DecodeOperation.js +0 -248
- package/lib/src/decoder/DecodeOperation.js.map +0 -1
- package/lib/src/decoder/Decoder.js +0 -114
- package/lib/src/decoder/Decoder.js.map +0 -1
- package/lib/src/decoder/ReferenceTracker.d.ts +0 -25
- package/lib/src/decoder/ReferenceTracker.js +0 -135
- package/lib/src/decoder/ReferenceTracker.js.map +0 -1
- package/lib/src/decoder/strategy/Callbacks.d.ts +0 -154
- package/lib/src/decoder/strategy/Callbacks.js +0 -336
- package/lib/src/decoder/strategy/Callbacks.js.map +0 -1
- package/lib/src/decoder/strategy/RawChanges.d.ts +0 -3
- package/lib/src/decoder/strategy/RawChanges.js +0 -4
- package/lib/src/decoder/strategy/RawChanges.js.map +0 -1
- package/lib/src/decoder/strategy/getDecoderStateCallbacks.d.ts +0 -76
- package/lib/src/decoder/strategy/getDecoderStateCallbacks.js +0 -274
- package/lib/src/decoder/strategy/getDecoderStateCallbacks.js.map +0 -1
- package/lib/src/encoder/ChangeTree.d.ts +0 -135
- package/lib/src/encoder/ChangeTree.js +0 -534
- package/lib/src/encoder/ChangeTree.js.map +0 -1
- package/lib/src/encoder/EncodeOperation.d.ts +0 -22
- package/lib/src/encoder/EncodeOperation.js +0 -132
- package/lib/src/encoder/EncodeOperation.js.map +0 -1
- package/lib/src/encoder/Encoder.d.ts +0 -22
- package/lib/src/encoder/Encoder.js +0 -204
- package/lib/src/encoder/Encoder.js.map +0 -1
- package/lib/src/encoder/Root.js +0 -229
- package/lib/src/encoder/Root.js.map +0 -1
- package/lib/src/encoder/StateView.js +0 -279
- package/lib/src/encoder/StateView.js.map +0 -1
- package/lib/src/encoding/assert.js +0 -49
- package/lib/src/encoding/assert.js.map +0 -1
- package/lib/src/encoding/decode.js +0 -217
- package/lib/src/encoding/decode.js.map +0 -1
- package/lib/src/encoding/encode.js +0 -279
- package/lib/src/encoding/encode.js.map +0 -1
- package/lib/src/encoding/spec.d.ts +0 -24
- package/lib/src/encoding/spec.js +0 -26
- package/lib/src/encoding/spec.js.map +0 -1
- package/lib/src/index.d.ts +0 -32
- package/lib/src/index.js +0 -39
- package/lib/src/index.js.map +0 -1
- package/lib/src/symbol.shim.js +0 -3
- package/lib/src/symbol.shim.js.map +0 -1
- package/lib/src/types/HelperTypes.d.ts +0 -77
- package/lib/src/types/HelperTypes.js +0 -2
- package/lib/src/types/HelperTypes.js.map +0 -1
- package/lib/src/types/TypeContext.d.ts +0 -31
- package/lib/src/types/TypeContext.js +0 -143
- package/lib/src/types/TypeContext.js.map +0 -1
- package/lib/src/types/custom/ArraySchema.js +0 -733
- package/lib/src/types/custom/ArraySchema.js.map +0 -1
- package/lib/src/types/custom/CollectionSchema.js +0 -170
- package/lib/src/types/custom/CollectionSchema.js.map +0 -1
- package/lib/src/types/custom/MapSchema.d.ts +0 -51
- package/lib/src/types/custom/MapSchema.js +0 -222
- package/lib/src/types/custom/MapSchema.js.map +0 -1
- package/lib/src/types/custom/SetSchema.js +0 -178
- package/lib/src/types/custom/SetSchema.js.map +0 -1
- package/lib/src/types/registry.js +0 -30
- package/lib/src/types/registry.js.map +0 -1
- package/lib/src/types/symbols.js +0 -34
- package/lib/src/types/symbols.js.map +0 -1
- package/lib/src/types/utils.js +0 -13
- package/lib/src/types/utils.js.map +0 -1
- package/lib/src/utils.d.ts +0 -13
- package/lib/src/utils.js +0 -49
- package/lib/src/utils.js.map +0 -1
- package/lib/src/v3_bench.js +0 -128
- package/lib/src/v3_bench.js.map +0 -1
- package/lib/symbol.shim.d.ts +0 -6
- package/lib/symbol.shim.js +0 -3
- package/lib/symbol.shim.js.map +0 -1
- package/lib/types/HelperTypes.js +0 -2
- package/lib/types/HelperTypes.js.map +0 -1
- package/lib/types/TypeContext.js +0 -143
- package/lib/types/TypeContext.js.map +0 -1
- package/lib/types/custom/ArraySchema.d.ts +0 -270
- package/lib/types/custom/ArraySchema.js +0 -733
- package/lib/types/custom/ArraySchema.js.map +0 -1
- package/lib/types/custom/CollectionSchema.d.ts +0 -51
- package/lib/types/custom/CollectionSchema.js +0 -170
- package/lib/types/custom/CollectionSchema.js.map +0 -1
- package/lib/types/custom/MapSchema.js +0 -222
- package/lib/types/custom/MapSchema.js.map +0 -1
- package/lib/types/custom/SetSchema.d.ts +0 -48
- package/lib/types/custom/SetSchema.js +0 -178
- package/lib/types/custom/SetSchema.js.map +0 -1
- package/lib/types/registry.d.ts +0 -16
- package/lib/types/registry.js +0 -30
- package/lib/types/registry.js.map +0 -1
- package/lib/types/symbols.d.ts +0 -33
- package/lib/types/symbols.js +0 -34
- package/lib/types/symbols.js.map +0 -1
- package/lib/types/utils.d.ts +0 -1
- package/lib/types/utils.js +0 -13
- package/lib/types/utils.js.map +0 -1
- package/lib/utils.js +0 -49
- package/lib/utils.js.map +0 -1
- package/lib/v3_bench.d.ts +0 -1
- package/lib/v3_bench.js +0 -128
- package/lib/v3_bench.js.map +0 -1
- /package/{lib → build}/codegen/api.d.ts +0 -0
- /package/{lib → build}/codegen/argv.d.ts +0 -0
- /package/{lib → build}/codegen/cli.d.ts +0 -0
- /package/{lib → build}/codegen/types.d.ts +0 -0
- /package/{lib → build}/encoding/spec.d.ts +0 -0
- /package/build/{cjs/index.cjs → index.cjs} +0 -0
- /package/build/{umd/index.js → index.js} +0 -0
- /package/build/{esm/index.mjs → index.mjs} +0 -0
- /package/{lib/src → build}/symbol.shim.d.ts +0 -0
- /package/{lib/src → build}/types/symbols.d.ts +0 -0
- /package/{lib/src → build}/types/utils.d.ts +0 -0
- /package/{lib/src → build}/v3_bench.d.ts +0 -0
package/lib/bench_encode.js.map
DELETED
|
@@ -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"]}
|
package/lib/benchmark.d.ts
DELETED
|
@@ -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
|
package/lib/benchmark.js.map
DELETED
|
@@ -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();"]}
|
package/lib/codegen/api.js
DELETED
|
@@ -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
|
package/lib/codegen/api.js.map
DELETED
|
@@ -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"]}
|
package/lib/codegen/argv.js
DELETED
|
@@ -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
|
package/lib/codegen/argv.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"argv.js","sourceRoot":"","sources":["../../src/codegen/argv.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAe,CAAC,KAAe,EAAO,EAAE;IACvC,IAAI,KAAK,GAAQ,EAAE,CAAA;IACnB,IAAI,KAAK,GAAQ,EAAE,CAAA;IAEnB,MAAM,mBAAmB,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9L,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAExE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACzC,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;QACnJ,MAAM,OAAO,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAA;QAEtH,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAA;QACtE,CAAC;aACI,IAAI,aAAa,EAAE,CAAC;YACxB,KAAK,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAClD,CAAC,EAAE,CAAA;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAA;YACtB,CAAC;iBACI,CAAC;gBACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;gBAChC,CAAC;YACF,CAAC;QACF,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAA;QACzC,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QAC3B,GAAG,EAAE,KAAK;KACV,CAAC,CAAA;AACH,CAAC,CAAA","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"]}
|
package/lib/codegen/cli.js
DELETED
|
@@ -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
|
package/lib/codegen/cli.js.map
DELETED
|
@@ -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"]}
|