@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/cjs/index.js
CHANGED
|
@@ -3180,20 +3180,29 @@ function defineTypes(target, fields, options) {
|
|
|
3180
3180
|
}
|
|
3181
3181
|
return target;
|
|
3182
3182
|
}
|
|
3183
|
-
function schema(
|
|
3183
|
+
function schema(fieldsAndMethods, name, inherits = Schema) {
|
|
3184
|
+
const fields = {};
|
|
3185
|
+
const methods = {};
|
|
3184
3186
|
const defaultValues = {};
|
|
3185
3187
|
const viewTagFields = {};
|
|
3186
|
-
for (let fieldName in
|
|
3187
|
-
const
|
|
3188
|
-
if (typeof (
|
|
3189
|
-
if (
|
|
3190
|
-
defaultValues[fieldName] =
|
|
3188
|
+
for (let fieldName in fieldsAndMethods) {
|
|
3189
|
+
const value = fieldsAndMethods[fieldName];
|
|
3190
|
+
if (typeof (value) === "object") {
|
|
3191
|
+
if (value['default'] !== undefined) {
|
|
3192
|
+
defaultValues[fieldName] = value['default'];
|
|
3191
3193
|
}
|
|
3192
|
-
if (
|
|
3193
|
-
viewTagFields[fieldName] = (typeof (
|
|
3194
|
+
if (value['view'] !== undefined) {
|
|
3195
|
+
viewTagFields[fieldName] = (typeof (value['view']) === "boolean")
|
|
3194
3196
|
? DEFAULT_VIEW_TAG
|
|
3195
|
-
:
|
|
3197
|
+
: value['view'];
|
|
3196
3198
|
}
|
|
3199
|
+
fields[fieldName] = value;
|
|
3200
|
+
}
|
|
3201
|
+
else if (typeof (value) === "function") {
|
|
3202
|
+
methods[fieldName] = value;
|
|
3203
|
+
}
|
|
3204
|
+
else {
|
|
3205
|
+
fields[fieldName] = value;
|
|
3197
3206
|
}
|
|
3198
3207
|
}
|
|
3199
3208
|
const klass = Metadata.setFields(class extends inherits {
|
|
@@ -3205,6 +3214,9 @@ function schema(fields, name, inherits = Schema) {
|
|
|
3205
3214
|
for (let fieldName in viewTagFields) {
|
|
3206
3215
|
view(viewTagFields[fieldName])(klass.prototype, fieldName);
|
|
3207
3216
|
}
|
|
3217
|
+
for (let methodName in methods) {
|
|
3218
|
+
klass.prototype[methodName] = methods[methodName];
|
|
3219
|
+
}
|
|
3208
3220
|
if (name) {
|
|
3209
3221
|
Object.defineProperty(klass, "name", { value: name });
|
|
3210
3222
|
}
|