import { Col } from 'sequelize/types/lib/utils'
import { literal, OrderItem, Op } from 'sequelize'
-type Primitive = string | Function | number | boolean | Symbol | undefined | null
-type DeepOmitHelper<T, K extends keyof T> = {
- [P in K]: // extra level of indirection needed to trigger homomorhic behavior
- T[P] extends infer TP // distribute over unions
- ? TP extends Primitive
- ? TP // leave primitives and functions alone
- : TP extends any[]
- ? DeepOmitArray<TP, K> // Array special handling
- : DeepOmit<TP, K>
- : never
-}
-type DeepOmit<T, K> = T extends Primitive ? T : DeepOmitHelper<T, Exclude<keyof T, K>>
-
-type DeepOmitArray<T extends any[], K> = {
- [P in keyof T]: DeepOmit<T[P], K>
-}
-
type SortType = { sortModel: string, sortValue: string }
// Translate for example "-name" to [ [ 'name', 'DESC' ], [ 'id', 'ASC' ] ]
)
}
-function buildBlockedAccountSQL (serverAccountId: number, userAccountId?: number) {
- const blockerIds = [ serverAccountId ]
- if (userAccountId) blockerIds.push(userAccountId)
-
+function buildBlockedAccountSQL (blockerIds: number[]) {
const blockerIdsString = blockerIds.join(', ')
return 'SELECT "targetAccountId" AS "id" FROM "accountBlocklist" WHERE "accountId" IN (' + blockerIdsString + ')' +
return { direction, field }
}
-function searchAttribute (sourceField, targetField) {
- if (sourceField) {
- return {
- [targetField]: {
- [Op.iLike]: `%${sourceField}%`
- }
+function searchAttribute (sourceField?: string, targetField?: string) {
+ if (!sourceField) return {}
+
+ return {
+ [targetField]: {
+ [Op.iLike]: `%${sourceField}%`
}
- } else {
- return {}
}
}
// ---------------------------------------------------------------------------
export {
- DeepOmit,
buildBlockedAccountSQL,
buildLocalActorIdsIn,
SortType,