UNPKG

nestjs-appwrite

Version:

Easier Appwrite integration for your NestJS application.

32 lines (27 loc) 848 B
import 'reflect-metadata'; import typeMetadataStorage from '../../storage/type-metadata.storage'; import { determineRequiredValue, PropOptions } from './prop.options'; const DEFAULT_MIN = Number.MIN_SAFE_INTEGER; const DEFAULT_MAX = Number.MAX_SAFE_INTEGER; export type IntegerPropOptions = PropOptions<number> & { isInt?: boolean; min?: number; max?: number; }; export function IntegerProp(options: IntegerPropOptions = {}): PropertyDecorator { return (target, propertyKey) => { const propKey = propertyKey.toString(); typeMetadataStorage.addPropertyMetadata( target.constructor, propKey, { ...options, required: determineRequiredValue(options), type: Number, isInt: true, min: options.min ?? DEFAULT_MIN, max: options.max ?? DEFAULT_MAX, } ); }; }