first commit

This commit is contained in:
编码猿
2024-09-27 01:15:47 +08:00
commit 8be1fcce6b
155 changed files with 9435 additions and 0 deletions

96
json-mapper-class/dist/decorators.js vendored Normal file
View File

@@ -0,0 +1,96 @@
"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;