9cd83612d0e8a8507aa656b7d2e91435b672edc9
[oweals/peertube.git] / server / typings / sequelize.ts
1 import { Model } from 'sequelize-typescript'
2
3 // Thanks to sequelize-typescript: https://github.com/RobinBuschmann/sequelize-typescript
4
5 export type Diff<T extends string | symbol | number, U extends string | symbol | number> =
6   ({ [P in T]: P } & { [P in U]: never } & { [ x: string ]: never })[T]
7
8 export type Omit<T, K extends keyof T> = { [P in Diff<keyof T, K>]: T[P] }
9
10 export type RecursivePartial<T> = { [P in keyof T]?: RecursivePartial<T[P]> }
11
12 export type FilteredModelAttributes<T extends Model<T>> = RecursivePartial<Omit<T, keyof Model<any>>> & {
13   id?: number | any
14   createdAt?: Date | any
15   updatedAt?: Date | any
16   deletedAt?: Date | any
17   version?: number | any
18 }