UNPKG

chrono-forge

Version:

A comprehensive framework for building resilient Temporal workflows, advanced state management, and real-time streaming activities in TypeScript. Designed for a seamless developer experience with powerful abstractions, dynamic orchestration, and full cont

34 lines (33 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Property = void 0; require("reflect-metadata"); const metadata_1 = require("./metadata"); const Property = (options = {}) => { return (target, propertyKey) => { const properties = Reflect.getOwnMetadata(metadata_1.PROPERTY_METADATA_KEY, target) || []; properties.push({ propertyKey, path: options.path, get: options.get || options.get === undefined, set: options.set || options.set === undefined, queryName: propertyKey, signalName: propertyKey, memo: options.memo }); Reflect.defineMetadata(metadata_1.PROPERTY_METADATA_KEY, properties, target); if (options.get) { const getterName = typeof options.get === 'string' ? options.get : propertyKey; const getters = Reflect.getOwnMetadata(metadata_1.GETTER_METADATA_KEY, target) || {}; getters[getterName] = propertyKey; Reflect.defineMetadata(metadata_1.GETTER_METADATA_KEY, getters, target); } if (options.set) { const setterName = typeof options.set === 'string' ? options.set : propertyKey; const setters = Reflect.getOwnMetadata(metadata_1.SETTER_METADATA_KEY, target) || {}; setters[setterName] = propertyKey; Reflect.defineMetadata(metadata_1.SETTER_METADATA_KEY, setters, target); } }; }; exports.Property = Property;