97 lines
2.8 KiB
JavaScript
97 lines
2.8 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.defaultVal = exports.optional = exports.typed = exports.property = exports.serializeTarget = exports.afterSerialize = exports.beforeDeserialize = exports.deserialize = exports.serialize = void 0;
|
|
const store_1 = require("./store");
|
|
function serialize(serializer, disallowIgnore = false) {
|
|
return (target, propertyKey) => {
|
|
store_1.setStore(target, {
|
|
key: propertyKey,
|
|
serializer,
|
|
disallowIgnoreSerializer: disallowIgnore,
|
|
});
|
|
};
|
|
}
|
|
exports.serialize = serialize;
|
|
function deserialize(deserializer, disallowIgnore = false) {
|
|
return (target, propertyKey) => {
|
|
store_1.setStore(target, {
|
|
key: propertyKey,
|
|
deserializer,
|
|
disallowIgnoreDeserializer: disallowIgnore,
|
|
});
|
|
};
|
|
}
|
|
exports.deserialize = deserialize;
|
|
function beforeDeserialize(beforeDeserializer, disallowIgnore = false) {
|
|
return (target, propertyKey) => {
|
|
store_1.setStore(target, {
|
|
key: propertyKey,
|
|
beforeDeserializer,
|
|
disallowIgnoreBeforeDeserializer: disallowIgnore,
|
|
});
|
|
};
|
|
}
|
|
exports.beforeDeserialize = beforeDeserialize;
|
|
function afterSerialize(afterSerializer, disallowIgnore = false) {
|
|
return (target, propertyKey) => {
|
|
store_1.setStore(target, {
|
|
key: propertyKey,
|
|
afterSerializer,
|
|
disallowIgnoreAfterSerializer: disallowIgnore,
|
|
});
|
|
};
|
|
}
|
|
exports.afterSerialize = afterSerialize;
|
|
function serializeTarget() {
|
|
return (target, propertyKey) => {
|
|
store_1.setStore(target, {
|
|
key: propertyKey,
|
|
serializeTarget: true,
|
|
});
|
|
};
|
|
}
|
|
exports.serializeTarget = serializeTarget;
|
|
function property(originalKey, targetClass, isOptional = false) {
|
|
return (target, propertyKey) => {
|
|
const config = {
|
|
originalKey: originalKey || propertyKey,
|
|
key: propertyKey,
|
|
};
|
|
if (targetClass) {
|
|
config.targetClass = targetClass.prototype.constructor;
|
|
}
|
|
if (isOptional) {
|
|
config.optional = isOptional;
|
|
}
|
|
store_1.setStore(target, config);
|
|
};
|
|
}
|
|
exports.property = property;
|
|
function typed(targetClass) {
|
|
return (target, propertyKey) => {
|
|
store_1.setStore(target, {
|
|
key: propertyKey,
|
|
targetClass,
|
|
});
|
|
};
|
|
}
|
|
exports.typed = typed;
|
|
function optional() {
|
|
return (target, propertyKey) => {
|
|
store_1.setStore(target, {
|
|
key: propertyKey,
|
|
optional: true,
|
|
});
|
|
};
|
|
}
|
|
exports.optional = optional;
|
|
function defaultVal(value) {
|
|
return (target, propertyKey) => {
|
|
store_1.setStore(target, {
|
|
key: propertyKey,
|
|
default: value,
|
|
});
|
|
};
|
|
}
|
|
exports.defaultVal = defaultVal;
|