nestjs-appwrite
Version:
Easier Appwrite integration for your NestJS application.
29 lines (24 loc) • 730 B
text/typescript
import 'reflect-metadata';
import typeMetadataStorage from '../../storage/type-metadata.storage';
import { determineRequiredValue, PropOptions } from './prop.options';
const DEFAULT_SIZE = 265;
export type StringPropOptions = PropOptions<string> & {
isArray?: boolean;
size?: number;
encrypt?: boolean;
};
export function StringProp(options: StringPropOptions = {}): PropertyDecorator {
return (target, propertyKey) => {
const propKey = propertyKey.toString();
typeMetadataStorage.addPropertyMetadata(
target.constructor,
propKey,
{
...options,
required: determineRequiredValue(options),
type: String,
size: options.size ?? DEFAULT_SIZE,
}
);
};
}