express-cargo
Version:
express middleware for class-based request parsing
28 lines (27 loc) • 1.12 kB
JavaScript
import { CargoClassMetadata } from './metadata';
export function Transform(transformer) {
return (target, propertyKey)=>{
const classMeta = new CargoClassMetadata(target);
const fieldMeta = classMeta.getFieldMetadata(propertyKey);
fieldMeta.setTransformer(transformer);
classMeta.setFieldMetadata(propertyKey, fieldMeta);
};
}
export function Request(transformer) {
return (target, propertyKey)=>{
const classMeta = new CargoClassMetadata(target);
const fieldMeta = classMeta.getFieldMetadata(propertyKey);
fieldMeta.setRequestTransformer(transformer);
classMeta.setFieldMetadata(propertyKey, fieldMeta);
classMeta.setRequestFieldList(propertyKey);
};
}
export function Virtual(transformer) {
return (target, propertyKey)=>{
const classMeta = new CargoClassMetadata(target);
const fieldMeta = classMeta.getFieldMetadata(propertyKey);
fieldMeta.setVirtualTransformer(transformer);
classMeta.setFieldMetadata(propertyKey, fieldMeta);
classMeta.setVirtualFieldList(propertyKey);
};
}