@calf/serializable
Version:
Serializable module of Calf framework.
51 lines (50 loc) • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Property = void 0;
// External modules
require("reflect-metadata");
// Symbols
var property_symbol_1 = require("../symbols/property.symbol");
/**
* Property decorator
*/
function Property(arg1, arg2, arg3) {
// Init property
var property = {};
// Check for first argument
if (typeof arg1 === "number" || arg1 instanceof Array) {
// Assign type
property.type = arg1;
// Check for arg2
if (arg2) {
if (typeof arg2 === "number") {
// Assign value
property.value = arg2;
}
else {
// Assign
property.reference = arg2;
}
}
}
else {
// Assign name
property.name = arg1;
// Assign type
property.type = arg2;
// Check for arg3
if (arg3) {
if (typeof arg3 === "number") {
// Assign value
property.value = arg3;
}
else {
// Assign
property.reference = arg3;
}
}
}
// Set metadata
return Reflect.metadata(property_symbol_1.PROPERTY_METADATA_KEY, property);
}
exports.Property = Property;