UNPKG

@calf/serializable

Version:

Serializable module of Calf framework.

51 lines (50 loc) 1.37 kB
"use strict"; 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;