nestjs-appwrite
Version:
Easier Appwrite integration for your NestJS application.
24 lines (20 loc) • 614 B
text/typescript
import typeMetadataStorage from '../../storage/type-metadata.storage';
import { determineRequiredValue, PropOptions } from './prop.options';
export type EnumPropOptions = PropOptions<String> & {
enum: Record<string, string>;
isArray?: boolean;
};
export function EnumProp(options: EnumPropOptions): PropertyDecorator {
return (target, propertyKey) => {
const propKey = propertyKey.toString();
typeMetadataStorage.addPropertyMetadata(
target.constructor,
propKey,
{
...options,
required: determineRequiredValue(options),
type: String
}
);
};
}