feat: mark all DML entities as soft delete-able by default (#7744)
This commit is contained in:
1 parent
4e86caba30
commit
0886869148
3 files changed
+423
-4
No files matched your search
@@ -24,11 +24,22 @@ describe("Entity builder", () => {
|
|||||||
id: number
|
id: number
|
||||||
username: string
|
username: string
|
||||||
email: string
|
email: string
|
||||||
|
deleted_at: Date | null
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||||
expect(metaData.className).toEqual("User")
|
expect(metaData.className).toEqual("User")
|
||||||
expect(metaData.path).toEqual("User")
|
expect(metaData.path).toEqual("User")
|
||||||
|
|
||||||
|
expect(metaData.filters).toEqual({
|
||||||
|
softDeletable: {
|
||||||
|
name: "softDeletable",
|
||||||
|
cond: expect.any(Function),
|
||||||
|
default: true,
|
||||||
|
args: false,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
expect(metaData.properties).toEqual({
|
expect(metaData.properties).toEqual({
|
||||||
id: {
|
id: {
|
||||||
reference: "scalar",
|
reference: "scalar",
|
||||||
@@ -57,6 +68,15 @@ describe("Entity builder", () => {
|
|||||||
getter: false,
|
getter: false,
|
||||||
setter: false,
|
setter: false,
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -74,11 +94,22 @@ describe("Entity builder", () => {
|
|||||||
id: number
|
id: number
|
||||||
username: string
|
username: string
|
||||||
email: string
|
email: string
|
||||||
|
deleted_at: Date | null
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||||
expect(metaData.className).toEqual("User")
|
expect(metaData.className).toEqual("User")
|
||||||
expect(metaData.path).toEqual("User")
|
expect(metaData.path).toEqual("User")
|
||||||
|
|
||||||
|
expect(metaData.filters).toEqual({
|
||||||
|
softDeletable: {
|
||||||
|
name: "softDeletable",
|
||||||
|
cond: expect.any(Function),
|
||||||
|
default: true,
|
||||||
|
args: false,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
expect(metaData.properties).toEqual({
|
expect(metaData.properties).toEqual({
|
||||||
id: {
|
id: {
|
||||||
reference: "scalar",
|
reference: "scalar",
|
||||||
@@ -108,6 +139,15 @@ describe("Entity builder", () => {
|
|||||||
getter: false,
|
getter: false,
|
||||||
setter: false,
|
setter: false,
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -125,11 +165,22 @@ describe("Entity builder", () => {
|
|||||||
id: number
|
id: number
|
||||||
username: string | null
|
username: string | null
|
||||||
email: string
|
email: string
|
||||||
|
deleted_at: Date | null
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||||
expect(metaData.className).toEqual("User")
|
expect(metaData.className).toEqual("User")
|
||||||
expect(metaData.path).toEqual("User")
|
expect(metaData.path).toEqual("User")
|
||||||
|
|
||||||
|
expect(metaData.filters).toEqual({
|
||||||
|
softDeletable: {
|
||||||
|
name: "softDeletable",
|
||||||
|
cond: expect.any(Function),
|
||||||
|
default: true,
|
||||||
|
args: false,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
expect(metaData.properties).toEqual({
|
expect(metaData.properties).toEqual({
|
||||||
id: {
|
id: {
|
||||||
reference: "scalar",
|
reference: "scalar",
|
||||||
@@ -158,6 +209,15 @@ describe("Entity builder", () => {
|
|||||||
getter: false,
|
getter: false,
|
||||||
setter: false,
|
setter: false,
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -177,12 +237,23 @@ describe("Entity builder", () => {
|
|||||||
username: string
|
username: string
|
||||||
email: string
|
email: string
|
||||||
role: "moderator" | "admin" | "guest"
|
role: "moderator" | "admin" | "guest"
|
||||||
|
deleted_at: Date | null
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||||
|
|
||||||
expect(metaData.className).toEqual("User")
|
expect(metaData.className).toEqual("User")
|
||||||
expect(metaData.path).toEqual("User")
|
expect(metaData.path).toEqual("User")
|
||||||
|
|
||||||
|
expect(metaData.filters).toEqual({
|
||||||
|
softDeletable: {
|
||||||
|
name: "softDeletable",
|
||||||
|
cond: expect.any(Function),
|
||||||
|
default: true,
|
||||||
|
args: false,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
expect(metaData.properties).toEqual({
|
expect(metaData.properties).toEqual({
|
||||||
id: {
|
id: {
|
||||||
reference: "scalar",
|
reference: "scalar",
|
||||||
@@ -218,7 +289,17 @@ describe("Entity builder", () => {
|
|||||||
nullable: false,
|
nullable: false,
|
||||||
name: "role",
|
name: "role",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
expect(metaData.properties["role"].items()).toEqual([
|
expect(metaData.properties["role"].items()).toEqual([
|
||||||
"moderator",
|
"moderator",
|
||||||
"admin",
|
"admin",
|
||||||
@@ -242,12 +323,23 @@ describe("Entity builder", () => {
|
|||||||
username: string
|
username: string
|
||||||
email: string
|
email: string
|
||||||
role: "moderator" | "admin" | "guest"
|
role: "moderator" | "admin" | "guest"
|
||||||
|
deleted_at: Date | null
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||||
|
|
||||||
expect(metaData.className).toEqual("User")
|
expect(metaData.className).toEqual("User")
|
||||||
expect(metaData.path).toEqual("User")
|
expect(metaData.path).toEqual("User")
|
||||||
|
|
||||||
|
expect(metaData.filters).toEqual({
|
||||||
|
softDeletable: {
|
||||||
|
name: "softDeletable",
|
||||||
|
cond: expect.any(Function),
|
||||||
|
default: true,
|
||||||
|
args: false,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
expect(metaData.properties).toEqual({
|
expect(metaData.properties).toEqual({
|
||||||
id: {
|
id: {
|
||||||
reference: "scalar",
|
reference: "scalar",
|
||||||
@@ -284,6 +376,15 @@ describe("Entity builder", () => {
|
|||||||
nullable: false,
|
nullable: false,
|
||||||
name: "role",
|
name: "role",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
expect(metaData.properties["role"].items()).toEqual([
|
expect(metaData.properties["role"].items()).toEqual([
|
||||||
"moderator",
|
"moderator",
|
||||||
@@ -308,12 +409,23 @@ describe("Entity builder", () => {
|
|||||||
username: string
|
username: string
|
||||||
email: string
|
email: string
|
||||||
role: "moderator" | "admin" | "guest" | null
|
role: "moderator" | "admin" | "guest" | null
|
||||||
|
deleted_at: Date | null
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||||
|
|
||||||
expect(metaData.className).toEqual("User")
|
expect(metaData.className).toEqual("User")
|
||||||
expect(metaData.path).toEqual("User")
|
expect(metaData.path).toEqual("User")
|
||||||
|
|
||||||
|
expect(metaData.filters).toEqual({
|
||||||
|
softDeletable: {
|
||||||
|
name: "softDeletable",
|
||||||
|
cond: expect.any(Function),
|
||||||
|
default: true,
|
||||||
|
args: false,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
expect(metaData.properties).toEqual({
|
expect(metaData.properties).toEqual({
|
||||||
id: {
|
id: {
|
||||||
reference: "scalar",
|
reference: "scalar",
|
||||||
@@ -349,6 +461,15 @@ describe("Entity builder", () => {
|
|||||||
nullable: true,
|
nullable: true,
|
||||||
name: "role",
|
name: "role",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
expect(metaData.properties["role"].items()).toEqual([
|
expect(metaData.properties["role"].items()).toEqual([
|
||||||
"moderator",
|
"moderator",
|
||||||
@@ -377,7 +498,12 @@ describe("Entity builder", () => {
|
|||||||
expectTypeOf(new User()).toMatchTypeOf<{
|
expectTypeOf(new User()).toMatchTypeOf<{
|
||||||
id: number
|
id: number
|
||||||
username: string
|
username: string
|
||||||
email: EntityConstructor<{ email: string; isVerified: boolean }>
|
deleted_at: Date | null
|
||||||
|
email: EntityConstructor<{
|
||||||
|
email: string
|
||||||
|
isVerified: boolean
|
||||||
|
deleted_at: Date | null
|
||||||
|
}>
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||||
@@ -409,6 +535,15 @@ describe("Entity builder", () => {
|
|||||||
nullable: false,
|
nullable: false,
|
||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -431,7 +566,12 @@ describe("Entity builder", () => {
|
|||||||
expectTypeOf(new User()).toMatchTypeOf<{
|
expectTypeOf(new User()).toMatchTypeOf<{
|
||||||
id: number
|
id: number
|
||||||
username: string
|
username: string
|
||||||
emails: EntityConstructor<{ email: string; isVerified: boolean }> | null
|
deleted_at: Date | null
|
||||||
|
emails: EntityConstructor<{
|
||||||
|
email: string
|
||||||
|
isVerified: boolean
|
||||||
|
deleted_at: Date | null
|
||||||
|
}> | null
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
const metaData = MetadataStorage.getMetadataFromDecorator(User)
|
||||||
@@ -463,6 +603,15 @@ describe("Entity builder", () => {
|
|||||||
nullable: true,
|
nullable: true,
|
||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -516,6 +665,15 @@ describe("Entity builder", () => {
|
|||||||
nullable: false,
|
nullable: false,
|
||||||
mappedBy: "owner",
|
mappedBy: "owner",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -574,6 +732,15 @@ describe("Entity builder", () => {
|
|||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
cascade: ["perist", "soft-remove"],
|
cascade: ["perist", "soft-remove"],
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const Email = entityBuilder(email)
|
const Email = entityBuilder(email)
|
||||||
@@ -599,6 +766,15 @@ describe("Entity builder", () => {
|
|||||||
getter: false,
|
getter: false,
|
||||||
setter: false,
|
setter: false,
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -665,6 +841,15 @@ describe("Entity builder", () => {
|
|||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
cascade: ["perist", "soft-remove"],
|
cascade: ["perist", "soft-remove"],
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const Email = entityBuilder(email)
|
const Email = entityBuilder(email)
|
||||||
@@ -699,6 +884,15 @@ describe("Entity builder", () => {
|
|||||||
owner: true,
|
owner: true,
|
||||||
reference: "1:1",
|
reference: "1:1",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -754,6 +948,15 @@ describe("Entity builder", () => {
|
|||||||
orphanRemoval: true,
|
orphanRemoval: true,
|
||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -810,6 +1013,15 @@ describe("Entity builder", () => {
|
|||||||
mappedBy: "the_user",
|
mappedBy: "the_user",
|
||||||
orphanRemoval: true,
|
orphanRemoval: true,
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -868,6 +1080,15 @@ describe("Entity builder", () => {
|
|||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
cascade: ["perist", "soft-remove"],
|
cascade: ["perist", "soft-remove"],
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -928,6 +1149,15 @@ describe("Entity builder", () => {
|
|||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
cascade: ["perist", "soft-remove"],
|
cascade: ["perist", "soft-remove"],
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
||||||
@@ -968,6 +1198,15 @@ describe("Entity builder", () => {
|
|||||||
reference: "m:1",
|
reference: "m:1",
|
||||||
onDelete: "cascade",
|
onDelete: "cascade",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@@ -995,12 +1234,15 @@ describe("Entity builder", () => {
|
|||||||
expectTypeOf(new User()).toMatchTypeOf<{
|
expectTypeOf(new User()).toMatchTypeOf<{
|
||||||
id: number
|
id: number
|
||||||
username: string
|
username: string
|
||||||
|
deleted_at: Date | null
|
||||||
email: EntityConstructor<{
|
email: EntityConstructor<{
|
||||||
email: string
|
email: string
|
||||||
isVerified: boolean
|
isVerified: boolean
|
||||||
|
deleted_at: Date | null
|
||||||
user: EntityConstructor<{
|
user: EntityConstructor<{
|
||||||
id: number
|
id: number
|
||||||
username: string
|
username: string
|
||||||
|
deleted_at: Date | null
|
||||||
}>
|
}>
|
||||||
}>
|
}>
|
||||||
}>()
|
}>()
|
||||||
@@ -1008,12 +1250,15 @@ describe("Entity builder", () => {
|
|||||||
expectTypeOf(new Email()).toMatchTypeOf<{
|
expectTypeOf(new Email()).toMatchTypeOf<{
|
||||||
email: string
|
email: string
|
||||||
isVerified: boolean
|
isVerified: boolean
|
||||||
|
deleted_at: Date | null
|
||||||
user: EntityConstructor<{
|
user: EntityConstructor<{
|
||||||
id: number
|
id: number
|
||||||
username: string
|
username: string
|
||||||
|
deleted_at: Date | null
|
||||||
email: EntityConstructor<{
|
email: EntityConstructor<{
|
||||||
email: string
|
email: string
|
||||||
isVerified: boolean
|
isVerified: boolean
|
||||||
|
deleted_at: Date | null
|
||||||
}>
|
}>
|
||||||
}>
|
}>
|
||||||
}>()
|
}>()
|
||||||
@@ -1047,6 +1292,15 @@ describe("Entity builder", () => {
|
|||||||
nullable: false,
|
nullable: false,
|
||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
||||||
@@ -1079,6 +1333,15 @@ describe("Entity builder", () => {
|
|||||||
owner: true,
|
owner: true,
|
||||||
mappedBy: "email",
|
mappedBy: "email",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1156,6 +1419,15 @@ describe("Entity builder", () => {
|
|||||||
nullable: false,
|
nullable: false,
|
||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
||||||
@@ -1188,6 +1460,15 @@ describe("Entity builder", () => {
|
|||||||
owner: true,
|
owner: true,
|
||||||
mappedBy: "email",
|
mappedBy: "email",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1265,6 +1546,15 @@ describe("Entity builder", () => {
|
|||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
orphanRemoval: true,
|
orphanRemoval: true,
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
||||||
@@ -1304,6 +1594,15 @@ describe("Entity builder", () => {
|
|||||||
nullable: false,
|
nullable: false,
|
||||||
reference: "m:1",
|
reference: "m:1",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1381,6 +1680,15 @@ describe("Entity builder", () => {
|
|||||||
mappedBy: "user",
|
mappedBy: "user",
|
||||||
orphanRemoval: true,
|
orphanRemoval: true,
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
const emailMetaData = MetadataStorage.getMetadataFromDecorator(Email)
|
||||||
@@ -1420,6 +1728,15 @@ describe("Entity builder", () => {
|
|||||||
nullable: true,
|
nullable: true,
|
||||||
reference: "m:1",
|
reference: "m:1",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1563,6 +1880,15 @@ describe("Entity builder", () => {
|
|||||||
entity: "Team",
|
entity: "Team",
|
||||||
pivotTable: "team_users",
|
pivotTable: "team_users",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
||||||
@@ -1593,6 +1919,15 @@ describe("Entity builder", () => {
|
|||||||
entity: "User",
|
entity: "User",
|
||||||
pivotTable: "team_users",
|
pivotTable: "team_users",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1669,6 +2004,15 @@ describe("Entity builder", () => {
|
|||||||
pivotTable: "team_users",
|
pivotTable: "team_users",
|
||||||
mappedBy: "users",
|
mappedBy: "users",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
||||||
@@ -1699,6 +2043,15 @@ describe("Entity builder", () => {
|
|||||||
entity: "User",
|
entity: "User",
|
||||||
pivotTable: "team_users",
|
pivotTable: "team_users",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1814,6 +2167,15 @@ describe("Entity builder", () => {
|
|||||||
pivotTable: "team_users",
|
pivotTable: "team_users",
|
||||||
mappedBy: "users",
|
mappedBy: "users",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
||||||
@@ -1849,6 +2211,15 @@ describe("Entity builder", () => {
|
|||||||
*/
|
*/
|
||||||
inversedBy: "teams",
|
inversedBy: "teams",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -1929,6 +2300,15 @@ describe("Entity builder", () => {
|
|||||||
*/
|
*/
|
||||||
inversedBy: "users",
|
inversedBy: "users",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
||||||
@@ -1960,6 +2340,15 @@ describe("Entity builder", () => {
|
|||||||
pivotTable: "team_users",
|
pivotTable: "team_users",
|
||||||
mappedBy: "teams",
|
mappedBy: "teams",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -2065,6 +2454,15 @@ describe("Entity builder", () => {
|
|||||||
pivotTable: "team_users",
|
pivotTable: "team_users",
|
||||||
inversedBy: "activeTeamsUsers",
|
inversedBy: "activeTeamsUsers",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
const teamMetaData = MetadataStorage.getMetadataFromDecorator(Team)
|
||||||
@@ -2103,6 +2501,15 @@ describe("Entity builder", () => {
|
|||||||
pivotTable: "team_users",
|
pivotTable: "team_users",
|
||||||
mappedBy: "activeTeams",
|
mappedBy: "activeTeams",
|
||||||
},
|
},
|
||||||
|
deleted_at: {
|
||||||
|
reference: "scalar",
|
||||||
|
type: "date",
|
||||||
|
columnType: "timestamptz",
|
||||||
|
name: "deleted_at",
|
||||||
|
nullable: true,
|
||||||
|
getter: false,
|
||||||
|
setter: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { BelongsTo } from "./relations/belongs-to"
|
|||||||
import { DateTimeSchema } from "./schema/date-time"
|
import { DateTimeSchema } from "./schema/date-time"
|
||||||
import { ManyToMany } from "./relations/many-to-many"
|
import { ManyToMany } from "./relations/many-to-many"
|
||||||
import type { RelationshipOptions, RelationshipType, SchemaType } from "./types"
|
import type { RelationshipOptions, RelationshipType, SchemaType } from "./types"
|
||||||
|
import { NullableModifier } from "./schema/nullable"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Entity builder exposes the API to create an entity and define its
|
* Entity builder exposes the API to create an entity and define its
|
||||||
@@ -23,7 +24,14 @@ export class EntityBuilder {
|
|||||||
define<
|
define<
|
||||||
Schema extends Record<string, SchemaType<any> | RelationshipType<any>>
|
Schema extends Record<string, SchemaType<any> | RelationshipType<any>>
|
||||||
>(name: string, schema: Schema) {
|
>(name: string, schema: Schema) {
|
||||||
return new DmlEntity(name, schema)
|
return new DmlEntity<
|
||||||
|
Schema & {
|
||||||
|
deleted_at: NullableModifier<Date, DateTimeSchema>
|
||||||
|
}
|
||||||
|
>(name, {
|
||||||
|
...schema,
|
||||||
|
deleted_at: new DateTimeSchema().nullable(),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import {
|
|||||||
OneToOne,
|
OneToOne,
|
||||||
ManyToMany,
|
ManyToMany,
|
||||||
ManyToOne,
|
ManyToOne,
|
||||||
|
Filter,
|
||||||
} from "@mikro-orm/core"
|
} from "@mikro-orm/core"
|
||||||
import { DmlEntity } from "../entity"
|
import { DmlEntity } from "../entity"
|
||||||
import { camelToSnakeCase, pluralize } from "../../common"
|
import { camelToSnakeCase, pluralize } from "../../common"
|
||||||
@@ -20,6 +21,7 @@ import type {
|
|||||||
EntityConstructor,
|
EntityConstructor,
|
||||||
RelationshipMetadata,
|
RelationshipMetadata,
|
||||||
} from "../types"
|
} from "../types"
|
||||||
|
import { DALUtils } from "../../bundles"
|
||||||
import { HasOne } from "../relations/has-one"
|
import { HasOne } from "../relations/has-one"
|
||||||
import { HasMany } from "../relations/has-many"
|
import { HasMany } from "../relations/has-many"
|
||||||
import { ManyToMany as DmlManyToMany } from "../relations/many-to-many"
|
import { ManyToMany as DmlManyToMany } from "../relations/many-to-many"
|
||||||
@@ -427,6 +429,8 @@ export function createMikrORMEntity() {
|
|||||||
/**
|
/**
|
||||||
* Converting class to a MikroORM entity
|
* Converting class to a MikroORM entity
|
||||||
*/
|
*/
|
||||||
return Entity({ tableName })(MikroORMEntity) as Infer<T>
|
return Entity({ tableName })(
|
||||||
|
Filter(DALUtils.mikroOrmSoftDeletableFilterOptions)(MikroORMEntity)
|
||||||
|
) as Infer<T>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user