diff --git a/packages/code-gen/src/crud/handlers.js b/packages/code-gen/src/crud/handlers.js index 98fa7ee4ca..12f9345b21 100644 --- a/packages/code-gen/src/crud/handlers.js +++ b/packages/code-gen/src/crud/handlers.js @@ -173,9 +173,11 @@ function crudHandlersGetModifiers(crud) { modifierDestructure.push(`${crudName}DeletePreModifier,`); } + // Include all custom modifiers for the nested relations for (const nestedCrud of crud.nestedRelations) { // @ts-expect-error const result = crudHandlersGetModifiers(nestedCrud); + modifierDocs.push(...result.modifierDocs); modifierDestructure.push(...result.modifierDestructure); } diff --git a/packages/code-gen/src/processors/crud-validation.js b/packages/code-gen/src/processors/crud-validation.js index 06de79c002..4cc6e9c6c0 100644 --- a/packages/code-gen/src/processors/crud-validation.js +++ b/packages/code-gen/src/processors/crud-validation.js @@ -63,16 +63,11 @@ function crudValidateType(generateContext, crud) { }); } - if ( - (model.group === "store" && model.name === "file") || - model.relations.find( - (it) => - it.reference.reference.group === "store" && - it.reference.reference.name === "file", - ) - ) { + if (model.group === "store" && model.name === "file") { throw AppError.serverError({ - message: `CRUD generation does not support generating routes that include files. This is used either directly via 'T.crud()' or via a relation of the defined '.entity()' in the '${crud.group}' group.`, + message: `CRUD generation does not support generating routes for ${stringFormatNameForError( + model, + )}.`, }); } @@ -98,8 +93,8 @@ function crudValidateType(generateContext, crud) { if (["oneToOne", "manyToOne"].includes(relation.subType)) { // Don't allow list, create and delete routes on the owning side of a relation. - // These always reference to a single entity and when removed or recreated don't link - // to this entity anymore. + // These always reference to a single entity and when removed or recreated don't + // link to this entity anymore. crud.routeOptions ??= {}; Object.assign(crud.routeOptions, { @@ -162,6 +157,7 @@ function crudValidateType(generateContext, crud) { crudInformationSetHasCustomReadableType(crud, hasCustomReadableType); + // Recurse in to the relations for (const relation of crud.inlineRelations) { // @ts-expect-error crudValidateType(generateContext, relation); diff --git a/packages/store/src/file.js b/packages/store/src/file.js index cfd581c05b..d1f9689988 100644 --- a/packages/store/src/file.js +++ b/packages/store/src/file.js @@ -270,7 +270,7 @@ export async function fileSyncDeletedWithObjectStorage(sql, s3Client, options) { export function fileFormatMetadata(file, options) { if (!options.url) { throw AppError.serverError({ - message: `'fileFormatResponse' requires that the url is provided.`, + message: `'fileFormatMetadata' requires that the url is provided.`, }); }