@colyseus/schema 3.0.48 → 3.0.49
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/build/cjs/index.js +21 -9
- package/build/cjs/index.js.map +1 -1
- package/build/esm/index.mjs +21 -9
- package/build/esm/index.mjs.map +1 -1
- package/build/umd/index.js +21 -9
- package/lib/annotations.d.ts +1 -1
- package/lib/annotations.js +21 -9
- package/lib/annotations.js.map +1 -1
- package/package.json +1 -1
- package/src/annotations.ts +24 -10
package/build/esm/index.mjs
CHANGED
|
@@ -3178,20 +3178,29 @@ function defineTypes(target, fields, options) {
|
|
|
3178
3178
|
}
|
|
3179
3179
|
return target;
|
|
3180
3180
|
}
|
|
3181
|
-
function schema(
|
|
3181
|
+
function schema(fieldsAndMethods, name, inherits = Schema) {
|
|
3182
|
+
const fields = {};
|
|
3183
|
+
const methods = {};
|
|
3182
3184
|
const defaultValues = {};
|
|
3183
3185
|
const viewTagFields = {};
|
|
3184
|
-
for (let fieldName in
|
|
3185
|
-
const
|
|
3186
|
-
if (typeof (
|
|
3187
|
-
if (
|
|
3188
|
-
defaultValues[fieldName] =
|
|
3186
|
+
for (let fieldName in fieldsAndMethods) {
|
|
3187
|
+
const value = fieldsAndMethods[fieldName];
|
|
3188
|
+
if (typeof (value) === "object") {
|
|
3189
|
+
if (value['default'] !== undefined) {
|
|
3190
|
+
defaultValues[fieldName] = value['default'];
|
|
3189
3191
|
}
|
|
3190
|
-
if (
|
|
3191
|
-
viewTagFields[fieldName] = (typeof (
|
|
3192
|
+
if (value['view'] !== undefined) {
|
|
3193
|
+
viewTagFields[fieldName] = (typeof (value['view']) === "boolean")
|
|
3192
3194
|
? DEFAULT_VIEW_TAG
|
|
3193
|
-
:
|
|
3195
|
+
: value['view'];
|
|
3194
3196
|
}
|
|
3197
|
+
fields[fieldName] = value;
|
|
3198
|
+
}
|
|
3199
|
+
else if (typeof (value) === "function") {
|
|
3200
|
+
methods[fieldName] = value;
|
|
3201
|
+
}
|
|
3202
|
+
else {
|
|
3203
|
+
fields[fieldName] = value;
|
|
3195
3204
|
}
|
|
3196
3205
|
}
|
|
3197
3206
|
const klass = Metadata.setFields(class extends inherits {
|
|
@@ -3203,6 +3212,9 @@ function schema(fields, name, inherits = Schema) {
|
|
|
3203
3212
|
for (let fieldName in viewTagFields) {
|
|
3204
3213
|
view(viewTagFields[fieldName])(klass.prototype, fieldName);
|
|
3205
3214
|
}
|
|
3215
|
+
for (let methodName in methods) {
|
|
3216
|
+
klass.prototype[methodName] = methods[methodName];
|
|
3217
|
+
}
|
|
3206
3218
|
if (name) {
|
|
3207
3219
|
Object.defineProperty(klass, "name", { value: name });
|
|
3208
3220
|
}
|