medusa-plugin-reviews
Version:
Customer product reviews plugin for medusa.
78 lines (65 loc) • 1.55 kB
text/typescript
import { FindManyOptions, FindOneOptions, FindOperator } from "typeorm"
import { IsNumber, IsOptional, IsString } from "class-validator"
import { Type } from "class-transformer"
export type ExtendedFindConfig<
TEntity,
TWhereKeys = TEntity
> = FindConfig<TEntity> &
(FindOneOptions<TEntity> | FindManyOptions<TEntity>) & {
where: Partial<Writable<TWhereKeys>>
withDeleted?: boolean
relations?: string[]
}
export type Selector<TEntity> = {
[key in keyof TEntity]?:
| TEntity[key]
| TEntity[key][]
| StringComparisonOperator
| NumericalComparisonOperator
| FindOperator<TEntity[key][] | string[]>
}
export interface FindConfig<Entity> {
select?: (keyof Entity)[]
skip?: number
take?: number
relations?: string[]
order?: Record<string, "ASC" | "DESC">
}
export class NumericalComparisonOperator {
()
()
(() => Number)
lt?: number
()
()
(() => Number)
gt?: number
()
()
(() => Number)
gte?: number
()
()
(() => Number)
lte?: number
}
export class StringComparisonOperator {
()
()
lt?: string
()
()
gt?: string
()
()
gte?: string
()
()
lte?: string
}
export type Writable<T> = {
-readonly [key in keyof T]:
| T[key]
| FindOperator<T[key][]>
| FindOperator<string[]>
}