X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Futils.ts;h=1606453e0e45212e04cf9591dc119415ea0f1816;hb=47564bbe2eeb2baae9b7e3f9b2b8d16522bc7e04;hp=fd84a92399e5f2aaefab3ef826d022f4e4f5be32;hpb=e02643f32e4c97ca307f8fc5b69be79c40d70a3b;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/utils.ts b/server/models/utils.ts index fd84a9239..1606453e0 100644 --- a/server/models/utils.ts +++ b/server/models/utils.ts @@ -1,7 +1,7 @@ // Translate for example "-name" to [ 'name', 'DESC' ] -function getSort (value) { - let field - let direction +function getSort (value: string) { + let field: string + let direction: 'ASC' | 'DESC' if (value.substring(0, 1) === '-') { direction = 'DESC' @@ -14,14 +14,23 @@ function getSort (value) { return [ field, direction ] } -function addMethodsToModel (model: any, classMethods: Function[], instanceMethods: Function[] = []) { - classMethods.forEach(m => model[m.name] = m) - instanceMethods.forEach(m => model.prototype[m.name] = m) +function getSortOnModel (model: any, value: string) { + let sort = getSort(value) + + if (model) return [ model, sort[0], sort[1] ] + return sort +} + +function throwIfNotValid (value: any, validator: (value: any) => boolean, fieldName = 'value') { + if (validator(value) === false) { + throw new Error(`"${value}" is not a valid ${fieldName}.`) + } } // --------------------------------------------------------------------------- export { - addMethodsToModel, - getSort + getSort, + getSortOnModel, + throwIfNotValid }