import {EParamType} from "./types"; import {BodyInputHelper} from "./input-helper.body"; import {UserInputHelper} from "./input-helper.user"; import {ParamInputHelper, SafeParamInputHelper} from "./input-helper.param"; import {FileInputHelper} from "./input-helper.upload"; import {InputHelper} from "./input-helper"; export function inputHelperFactory(from: EParamType, copy: InputHelper): InputHelper & any { let e; switch (from) { case EParamType.TYPE_LOGIN: e = new UserInputHelper(copy, from); break; case EParamType.TYPE_BODY: e = new BodyInputHelper(copy, from); break; case EParamType.TYPE_REWRITE_PATH: e = new ParamInputHelper(copy, from); break; case EParamType.TYPE_GET: e = new ParamInputHelper(copy, from); break; case EParamType.TYPE_POST: e = new ParamInputHelper(copy, from); break; case EParamType.TYPE_UPLOAD: e = new FileInputHelper(copy, from); break; case EParamType.TYPE_COOKIE: e = new ParamInputHelper(copy, from); break; case EParamType.TYPE_SAFE_COOKIE: e = new SafeParamInputHelper(copy, from); break; case EParamType.TYPE_SESSION: e = new SafeParamInputHelper(copy, from); break; default: throw new TypeError('unknown type'); } return e; }