serde-ts/dist/ser/mixin.js
2025-05-18 21:47:04 -05:00

25 lines
819 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.serialize = serialize;
const impl_1 = require("./impl");
const interface_1 = require("./interface");
function serialize(constructor) {
class Serializable extends constructor {
serialize(serializer) {
// shortcut for serializers with only the serializeAny method
if ((0, interface_1.isGenericSerializer)(serializer)) {
return serializer.serializeAny(this);
}
else {
return (0, impl_1.serializeWith)(serializer, this);
}
}
}
Object.defineProperty(Serializable, "name", {
enumerable: true,
configurable: true,
writable: true,
value: constructor.name
});
return Serializable;
}