@@ -1,4 +1,3 @@
|
||||
import { EntityConstructor } from "@medusajs/types"
|
||||
import { ArrayType, MetadataStorage } from "@mikro-orm/core"
|
||||
import { expectTypeOf } from "expect-type"
|
||||
import { DmlEntity } from "../entity"
|
||||
@@ -77,7 +76,6 @@ describe("Entity builder", () => {
|
||||
expect(user.parse().tableName).toEqual("user")
|
||||
|
||||
const User = toMikroORMEntity(user)
|
||||
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
@@ -1808,15 +1806,20 @@ describe("Entity builder", () => {
|
||||
})
|
||||
|
||||
const User = toMikroORMEntity(user)
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
|
||||
expectTypeOf(new User()).toEqualTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
deleted_at: Date | null
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
created_at: Date
|
||||
updated_at: Date
|
||||
deleted_at: Date | null
|
||||
}>
|
||||
}
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -1901,11 +1904,11 @@ describe("Entity builder", () => {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
emails: EntityConstructor<{
|
||||
emails: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
}> | null
|
||||
} | null
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -1988,7 +1991,7 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
email: EntityConstructor<{ email: string; isVerified: boolean }>
|
||||
email: { email: string; isVerified: boolean }
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -2075,7 +2078,7 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
email: EntityConstructor<{ email: string; isVerified: boolean }>
|
||||
email: { email: string; isVerified: boolean }
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -2221,14 +2224,14 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}
|
||||
}
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -2661,7 +2664,7 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
emails: EntityConstructor<{ email: string; isVerified: boolean }>
|
||||
emails: { email: string; isVerified: boolean }[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -2747,7 +2750,7 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
emails: EntityConstructor<{ email: string; isVerified: boolean }> | null
|
||||
emails: { email: string; isVerified: boolean }[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -2834,7 +2837,7 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
emails: EntityConstructor<{ email: string; isVerified: boolean }>
|
||||
emails: { email: string; isVerified: boolean }[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -2924,7 +2927,7 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
emails: EntityConstructor<{ email: string; isVerified: boolean }>
|
||||
emails: { email: string; isVerified: boolean }[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -3087,32 +3090,32 @@ describe("Entity builder", () => {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
}>
|
||||
}>
|
||||
}
|
||||
}
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Email()).toMatchTypeOf<{
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
}>
|
||||
}>
|
||||
}
|
||||
}
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -3272,27 +3275,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
}> | null
|
||||
}>
|
||||
} | null
|
||||
}
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Email()).toMatchTypeOf<{
|
||||
email: string
|
||||
isVerified: boolean
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
}>
|
||||
}> | null
|
||||
}
|
||||
} | null
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -3452,27 +3455,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
emails: EntityConstructor<{
|
||||
emails: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Email()).toMatchTypeOf<{
|
||||
email: string
|
||||
isVerified: boolean
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
emails: EntityConstructor<{
|
||||
emails: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -3631,27 +3634,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
emails: EntityConstructor<{
|
||||
emails: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
}> | null
|
||||
}>
|
||||
} | null
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Email()).toMatchTypeOf<{
|
||||
email: string
|
||||
isVerified: boolean
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
emails: EntityConstructor<{
|
||||
emails: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
}>
|
||||
}> | null
|
||||
}[]
|
||||
} | null
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -3869,32 +3872,32 @@ describe("Entity builder", () => {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
}>
|
||||
}>
|
||||
}
|
||||
}
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Email()).toMatchTypeOf<{
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
}>
|
||||
}>
|
||||
}
|
||||
}
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -4057,32 +4060,32 @@ describe("Entity builder", () => {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
}>
|
||||
}>
|
||||
}
|
||||
}
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Email()).toMatchTypeOf<{
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
user: EntityConstructor<{
|
||||
user: {
|
||||
id: number
|
||||
username: string
|
||||
deleted_at: Date | null
|
||||
email: EntityConstructor<{
|
||||
email: {
|
||||
email: string
|
||||
isVerified: boolean
|
||||
deleted_at: Date | null
|
||||
}>
|
||||
}>
|
||||
}
|
||||
}
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -4246,27 +4249,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Team()).toMatchTypeOf<{
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -4413,27 +4416,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Team()).toMatchTypeOf<{
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -4615,27 +4618,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Team()).toMatchTypeOf<{
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -4789,27 +4792,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Team()).toMatchTypeOf<{
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -4969,39 +4972,39 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
activeTeams: EntityConstructor<{
|
||||
}[]
|
||||
}[]
|
||||
activeTeams: {
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Team()).toMatchTypeOf<{
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
}>
|
||||
activeTeams: EntityConstructor<{
|
||||
}[]
|
||||
activeTeams: {
|
||||
id: number
|
||||
name: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -5168,27 +5171,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Team()).toMatchTypeOf<{
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -5339,27 +5342,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Team()).toMatchTypeOf<{
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||
@@ -5513,27 +5516,27 @@ describe("Entity builder", () => {
|
||||
expectTypeOf(new User()).toMatchTypeOf<{
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
expectTypeOf(new Team()).toMatchTypeOf<{
|
||||
id: number
|
||||
name: string
|
||||
users: EntityConstructor<{
|
||||
users: {
|
||||
id: number
|
||||
username: string
|
||||
teams: EntityConstructor<{
|
||||
teams: {
|
||||
id: number
|
||||
name: string
|
||||
}>
|
||||
}>
|
||||
}[]
|
||||
}[]
|
||||
}>()
|
||||
|
||||
const squadMetaData = MetadataStorage.getMetadataFromDecorator(Squad)
|
||||
|
||||
@@ -85,16 +85,14 @@ export function createMikrORMEntity() {
|
||||
* return the input idempotently
|
||||
* @param entity
|
||||
*/
|
||||
export const toMikroORMEntity = <T>(
|
||||
entity: T
|
||||
): T extends DmlEntity<any> ? Infer<T> : T => {
|
||||
export const toMikroORMEntity = <T>(entity: T): Infer<T> => {
|
||||
let mikroOrmEntity: T | EntityConstructor<any> = entity
|
||||
|
||||
if (DmlEntity.isDmlEntity(entity)) {
|
||||
mikroOrmEntity = createMikrORMEntity()(entity)
|
||||
}
|
||||
|
||||
return mikroOrmEntity as T extends DmlEntity<any> ? Infer<T> : T
|
||||
return mikroOrmEntity as Infer<T>
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,7 +16,7 @@ export class NullableModifier<T, Relation extends RelationshipType<T>>
|
||||
return !!modifier?.[IsNullableModifier]
|
||||
}
|
||||
|
||||
declare type: RelationshipType<T>["type"]
|
||||
declare type: Relation["type"]
|
||||
|
||||
/**
|
||||
* A type-only property to infer the JavScript data-type
|
||||
|
||||
Reference in New Issue
Block a user