feat: define link util (#7931)

* feat: define link util

* handle pluralized fieldAlias for isList

* serviceName ar reference

* finalize

* todo

* WIP

* finalize

* fix tests

* update typings

* fix Module

* linkable

* update errors
This commit is contained in:
Adrien de Peretti authored and GitHub committed 2024-07-04 10:37:30 +02:00
1 parent 9b1688944e
commit 41c4307fc7
26 files changed
+523 -341

No files matched your search

@@ -72,7 +72,7 @@ describe("Entity builder", () => {
phones: model.array(),
})
expect(user.name).toEqual("User")
expect(user.name).toEqual("user")
expect(user.parse().tableName).toEqual("user")
const User = toMikroORMEntity(user)
@@ -202,7 +202,7 @@ describe("Entity builder", () => {
}
)
expect(user.name).toEqual("User")
expect(user.name).toEqual("user")
expect(user.parse().tableName).toEqual("user_table")
const User = toMikroORMEntity(user)
@@ -324,7 +324,7 @@ describe("Entity builder", () => {
}
)
expect(user.name).toEqual("UserRole")
expect(user.name).toEqual("userRole")
expect(user.parse().tableName).toEqual("user_role")
const User = toMikroORMEntity(user)
@@ -3849,7 +3849,7 @@ describe("Entity builder", () => {
})
expect(defineEmail).toThrow(
'Cannot cascade delete "user" relationship(s) from "Email" entity. Child to parent cascades are not allowed'
'Cannot cascade delete "user" relationship(s) from "email" entity. Child to parent cascades are not allowed'
)
})
@@ -109,7 +109,7 @@ export class EntityBuilder {
*
* export default MyCustom
*/
define<Schema extends DMLSchema, TConfig extends IDmlEntityConfig>(
define<Schema extends DMLSchema, const TConfig extends IDmlEntityConfig>(
nameOrConfig: TConfig,
schema: Schema
): DmlEntity<
+6 -9
View File
@@ -9,11 +9,11 @@ import {
IsDmlEntity,
QueryCondition,
} from "@medusajs/types"
import { isObject, isString, toCamelCase, upperCaseFirst } from "../common"
import { isObject, isString, toCamelCase } from "../common"
import { transformIndexWhere } from "./helpers/entity-builder/build-indexes"
import { BelongsTo } from "./relations/belongs-to"
function extractNameAndTableName<Config extends IDmlEntityConfig>(
function extractNameAndTableName<const Config extends IDmlEntityConfig>(
nameOrConfig: Config
) {
const result = {
@@ -27,9 +27,8 @@ function extractNameAndTableName<Config extends IDmlEntityConfig>(
if (isString(nameOrConfig)) {
const [schema, ...rest] = nameOrConfig.split(".")
const name = rest.length ? rest.join(".") : schema
result.name = upperCaseFirst(
toCamelCase(name)
) as InferDmlEntityNameFromConfig<Config>
result.name = toCamelCase(name) as InferDmlEntityNameFromConfig<Config>
result.tableName = nameOrConfig
}
@@ -44,9 +43,7 @@ function extractNameAndTableName<Config extends IDmlEntityConfig>(
const [schema, ...rest] = potentialName.split(".")
const name = rest.length ? rest.join(".") : schema
result.name = upperCaseFirst(
toCamelCase(name)
) as InferDmlEntityNameFromConfig<Config>
result.name = toCamelCase(name) as InferDmlEntityNameFromConfig<Config>
result.tableName = nameOrConfig.tableName
}
@@ -59,7 +56,7 @@ function extractNameAndTableName<Config extends IDmlEntityConfig>(
*/
export class DmlEntity<
Schema extends DMLSchema,
TConfig extends IDmlEntityConfig
const TConfig extends IDmlEntityConfig
> implements IDmlEntity<Schema, TConfig>
{
[IsDmlEntity]: true = true