From 493c86501703c9bfec3de8f7ba15339eda13f5b1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 10:25:01 +0000 Subject: [PATCH 1/7] Initial plan From 531d0de6f77e7dc2ca1c3e021688ae8b0cd37563 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 10:30:36 +0000 Subject: [PATCH 2/7] Add curly ESLint rule to core config and create major changeset Co-authored-by: thomasdax98 <13380047+thomasdax98@users.noreply.github.com> --- .changeset/add-curly-eslint-rule.md | 5 +++++ packages/eslint-config/core.js | 1 + 2 files changed, 6 insertions(+) create mode 100644 .changeset/add-curly-eslint-rule.md diff --git a/.changeset/add-curly-eslint-rule.md b/.changeset/add-curly-eslint-rule.md new file mode 100644 index 00000000000..63c36662855 --- /dev/null +++ b/.changeset/add-curly-eslint-rule.md @@ -0,0 +1,5 @@ +--- +"@comet/eslint-config": major +--- + +Add `curly` ESLint rule to enforce consistent use of braces for all control statements. This rule requires braces around the body of all control statements (if, else, for, while, etc.) to improve code readability and reduce diff size when adding statements. diff --git a/packages/eslint-config/core.js b/packages/eslint-config/core.js index d6149b12a0c..e3b4010d31e 100644 --- a/packages/eslint-config/core.js +++ b/packages/eslint-config/core.js @@ -105,6 +105,7 @@ const config = [ patterns: restrictedImportPatterns, }, ], + curly: ["error", "all"], "@typescript-eslint/no-unused-vars": ["error", { args: "none", ignoreRestSiblings: true }], "@typescript-eslint/no-inferrable-types": ["error", { ignoreProperties: true }], "@typescript-eslint/prefer-enum-initializers": "error", From c27778bdc76ca87dd79f1e55c555b4570bdf3323 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 11:12:05 +0000 Subject: [PATCH 3/7] Update changeset format per review feedback Co-authored-by: thomasdax98 <13380047+thomasdax98@users.noreply.github.com> --- .changeset/add-curly-eslint-rule.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.changeset/add-curly-eslint-rule.md b/.changeset/add-curly-eslint-rule.md index 63c36662855..d2a044a25aa 100644 --- a/.changeset/add-curly-eslint-rule.md +++ b/.changeset/add-curly-eslint-rule.md @@ -2,4 +2,6 @@ "@comet/eslint-config": major --- -Add `curly` ESLint rule to enforce consistent use of braces for all control statements. This rule requires braces around the body of all control statements (if, else, for, while, etc.) to improve code readability and reduce diff size when adding statements. +Add `curly` ESLint rule to enforce braces for control statements + +This rule requires braces around the body of all control statements (if, else, for, while, etc.) to improve code readability and reduce diff size when adding statements. From 626eae8f94e11a60613ed2044aea0166ebdfacd5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 13 Feb 2026 12:59:31 +0000 Subject: [PATCH 4/7] Fix all linting errors caused by new curly rule --- demo/admin/src/App.tsx | 4 +- demo/admin/src/dam/ImportFromPicsum.tsx | 4 +- demo/admin/src/documents/links/EditLink.tsx | 4 +- demo/admin/src/documents/pages/EditPage.tsx | 8 +++- demo/admin/src/loader.ts | 4 +- .../mainMenu/components/EditMainMenuItem.tsx | 4 +- demo/admin/src/products/ManufacturerForm.tsx | 16 ++++++-- demo/admin/src/products/ManufacturersGrid.tsx | 4 +- demo/admin/src/products/ProductForm.tsx | 12 ++++-- demo/admin/src/products/ProductPriceForm.tsx | 4 +- .../admin/src/products/ProductVariantForm.tsx | 12 ++++-- .../categories/ProductCategoriesGrid.tsx | 4 +- .../categories/ProductCategoryForm.tsx | 12 ++++-- .../highlights/ProductHighlightForm.tsx | 12 ++++-- .../highlights/ProductHighlightsGrid.tsx | 4 +- .../src/products/tags/ProductTagForm.tsx | 12 ++++-- .../src/products/tags/ProductTagsGrid.tsx | 4 +- demo/api/src/auth/user.service.ts | 12 ++++-- .../generators/image-fixture.service.ts | 4 +- .../open-telemetry/api-metrics.middleware.ts | 16 ++++++-- demo/api/src/products/coordinates.type.ts | 4 +- demo/api/src/translation/loadMessages.ts | 4 +- .../[domain]/[language]/[[...path]]/page.tsx | 4 +- .../src/common/blocks/MediaGalleryBlock.tsx | 4 +- demo/site/src/documents/pages/Page.tsx | 16 ++++++-- .../site/src/middleware/redirectToMainHost.ts | 12 ++++-- .../src/news/blocks/NewsDetailBlock.loader.ts | 4 +- demo/site/src/util/SiteConfigProvider.tsx | 4 +- demo/site/src/util/graphQLClient.ts | 8 +++- demo/site/src/util/loadMessages.ts | 4 +- demo/site/src/util/siteConfig.ts | 20 +++++++--- docs/src/utils/generateComponentDocs.ts | 4 +- .../generate/config/transformConfig.ts | 12 ++++-- .../src/commands/generate/generate-command.ts | 4 +- .../asyncSelect/generateAsyncSelect.ts | 28 +++++++++---- .../formField/findIntrospectionFieldType.ts | 4 +- .../generate/generateForm/generateForm.ts | 16 ++++++-- .../generateForm/generateFormField.ts | 4 +- .../generateForm/generateFormLayout.ts | 8 +++- .../generateForm/generateFormValues.ts | 4 +- .../generateForm/getForwardedGqlArgs.ts | 4 +- .../generateGrid/__tests__/scope.test.ts | 4 +- .../generate/generateGrid/generateGrid.ts | 40 ++++++++++++++----- .../generateGrid/getForwardedGqlArgs.ts | 8 +++- .../generateGrid/getPropsForFilterProp.ts | 4 +- .../generate/utils/findMutationType.ts | 12 ++++-- .../commands/generate/utils/findQueryType.ts | 12 ++++-- .../commands/generate/utils/findRootBlocks.ts | 12 ++++-- .../generate/utils/generateGqlOperation.ts | 4 +- .../generate/utils/isFieldOptional.ts | 12 ++++-- .../src/core/translation/ToolbarButton.tsx | 4 +- .../admin/admin/src/FinalForm.InTabs.test.tsx | 16 ++++++-- packages/admin/admin/src/FinalForm.tsx | 12 ++++-- .../admin/admin/src/FinalFormSaveButton.tsx | 4 +- .../admin/src/apollo/filterByFragment.ts | 4 +- .../buttons/feedback/FeedbackButton.tsx | 4 +- .../admin/src/dataGrid/CrudContextMenu.tsx | 16 ++++++-- .../src/dataGrid/CrudMoreActionsMenu.tsx | 8 +++- .../admin/src/dataGrid/muiGridFilterToGql.tsx | 8 +++- .../admin/src/dataGrid/muiGridSortToGql.tsx | 4 +- .../admin/admin/src/fetchProvider/fetch.tsx | 4 +- .../admin/admin/src/form/Autocomplete.tsx | 4 +- .../admin/admin/src/form/FinalFormSelect.tsx | 8 +++- packages/admin/admin/src/mui/MasterLayout.tsx | 4 +- .../mui/mainNavigation/CollapsibleItem.tsx | 16 ++++++-- .../admin/src/mui/mainNavigation/Item.tsx | 4 +- .../admin/admin/src/router/PromptHandler.tsx | 3 +- .../admin/src/saveBoundary/SaveBoundary.tsx | 4 +- .../saveBoundary/SaveBoundarySaveButton.tsx | 4 +- .../admin/src/section/SectionHeadline.tsx | 4 +- packages/admin/admin/src/stack/Stack.tsx | 4 +- packages/admin/admin/src/stack/Switch.tsx | 28 +++++++++---- packages/admin/admin/src/stack/SwitchMeta.tsx | 12 ++++-- .../stack/breadcrumbs/StackBreadcrumbs.tsx | 4 +- .../admin/src/stack/breadcrumbs/utils.tsx | 4 +- .../admin/admin/src/table/DeleteButton.tsx | 4 +- packages/admin/admin/src/table/Table.tsx | 12 ++++-- .../admin/src/table/TableLocalChanges.tsx | 4 +- packages/admin/admin/src/table/TableQuery.tsx | 4 +- .../admin/admin/src/table/safeColumnGet.ts | 8 +++- .../admin/src/table/usePersistedState.tsx | 8 +++- .../admin/src/table/useTableQueryFilter.tsx | 4 +- .../admin/src/table/useTableQueryPaging.tsx | 4 +- .../admin/src/utils/useObservedWidth.tsx | 8 +++- .../brevoConfiguration/BrevoConfigForm.tsx | 4 +- .../src/brevoContacts/BrevoContactsGrid.tsx | 4 +- .../BrevoTestContactsGrid.tsx | 4 +- .../form/BrevoTestContactForm.tsx | 4 +- .../configVerification/ConfigVerification.tsx | 4 +- .../src/emailCampaigns/EmailCampaignsGrid.tsx | 4 +- .../emailCampaigns/form/EmailCampaignForm.tsx | 12 ++++-- .../emailCampaigns/form/SendManagerFields.tsx | 4 +- .../form/SendManagerWrapper.tsx | 4 +- .../emailCampaigns/view/EmailCampaignView.tsx | 4 +- .../src/targetGroups/TargetGroupForm.tsx | 4 +- .../src/targetGroups/TargetGroupsGrid.tsx | 8 +++- .../addContacts/AddContactsGridSelect.tsx | 8 +++- .../AllAssignedContactsGrid.tsx | 4 +- .../cms-admin/src/blocks/DamVideoBlock.tsx | 8 +++- .../cms-admin/src/blocks/PixelImageBlock.tsx | 12 ++++-- .../cms-admin/src/blocks/SvgImageBlock.tsx | 12 ++++-- .../cms-admin/src/blocks/VimeoVideoBlock.tsx | 12 ++++-- .../src/blocks/YouTubeVideoBlock.tsx | 12 ++++-- .../src/blocks/common/blockRow/BlockRow.tsx | 4 +- .../blocks/factories/createCompositeBlock.tsx | 4 +- .../src/blocks/factories/createListBlock.tsx | 3 +- .../dam/blocks/DamFileDownloadLinkBlock.tsx | 8 +++- .../MediaAlternativesGrid.tsx | 4 +- .../src/dependencies/DependencyList.tsx | 4 +- .../cms-admin/src/form/file/FileField.tsx | 4 +- .../cms-admin/src/form/queryUpdatedAt.tsx | 4 +- .../pageTree/useCopyPastePages/sendPages.tsx | 4 +- .../src/pages/useSaveConflictQuery.tsx | 8 +++- .../src/preview/block/BlockPreview.tsx | 4 +- .../src/preview/site/SitePreview.tsx | 12 ++++-- .../src/userPermissions/UserGrid.tsx | 4 +- .../src/userPermissions/hooks/currentUser.tsx | 16 ++++++-- .../user/ImpersonationButtons.tsx | 4 +- .../user/permissions/ContentScopeGrid.tsx | 4 +- .../user/permissions/PermissionGrid.tsx | 4 +- .../SelectScopesDialogContent.tsx | 4 +- .../cms-admin/src/warnings/WarningActions.tsx | 4 +- .../cms-admin/src/warnings/WarningsGrid.tsx | 4 +- .../generateCrud/__tests__/deleted-at.spec.ts | 4 +- .../__tests__/filter-primary-key.spec.ts | 8 +++- ...nerate-crud-dedicated-resolver-arg.spec.ts | 12 ++++-- .../generate-crud-embeddable.spec.ts | 32 +++++++++++---- .../generate-crud-enum-array.spec.ts | 8 +++- .../generate-crud-enum-multi-use.spec.ts | 4 +- .../generate-crud-enum-optional.spec.ts | 4 +- .../generate-crud-extend-entity.spec.ts | 4 +- .../__tests__/generate-crud-position.spec.ts | 12 ++++-- ...enerate-crud-relation-many-to-many.spec.ts | 4 +- ...generate-crud-relations-id-integer.spec.ts | 8 +++- .../generate-crud-relations-id-string.spec.ts | 4 +- .../generate-crud-relations-multi-use.spec.ts | 4 +- .../generate-crud-relations-nested.spec.ts | 12 ++++-- ...generate-crud-relations-two-levels.spec.ts | 16 ++++++-- .../__tests__/generate-crud-relations.spec.ts | 12 ++++-- .../generate-crud-resolve-field.spec.ts | 4 +- .../generate-crud-resolve-id-integer.spec.ts | 4 +- .../__tests__/generate-crud-scope.spec.ts | 16 ++++++-- .../generate-crud-without-find.spec.ts | 4 +- .../__tests__/generate-crud.spec.ts | 28 +++++++++---- .../__tests__/position-default-sort.spec.ts | 4 +- .../generateCrud/__tests__/sort-by-id.spec.ts | 4 +- .../generate/generateCrud/build-options.ts | 4 +- .../generate/generateCrud/generate-crud.ts | 32 +++++++++++---- .../generate-crud-input-integer.spec.ts | 4 +- ...rate-crud-input-type-or-columnType.spec.ts | 4 +- .../generate-crud-input-validators.spec.ts | 28 +++++++++---- .../generateCrudInput/generate-crud-input.ts | 20 +++++++--- .../generate-crud-single.ts | 4 +- .../commands/generate/utils/test-helper.ts | 4 +- .../generate/utils/ts-morph-helper.ts | 35 +++++++++++----- .../brevo-api/brevo-api-contact.service.ts | 4 +- .../brevo-contact-import.service.ts | 12 ++++-- .../brevo-contact/brevo-contact.resolver.ts | 8 +++- .../src/target-group/target-group.resolver.ts | 4 +- .../src/target-group/target-groups.service.ts | 4 +- .../src/access-log/access-log.interceptor.ts | 8 +++- .../cms-api/src/auth/guards/comet.guard.ts | 12 ++++-- .../src/auth/services/basic.auth-service.ts | 20 +++++++--- .../src/auth/services/jwt.auth-service.ts | 16 ++++++-- .../services/site-preview.auth-service.ts | 4 +- .../src/blocks/block-migrate.service.ts | 8 +++- .../common/graphql/extract-graphql-fields.ts | 4 +- .../generate-alt-text.resolver.ts | 4 +- .../generate-image-title.resolver.ts | 4 +- .../generate-seo-tags.resolver.ts | 4 +- .../src/dam/files/file-warning.service.ts | 4 +- .../cms-api/src/dam/files/files.controller.ts | 8 +++- .../cms-api/src/dam/files/files.service.ts | 36 ++++++++++++----- .../cms-api/src/dam/files/folders.service.ts | 4 +- .../api/cms-api/src/file-utils/images.util.ts | 16 ++++++-- .../cms-api/src/imgproxy/imgproxy.builder.ts | 4 +- .../mail-templates/mail-template.service.ts | 8 +++- .../api/cms-api/src/mailer/mailer.service.ts | 16 ++++++-- .../attached-document-loader.service.ts | 8 +++- .../src/page-tree/createPageTreeResolver.ts | 4 +- .../src/page-tree/page-tree-read-api.ts | 24 ++++++++--- .../src/page-tree/page-tree.service.ts | 12 ++++-- .../access-control.service.ts | 12 ++++-- .../auth/user-permissions.guard.spec.ts | 16 ++++++-- .../auth/user-permissions.guard.ts | 27 +++++++++---- .../user-permissions/content-scope.service.ts | 23 ++++++++--- .../user-permission.resolver.ts | 4 +- .../user-permissions.service.ts | 20 +++++++--- .../cli/src/commands/generate-block-types.ts | 16 ++++++-- .../src/blocks/PixelImageBlock.tsx | 4 +- .../src/sitePreview/previewUtils.ts | 8 +++- .../site-react/src/blockLoader/blockLoader.ts | 8 +++- .../site-react/src/blocks/SvgImageBlock.tsx | 4 +- .../site-react/src/blocks/VimeoVideoBlock.tsx | 20 +++++++--- .../src/blocks/YouTubeVideoBlock.tsx | 20 +++++++--- .../blocks/helpers/useIsElementInViewport.tsx | 4 +- .../src/iframebridge/PreviewOverlay.tsx | 4 +- .../site/site-react/src/iframebridge/utils.ts | 4 +- .../site/site-react/src/image/image.utils.ts | 8 +++- .../createPersistedQueryGraphQLFetch.ts | 4 +- 200 files changed, 1294 insertions(+), 433 deletions(-) diff --git a/demo/admin/src/App.tsx b/demo/admin/src/App.tsx index 1b091323d75..324ed5c128b 100644 --- a/demo/admin/src/App.tsx +++ b/demo/admin/src/App.tsx @@ -107,7 +107,9 @@ export function App() { return config.scope.domain === scope.domain; }); - if (!siteConfig) throw new Error(`siteConfig not found for domain ${scope.domain}`); + if (!siteConfig) { + throw new Error(`siteConfig not found for domain ${scope.domain}`); + } return { url: siteConfig.url, preloginEnabled: siteConfig.preloginEnabled || false, diff --git a/demo/admin/src/dam/ImportFromPicsum.tsx b/demo/admin/src/dam/ImportFromPicsum.tsx index 04a69212330..ad1a501bacd 100644 --- a/demo/admin/src/dam/ImportFromPicsum.tsx +++ b/demo/admin/src/dam/ImportFromPicsum.tsx @@ -31,7 +31,9 @@ export const ImportFromPicsum = () => { }; const handleSave = async () => { - if (picsumImage === undefined) return; + if (picsumImage === undefined) { + return; + } await uploadFiles( { acceptedFiles: [picsumImage.file], fileRejections: [] }, { diff --git a/demo/admin/src/documents/links/EditLink.tsx b/demo/admin/src/documents/links/EditLink.tsx index c78b865e9ac..2b2436206f9 100644 --- a/demo/admin/src/documents/links/EditLink.tsx +++ b/demo/admin/src/documents/links/EditLink.tsx @@ -83,7 +83,9 @@ export const EditLink = ({ id }: Props) => { return ; } - if (!linkState) return null; + if (!linkState) { + return null; + } return ( <> diff --git a/demo/admin/src/documents/pages/EditPage.tsx b/demo/admin/src/documents/pages/EditPage.tsx index d93ffc16b6c..c4e9040052d 100644 --- a/demo/admin/src/documents/pages/EditPage.tsx +++ b/demo/admin/src/documents/pages/EditPage.tsx @@ -143,7 +143,9 @@ export const EditPage = ({ id }: Props) => { { - if (!pageState || !pageState.document) return []; + if (!pageState || !pageState.document) { + return []; + } return PageContentBlock.extractTextContents?.(pageState.document.content, { includeInvisibleContent: false }) ?? []; }, @@ -152,7 +154,9 @@ export const EditPage = ({ id }: Props) => { {hasChanges && ( { - if (location.pathname.startsWith(match.url)) return true; //we navigated within our self + if (location.pathname.startsWith(match.url)) { + return true; + } //we navigated within our self return intl.formatMessage({ id: "editPage.discardChanges", defaultMessage: "Discard unsaved changes?", diff --git a/demo/admin/src/loader.ts b/demo/admin/src/loader.ts index 3576c50f369..8ea0955433a 100644 --- a/demo/admin/src/loader.ts +++ b/demo/admin/src/loader.ts @@ -5,7 +5,9 @@ import { App } from "./App"; const loadHtml = () => { const rootElement = document.querySelector("#root"); - if (!rootElement) return false; + if (!rootElement) { + return false; + } const root = createRoot(rootElement); root.render(createElement(App)); diff --git a/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx b/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx index 4c01803f9e5..45510e6c500 100644 --- a/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx +++ b/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx @@ -156,7 +156,9 @@ const EditMainMenuItem = ({ item }: EditMainMenuItemProps) => { {hasChanges && ( { - if (location.pathname.startsWith(match.url)) return true; //we navigated within our self + if (location.pathname.startsWith(match.url)) { + return true; + } //we navigated within our self return intl.formatMessage(messages.saveUnsavedChanges); }} saveAction={handleSaveAction} diff --git a/demo/admin/src/products/ManufacturerForm.tsx b/demo/admin/src/products/ManufacturerForm.tsx index 97b17be56d3..b9c4621e80f 100644 --- a/demo/admin/src/products/ManufacturerForm.tsx +++ b/demo/admin/src/products/ManufacturerForm.tsx @@ -76,7 +76,9 @@ export function ManufacturerForm({ id }: FormProps) { const filteredData = data ? filterByFragment(manufacturerFormFragment, data.manufacturer) : undefined; - if (!filteredData) return {}; + if (!filteredData) { + return {}; + } return { ...filteredData, useAlternativeAddress: !!filteredData.address?.alternativeAddress, @@ -119,7 +121,9 @@ export function ManufacturerForm({ id }: FormProps) { }); const handleSubmit = async ({ useAlternativeAddress, ...formValues }: FormValues, form: FormApi, event: FinalFormSubmitEvent) => { - if (await saveConflict.checkForConflicts()) throw new Error("Conflicts detected"); + if (await saveConflict.checkForConflicts()) { + throw new Error("Conflicts detected"); + } const output = { ...formValues, address: formValues.address @@ -149,7 +153,9 @@ export function ManufacturerForm({ id }: FormProps) { }, }; if (mode === "edit") { - if (!id) throw new Error(); + if (!id) { + throw new Error(); + } await client.mutate({ mutation: updateManufacturerMutation, variables: { id, input: output }, @@ -170,7 +176,9 @@ export function ManufacturerForm({ id }: FormProps) { } }; - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; diff --git a/demo/admin/src/products/ManufacturersGrid.tsx b/demo/admin/src/products/ManufacturersGrid.tsx index 03e981409d4..738d0a62309 100644 --- a/demo/admin/src/products/ManufacturersGrid.tsx +++ b/demo/admin/src/products/ManufacturersGrid.tsx @@ -146,7 +146,9 @@ export function ManufacturersGrid() { sort: muiGridSortToGql(sortModel), }, }); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.manufacturers.nodes ?? []; const rowCount = useBufferedRowCount(data?.manufacturers.totalCount); diff --git a/demo/admin/src/products/ProductForm.tsx b/demo/admin/src/products/ProductForm.tsx index b36b7824985..53e1410422e 100644 --- a/demo/admin/src/products/ProductForm.tsx +++ b/demo/admin/src/products/ProductForm.tsx @@ -129,7 +129,9 @@ export function ProductForm({ id, width, onCreate }: FormProps) { }); const handleSubmit = async ({ manufacturerCountry, ...formValues }: FormValues, form: FormApi, event: FinalFormSubmitEvent) => { - if (await saveConflict.checkForConflicts()) throw new Error("Conflicts detected"); + if (await saveConflict.checkForConflicts()) { + throw new Error("Conflicts detected"); + } const output = { ...formValues, @@ -148,7 +150,9 @@ export function ProductForm({ id, width, onCreate }: FormProps) { }; if (mode === "edit") { - if (!id) throw new Error(); + if (!id) { + throw new Error(); + } await client.mutate({ mutation: updateProductMutation, variables: { id, input: output }, @@ -167,7 +171,9 @@ export function ProductForm({ id, width, onCreate }: FormProps) { } }; - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; diff --git a/demo/admin/src/products/ProductPriceForm.tsx b/demo/admin/src/products/ProductPriceForm.tsx index b331c2f6173..a459e7cdcc4 100644 --- a/demo/admin/src/products/ProductPriceForm.tsx +++ b/demo/admin/src/products/ProductPriceForm.tsx @@ -50,7 +50,9 @@ export function ProductPriceForm({ id }: FormProps) { }); const handleSubmit = async (formValues: FormValues, form: FormApi, event: FinalFormSubmitEvent) => { - if (await saveConflict.checkForConflicts()) throw new Error("Conflicts detected"); + if (await saveConflict.checkForConflicts()) { + throw new Error("Conflicts detected"); + } const output = { ...formValues, price: formValues.price ? parseFloat(formValues.price) : null, diff --git a/demo/admin/src/products/ProductVariantForm.tsx b/demo/admin/src/products/ProductVariantForm.tsx index c69758cdd4f..3914b3638bc 100644 --- a/demo/admin/src/products/ProductVariantForm.tsx +++ b/demo/admin/src/products/ProductVariantForm.tsx @@ -75,13 +75,17 @@ export function ProductVariantForm({ id, productId }: FormProps) { }); const handleSubmit = async (formValues: FormValues, form: FormApi, event: FinalFormSubmitEvent) => { - if (await saveConflict.checkForConflicts()) throw new Error("Conflicts detected"); + if (await saveConflict.checkForConflicts()) { + throw new Error("Conflicts detected"); + } const output = { ...formValues, image: rootBlocks.image.state2Output(formValues.image), }; if (mode === "edit") { - if (!id) throw new Error(); + if (!id) { + throw new Error(); + } await client.mutate({ mutation: updateProductVariantFormMutation, variables: { id, input: output }, @@ -102,7 +106,9 @@ export function ProductVariantForm({ id, productId }: FormProps) { } }; - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; diff --git a/demo/admin/src/products/categories/ProductCategoriesGrid.tsx b/demo/admin/src/products/categories/ProductCategoriesGrid.tsx index cf56839f9ec..355ae4a2fac 100644 --- a/demo/admin/src/products/categories/ProductCategoriesGrid.tsx +++ b/demo/admin/src/products/categories/ProductCategoriesGrid.tsx @@ -156,7 +156,9 @@ export function ProductCategoriesGrid() { }, }); const rowCount = useBufferedRowCount(data?.productCategories.totalCount); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.productCategories.nodes.map((node) => ({ ...node, diff --git a/demo/admin/src/products/categories/ProductCategoryForm.tsx b/demo/admin/src/products/categories/ProductCategoryForm.tsx index 3df2422a23e..3fb823b086d 100644 --- a/demo/admin/src/products/categories/ProductCategoryForm.tsx +++ b/demo/admin/src/products/categories/ProductCategoryForm.tsx @@ -55,12 +55,16 @@ export function ProductCategoryForm({ id }: FormProps) { }, }); const handleSubmit = async (formValues: FormValues, form: FormApi, event: FinalFormSubmitEvent) => { - if (await saveConflict.checkForConflicts()) throw new Error("Conflicts detected"); + if (await saveConflict.checkForConflicts()) { + throw new Error("Conflicts detected"); + } const output = { ...formValues, }; if (mode === "edit") { - if (!id) throw new Error(); + if (!id) { + throw new Error(); + } const { ...updateInput } = output; await client.mutate({ mutation: updateProductCategoryMutation, @@ -81,7 +85,9 @@ export function ProductCategoryForm({ id }: FormProps) { } } }; - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; } diff --git a/demo/admin/src/products/highlights/ProductHighlightForm.tsx b/demo/admin/src/products/highlights/ProductHighlightForm.tsx index b619a474016..ba225c4b035 100644 --- a/demo/admin/src/products/highlights/ProductHighlightForm.tsx +++ b/demo/admin/src/products/highlights/ProductHighlightForm.tsx @@ -74,13 +74,17 @@ export function ProductHighlightForm({ id }: FormProps) { }, }); const handleSubmit = async ({ productCategory, ...formValues }: FormValues, form: FormApi, event: FinalFormSubmitEvent) => { - if (await saveConflict.checkForConflicts()) throw new Error("Conflicts detected"); + if (await saveConflict.checkForConflicts()) { + throw new Error("Conflicts detected"); + } const output = { ...formValues, product: formValues.product?.id, }; if (mode === "edit") { - if (!id) throw new Error(); + if (!id) { + throw new Error(); + } const { ...updateInput } = output; await client.mutate({ mutation: updateProductHighlightMutation, @@ -101,7 +105,9 @@ export function ProductHighlightForm({ id }: FormProps) { } } }; - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; } diff --git a/demo/admin/src/products/highlights/ProductHighlightsGrid.tsx b/demo/admin/src/products/highlights/ProductHighlightsGrid.tsx index cc779865625..2797184189c 100644 --- a/demo/admin/src/products/highlights/ProductHighlightsGrid.tsx +++ b/demo/admin/src/products/highlights/ProductHighlightsGrid.tsx @@ -111,7 +111,9 @@ export function ProductHighlightsGrid() { }, }); const rowCount = useBufferedRowCount(data?.productHighlights.totalCount); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.productHighlights.nodes ?? []; return ( , event: FinalFormSubmitEvent) => { - if (await saveConflict.checkForConflicts()) throw new Error("Conflicts detected"); + if (await saveConflict.checkForConflicts()) { + throw new Error("Conflicts detected"); + } const output = { ...formValues, }; if (mode === "edit") { - if (!id) throw new Error(); + if (!id) { + throw new Error(); + } const { ...updateInput } = output; await client.mutate({ mutation: updateProductTagMutation, @@ -76,7 +80,9 @@ export function ProductTagForm({ id }: FormProps) { } } }; - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; } diff --git a/demo/admin/src/products/tags/ProductTagsGrid.tsx b/demo/admin/src/products/tags/ProductTagsGrid.tsx index 83dd37a42f4..46752b1dc3e 100644 --- a/demo/admin/src/products/tags/ProductTagsGrid.tsx +++ b/demo/admin/src/products/tags/ProductTagsGrid.tsx @@ -112,7 +112,9 @@ export function ProductTagsGrid() { }, }); const rowCount = useBufferedRowCount(data?.productTags.totalCount); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.productTags.nodes ?? []; return ( { } const match = value.match(/\(([^,]+),([^)]+)\)/); - if (!match) throw new Error("Invalid coordinate format"); + if (!match) { + throw new Error("Invalid coordinate format"); + } return { latitude: parseFloat(match[1]), longitude: parseFloat(match[2]), diff --git a/demo/api/src/translation/loadMessages.ts b/demo/api/src/translation/loadMessages.ts index 2d662235bef..ef22219307f 100644 --- a/demo/api/src/translation/loadMessages.ts +++ b/demo/api/src/translation/loadMessages.ts @@ -6,7 +6,9 @@ type Messages = ResolvedIntlConfig["messages"]; const messagesCache: Record = {}; export async function loadMessages(language: string) { - if (messagesCache[language]) return messagesCache[language]; + if (messagesCache[language]) { + return messagesCache[language]; + } const path = `lang-compiled/comet-demo-api/${language}.json`; const messages = JSON.parse(await readFile(path, "utf8")); messagesCache[language] = messages; diff --git a/demo/site/src/app/[visibility]/[domain]/[language]/[[...path]]/page.tsx b/demo/site/src/app/[visibility]/[domain]/[language]/[[...path]]/page.tsx index 9178e9be3ff..ebd3df5d213 100644 --- a/demo/site/src/app/[visibility]/[domain]/[language]/[[...path]]/page.tsx +++ b/demo/site/src/app/[visibility]/[domain]/[language]/[[...path]]/page.tsx @@ -131,7 +131,9 @@ export async function generateMetadata( scope, }; const { generateMetadata } = documentTypes[data.pageTreeNodeByPath.documentType]; - if (!generateMetadata) return {}; + if (!generateMetadata) { + return {}; + } return generateMetadata(props, parent); } diff --git a/demo/site/src/common/blocks/MediaGalleryBlock.tsx b/demo/site/src/common/blocks/MediaGalleryBlock.tsx index a9371789753..b97cfe2097e 100644 --- a/demo/site/src/common/blocks/MediaGalleryBlock.tsx +++ b/demo/site/src/common/blocks/MediaGalleryBlock.tsx @@ -28,7 +28,9 @@ export const MediaGalleryBlock = withPreview( const intl = useIntl(); useEffect(() => { - if (!swiper) return; + if (!swiper) { + return; + } const updateInert = () => { swiper.slides.forEach((slide, index) => { diff --git a/demo/site/src/documents/pages/Page.tsx b/demo/site/src/documents/pages/Page.tsx index 7d1b07a2db7..e41664dc3f0 100644 --- a/demo/site/src/documents/pages/Page.tsx +++ b/demo/site/src/documents/pages/Page.tsx @@ -45,12 +45,16 @@ async function fetchData({ pageTreeNodeId, scope }: Props) { { method: "GET" }, //for request memoization ); - if (!props.pageContent) throw new Error("Could not load page content"); + if (!props.pageContent) { + throw new Error("Could not load page content"); + } const document = props.pageContent.document; if (!document) { return null; } - if (document.__typename != "Page") throw new Error(`invalid document type, expected Page, got ${document.__typename}`); + if (document.__typename != "Page") { + throw new Error(`invalid document type, expected Page, got ${document.__typename}`); + } return { ...props, @@ -93,7 +97,9 @@ export async function generateMetadata({ pageTreeNodeId, scope }: Props, parent: canonical: canonicalUrl, languages: document.seo.alternativeLinks.reduce( (acc, link) => { - if (link.code && link.url) acc[link.code] = link.url; + if (link.code && link.url) { + acc[link.code] = link.url; + } return acc; }, { [scope.language]: canonicalUrl } as Record, @@ -111,7 +117,9 @@ export async function Page({ pageTreeNodeId, scope }: { pageTreeNodeId: string; // no document attached to page notFound(); //no return needed } - if (document.__typename != "Page") throw new Error(`invalid document type`); + if (document.__typename != "Page") { + throw new Error(`invalid document type`); + } [document.content, document.seo, document.stage] = await Promise.all([ recursivelyLoadBlockData({ diff --git a/demo/site/src/middleware/redirectToMainHost.ts b/demo/site/src/middleware/redirectToMainHost.ts index 20845be12a0..b12009c8d7e 100644 --- a/demo/site/src/middleware/redirectToMainHost.ts +++ b/demo/site/src/middleware/redirectToMainHost.ts @@ -7,13 +7,19 @@ import { type CustomMiddleware } from "./chain"; const normalizeDomain = (host: string) => (host.startsWith("www.") ? host.substring(4) : host); const matchesHostWithAdditionalDomain = (siteConfig: PublicSiteConfig, host: string) => { - if (normalizeDomain(siteConfig.domains.main) === normalizeDomain(host)) return true; // non-www redirect - if (siteConfig.domains.additional?.map(normalizeDomain).includes(normalizeDomain(host))) return true; + if (normalizeDomain(siteConfig.domains.main) === normalizeDomain(host)) { + return true; + } // non-www redirect + if (siteConfig.domains.additional?.map(normalizeDomain).includes(normalizeDomain(host))) { + return true; + } return false; }; const matchesHostWithPattern = (siteConfig: PublicSiteConfig, host: string) => { - if (!siteConfig.domains.pattern) return false; + if (!siteConfig.domains.pattern) { + return false; + } return new RegExp(siteConfig.domains.pattern).test(host); }; diff --git a/demo/site/src/news/blocks/NewsDetailBlock.loader.ts b/demo/site/src/news/blocks/NewsDetailBlock.loader.ts index f84ca467b5c..00b78ac317c 100644 --- a/demo/site/src/news/blocks/NewsDetailBlock.loader.ts +++ b/demo/site/src/news/blocks/NewsDetailBlock.loader.ts @@ -6,7 +6,9 @@ import { type GQLNewsBlockDetailQuery, type GQLNewsBlockDetailQueryVariables } f export type LoadedData = Awaited>; export const loader = async ({ blockData, graphQLFetch }: BlockLoaderOptions) => { - if (!blockData.id) return null; + if (!blockData.id) { + return null; + } const data = await graphQLFetch( gql` query NewsBlockDetail($id: ID!) { diff --git a/demo/site/src/util/SiteConfigProvider.tsx b/demo/site/src/util/SiteConfigProvider.tsx index 08e0c4fdb20..735016fafee 100644 --- a/demo/site/src/util/SiteConfigProvider.tsx +++ b/demo/site/src/util/SiteConfigProvider.tsx @@ -8,7 +8,9 @@ const SiteConfigContext = createContext(undefined) /** @knipignore */ export const useSiteConfig = () => { const siteConfig = useContext(SiteConfigContext); - if (!siteConfig) throw new Error("SiteConfig not set in SiteConfigProvider"); + if (!siteConfig) { + throw new Error("SiteConfig not set in SiteConfigProvider"); + } return siteConfig; }; diff --git a/demo/site/src/util/graphQLClient.ts b/demo/site/src/util/graphQLClient.ts index ccacff80e96..7d0fa7bbec7 100644 --- a/demo/site/src/util/graphQLClient.ts +++ b/demo/site/src/util/graphQLClient.ts @@ -31,8 +31,12 @@ export function createGraphQLFetch({ fetch: passedFetch }: { fetch?: Fetch } = { let previewData: SitePreviewData | undefined; const visibilityParam = getVisibilityParam(); - if (visibilityParam === "invisibleBlocks") previewData = { includeInvisible: true }; - if (visibilityParam === "invisiblePages") previewData = { includeInvisible: false }; + if (visibilityParam === "invisibleBlocks") { + previewData = { includeInvisible: true }; + } + if (visibilityParam === "invisiblePages") { + previewData = { includeInvisible: false }; + } return createGraphQLFetchLibrary( // set a default revalidate time of 7.5 minutes to get an effective cache duration of 15 minutes if a CDN cache is enabled diff --git a/demo/site/src/util/loadMessages.ts b/demo/site/src/util/loadMessages.ts index e497d16a294..da76aacfb3c 100644 --- a/demo/site/src/util/loadMessages.ts +++ b/demo/site/src/util/loadMessages.ts @@ -3,7 +3,9 @@ import { readFile } from "fs/promises"; const messagesCache: Record = {}; export async function loadMessages(language: string) { - if (messagesCache[language]) return messagesCache[language]; + if (messagesCache[language]) { + return messagesCache[language]; + } const path = `./lang-compiled/${language}.json`; const messages = JSON.parse(await readFile(path, "utf8")); messagesCache[language] = messages; diff --git a/demo/site/src/util/siteConfig.ts b/demo/site/src/util/siteConfig.ts index 179591a4098..301281a4ceb 100644 --- a/demo/site/src/util/siteConfig.ts +++ b/demo/site/src/util/siteConfig.ts @@ -4,13 +4,17 @@ import { headers } from "next/headers"; export function getHostByHeaders(headers: Headers) { const host = headers.get("x-forwarded-host") ?? headers.get("host"); - if (!host) throw new Error("Could not evaluate host"); + if (!host) { + throw new Error("Could not evaluate host"); + } return host; } export function getSiteConfigForDomain(domain: string) { const siteConfig = getSiteConfigs().find((siteConfig) => siteConfig.scope.domain === domain); - if (!siteConfig) throw new Error(`SiteConfig not found for domain ${domain}`); + if (!siteConfig) { + throw new Error(`SiteConfig not found for domain ${domain}`); + } return siteConfig; } @@ -18,7 +22,9 @@ export async function getSiteConfigForHost(host: string) { const sitePreviewParams = await previewParams({ skipDraftModeCheck: true }); if (sitePreviewParams?.scope) { const siteConfig = getSiteConfigs().find((siteConfig) => siteConfig.scope.domain === sitePreviewParams.scope.domain); - if (siteConfig) return siteConfig; + if (siteConfig) { + return siteConfig; + } } return getSiteConfigs().find((siteConfig) => siteConfig.domains.main === host || siteConfig.domains.preliminary === host); } @@ -27,7 +33,9 @@ let siteConfigs: PublicSiteConfig[]; export function getSiteConfigs() { if (!siteConfigs) { const json = process.env.PUBLIC_SITE_CONFIGS; - if (!json) throw new Error("process.env.PUBLIC_SITE_CONFIGS must be set."); + if (!json) { + throw new Error("process.env.PUBLIC_SITE_CONFIGS must be set."); + } siteConfigs = JSON.parse(atob(json)) as PublicSiteConfig[]; } return siteConfigs; @@ -37,6 +45,8 @@ export function getSiteConfigs() { export async function getSiteConfig() { const host = getHostByHeaders(await headers()); const siteConfig = await getSiteConfigForHost(host); - if (!siteConfig) throw new Error(`SiteConfig not found for host ${host}`); + if (!siteConfig) { + throw new Error(`SiteConfig not found for host ${host}`); + } return siteConfig; } diff --git a/docs/src/utils/generateComponentDocs.ts b/docs/src/utils/generateComponentDocs.ts index 97fe271e98e..6b37e38b604 100644 --- a/docs/src/utils/generateComponentDocs.ts +++ b/docs/src/utils/generateComponentDocs.ts @@ -50,7 +50,9 @@ const generateComponentDocs = (stories: StoriesJsonEntry[]) => { stories.forEach(({ id, title }) => { const componentName = title.split("/")[1]; - if (!componentName) return; + if (!componentName) { + return; + } const fileName = `generated.${kebabCase(componentName)}.mdx`; const filePath = path.join(docsDir, fileName); diff --git a/packages/admin/admin-generator/src/commands/generate/config/transformConfig.ts b/packages/admin/admin-generator/src/commands/generate/config/transformConfig.ts index bfff2f07194..ef826e2dabf 100644 --- a/packages/admin/admin-generator/src/commands/generate/config/transformConfig.ts +++ b/packages/admin/admin-generator/src/commands/generate/config/transformConfig.ts @@ -69,7 +69,9 @@ export function transformConfigFile(fileName: string, sourceText: string) { if (ts.isArrowFunction(node)) { if (supportedInlineCodePaths.includes(path)) { let code = node.getText(); - if (code.endsWith(",")) code = code.slice(0, -1); // for some unknown reason node can contain the trailing comma + if (code.endsWith(",")) { + code = code.slice(0, -1); + } // for some unknown reason node can contain the trailing comma const imports = findUsedImports(node.body, importedIdentifiers); //find all imports used in the function body // replace inline code with { code, imports } object return ts.factory.createObjectLiteralExpression( @@ -120,7 +122,9 @@ export function transformConfigFile(fileName: string, sourceText: string) { throw new Error(`Only JsxAttributes are supported in FormattedMessage in this context: ${path}`); } let name = attr.name?.getText(); - if (name === "id") name = "formattedMessageId"; // rename to identify as formattedMessage + if (name === "id") { + name = "formattedMessageId"; + } // rename to identify as formattedMessage if (!attr.initializer || !ts.isStringLiteral(attr.initializer)) { throw new Error(`Only string literals are supported in FormattedMessage in this context: ${path}.${name}`); } @@ -173,7 +177,9 @@ export function transformConfigFile(fileName: string, sourceText: string) { const updatedSource = ts.transform(sourceFile, [ (context) => { const visitor: ts.Visitor = (node) => { - if (node === configNode) return transformedConfigNode; + if (node === configNode) { + return transformedConfigNode; + } return ts.visitEachChild(node, visitor, context); }; return (node: ts.SourceFile) => ts.visitNode(node, visitor) as ts.SourceFile; diff --git a/packages/admin/admin-generator/src/commands/generate/generate-command.ts b/packages/admin/admin-generator/src/commands/generate/generate-command.ts index 547485fd8bc..6117114431b 100644 --- a/packages/admin/admin-generator/src/commands/generate/generate-command.ts +++ b/packages/admin/admin-generator/src/commands/generate/generate-command.ts @@ -356,7 +356,9 @@ async function runGenerate(filePattern = "src/**/*.cometGen.{ts,tsx}") { await fs.rm(codeOuputFilename, { force: true }); const exportName = file.match(/([^/]+)\.cometGen\.tsx?$/)?.[1]; - if (!exportName) throw new Error("Can not determine exportName"); + if (!exportName) { + throw new Error("Can not determine exportName"); + } let generated: GeneratorReturn; if (config.type == "form") { diff --git a/packages/admin/admin-generator/src/commands/generate/generateForm/asyncSelect/generateAsyncSelect.ts b/packages/admin/admin-generator/src/commands/generate/generateForm/asyncSelect/generateAsyncSelect.ts index 8acc4d727b3..2433732acec 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateForm/asyncSelect/generateAsyncSelect.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateForm/asyncSelect/generateAsyncSelect.ts @@ -73,11 +73,15 @@ export function findIntrospectionObjectType({ const introspectionObject = gqlIntrospection.__schema.types.find((type) => type.kind === "OBJECT" && type.name === gqlType) as | IntrospectionObjectType | undefined; - if (!introspectionObject) throw new Error(`didn't find object ${gqlType} in gql introspection`); + if (!introspectionObject) { + throw new Error(`didn't find object ${gqlType} in gql introspection`); + } function findIntrospectionField(introspectionObject: IntrospectionObjectType, name: string) { const introspectionField = introspectionObject.fields.find((field) => field.name === name); - if (!introspectionField) throw new Error(`didn't find field ${name} in gql introspection type ${gqlType}`); + if (!introspectionField) { + throw new Error(`didn't find field ${name} in gql introspection type ${gqlType}`); + } let introspectionFieldType = introspectionField.type.kind === "NON_NULL" ? introspectionField.type.ofType : introspectionField.type; const multiple = introspectionFieldType?.kind === "LIST"; @@ -86,11 +90,15 @@ export function findIntrospectionObjectType({ introspectionFieldType.ofType.kind === "NON_NULL" ? introspectionFieldType.ofType.ofType : introspectionFieldType.ofType; } - if (introspectionFieldType.kind !== "OBJECT") throw new Error(`asyncSelect only supports OBJECT types`); + if (introspectionFieldType.kind !== "OBJECT") { + throw new Error(`asyncSelect only supports OBJECT types`); + } const objectType = gqlIntrospection.__schema.types.find((t) => t.kind === "OBJECT" && t.name === introspectionFieldType.name) as | IntrospectionObjectType | undefined; - if (!objectType) throw new Error(`Object type ${introspectionFieldType.name} not found for field ${name}`); + if (!objectType) { + throw new Error(`Object type ${introspectionFieldType.name} not found for field ${name}`); + } return { multiple, objectType }; } if (config.type === "asyncSelectFilter") { @@ -99,7 +107,9 @@ export function findIntrospectionObjectType({ multiple: false, objectType: config.loadValueQueryField.split(".").reduce((acc, fieldName) => { const introspectionField = findIntrospectionField(acc, fieldName); - if (introspectionField.multiple) throw new Error(`asyncSelectFilter does not support list fields in loadValueQueryField`); + if (introspectionField.multiple) { + throw new Error(`asyncSelectFilter does not support list fields in loadValueQueryField`); + } return introspectionField.objectType; }, introspectionObject), }; @@ -163,7 +173,9 @@ export function generateAsyncSelect({ if (!labelField) { labelField = objectType.fields.find((field) => { let type = field.type; - if (type.kind == "NON_NULL") type = type.ofType; + if (type.kind == "NON_NULL") { + type = type.ofType; + } if ((field.name == "name" || field.name == "title") && type.kind == "SCALAR" && type.name == "String") { return true; } @@ -174,7 +186,9 @@ export function generateAsyncSelect({ if (!labelField) { labelField = objectType.fields.find((field) => { let type = field.type; - if (type.kind == "NON_NULL") type = type.ofType; + if (type.kind == "NON_NULL") { + type = type.ofType; + } if (field.type.kind == "SCALAR" && field.type.name == "String") { return true; } diff --git a/packages/admin/admin-generator/src/commands/generate/generateForm/formField/findIntrospectionFieldType.ts b/packages/admin/admin-generator/src/commands/generate/generateForm/formField/findIntrospectionFieldType.ts index 819cf555fb6..6a494246b06 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateForm/formField/findIntrospectionFieldType.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateForm/formField/findIntrospectionFieldType.ts @@ -14,7 +14,9 @@ export function findIntrospectionFieldType({ const introspectionObject = gqlIntrospection.__schema.types.find((type) => type.kind === "OBJECT" && type.name === gqlType) as | IntrospectionObjectType | undefined; - if (!introspectionObject) throw new Error(`didn't find object ${gqlType} in gql introspection`); + if (!introspectionObject) { + throw new Error(`didn't find object ${gqlType} in gql introspection`); + } const introspectionField = (introspectionObject as IntrospectionObjectType).fields.find((field) => field.name === namePart); introspectionFieldType = introspectionField diff --git a/packages/admin/admin-generator/src/commands/generate/generateForm/generateForm.ts b/packages/admin/admin-generator/src/commands/generate/generateForm/generateForm.ts index 849b8d5657a..1b078d62662 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateForm/generateForm.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateForm/generateForm.ts @@ -14,11 +14,15 @@ import { getForwardedGqlArgs, type GqlArg } from "./getForwardedGqlArgs"; export type Prop = { type: string; optional: boolean; name: string }; function generateFormPropsCode(props: Prop[]): { formPropsTypeCode: string; formPropsParamsCode: string } { - if (!props.length) return { formPropsTypeCode: "", formPropsParamsCode: "" }; + if (!props.length) { + return { formPropsTypeCode: "", formPropsParamsCode: "" }; + } const uniqueProps = props.reduce((acc, item) => { const propWithSameName = acc.find((prop) => prop.name == item.name); - if (!propWithSameName) return [item, ...acc]; + if (!propWithSameName) { + return [item, ...acc]; + } if (propWithSameName.type != item.type || propWithSameName.optional != item.optional) { // this is currently not supported return [item, ...acc]; @@ -132,7 +136,9 @@ export function generateForm( .filter((field) => field.type == "block") .map((field) => { // map is for ts to infer block type correctly - if (field.type !== "block") throw new Error("Field is not a block field"); + if (field.type !== "block") { + throw new Error("Field is not a block field"); + } return field; }); rootBlockFields.forEach((field) => { @@ -261,7 +267,9 @@ export function generateForm( importPath: `./${baseOutputFilename}.gql`, }); const match = gqlDocument.document.match(/^\s*(query|mutation|fragment)\s+(\w+)/); - if (!match) throw new Error(`Could not find query or mutation name in ${gqlDocument}`); + if (!match) { + throw new Error(`Could not find query or mutation name in ${gqlDocument}`); + } const type = match[1]; const documentName = match[2]; imports.push({ diff --git a/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormField.ts b/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormField.ts index 3ea4567e94b..d9b9804d8d6 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormField.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormField.ts @@ -287,7 +287,9 @@ export function generateFormField({ const enumType = gqlIntrospection.__schema.types.find( (t) => t.kind === "ENUM" && t.name === (introspectionFieldType as IntrospectionNamedTypeRef).name, ) as IntrospectionEnumType | undefined; - if (!enumType) throw new Error(`Enum type ${(introspectionFieldType as IntrospectionNamedTypeRef).name} not found for field ${name}`); + if (!enumType) { + throw new Error(`Enum type ${(introspectionFieldType as IntrospectionNamedTypeRef).name} not found for field ${name}`); + } const values = (config.values ? config.values : enumType.enumValues.map((i) => i.name)).map((value) => { if (typeof value === "string") { diff --git a/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormLayout.ts b/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormLayout.ts index a3041cd09a0..4f45009c859 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormLayout.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormLayout.ts @@ -98,8 +98,12 @@ export function generateFormLayout({ const name = String(config.name); const introspectionFieldType = findIntrospectionFieldType({ name, gqlType, gqlIntrospection }); - if (!introspectionFieldType) throw new Error(`field ${name} in gql introspection type ${gqlType} not found`); - if (introspectionFieldType.kind !== "OBJECT") throw new Error(`field ${name} in gql introspection type ${gqlType} has to be OBJECT`); + if (!introspectionFieldType) { + throw new Error(`field ${name} in gql introspection type ${gqlType} not found`); + } + if (introspectionFieldType.kind !== "OBJECT") { + throw new Error(`field ${name} in gql introspection type ${gqlType} has to be OBJECT`); + } const generatedFields = generateFields({ gqlIntrospection, diff --git a/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormValues.ts b/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormValues.ts index 621259b5ff3..51bd41ada2e 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormValues.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateForm/generateFormValues.ts @@ -30,7 +30,9 @@ export function formValuesConfigToTree({ const introspectionObject = gqlIntrospection.__schema.types.find((type) => type.kind === "OBJECT" && type.name === currentGqlType) as | IntrospectionObjectType | undefined; - if (!introspectionObject) throw new Error(`didn't find object ${gqlType} in gql introspection`); + if (!introspectionObject) { + throw new Error(`didn't find object ${gqlType} in gql introspection`); + } const introspectionField = (introspectionObject as IntrospectionObjectType).fields.find((field) => field.name === part); diff --git a/packages/admin/admin-generator/src/commands/generate/generateForm/getForwardedGqlArgs.ts b/packages/admin/admin-generator/src/commands/generate/generateForm/getForwardedGqlArgs.ts index fedd0e8f297..b9396ace146 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateForm/getForwardedGqlArgs.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateForm/getForwardedGqlArgs.ts @@ -63,7 +63,9 @@ function getArgsIncludingInputArgSubfields(gqlOperation: IntrospectionField, gql acc: { name: string; type: string; isInputArgSubfield: boolean }[], inputField: IntrospectionInputValue, ): { name: string; type: string; isInputArgSubfield: boolean }[] { - if (inputField.type.kind !== "NON_NULL" || inputField.defaultValue) return acc; + if (inputField.type.kind !== "NON_NULL" || inputField.defaultValue) { + return acc; + } const gqlType = inputField.type.ofType; if (gqlType.kind === "INPUT_OBJECT") { diff --git a/packages/admin/admin-generator/src/commands/generate/generateGrid/__tests__/scope.test.ts b/packages/admin/admin-generator/src/commands/generate/generateGrid/__tests__/scope.test.ts index 7a5ed38f3b6..fb1ad34e5ff 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateGrid/__tests__/scope.test.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateGrid/__tests__/scope.test.ts @@ -106,7 +106,9 @@ describe("Grid Scope", () => { ); const match = formOutput.code.match(/import {(.*?)} from "@src\/graphql.generated";/); - if (!match) throw new Error("GQL import not found"); + if (!match) { + throw new Error("GQL import not found"); + } const imports = match[1].split(",").map((imp) => imp.trim()); expect(imports).not.toContain("ProductScope"); expect(imports).toContain("GQLProductScope"); diff --git a/packages/admin/admin-generator/src/commands/generate/generateGrid/generateGrid.ts b/packages/admin/admin-generator/src/commands/generate/generateGrid/generateGrid.ts index bc993cc4fbd..62574f7699f 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateGrid/generateGrid.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateGrid/generateGrid.ts @@ -55,7 +55,9 @@ export type Prop = { }; function generateGridPropsCode(props: Prop[]): { gridPropsTypeCode: string; gridPropsParamsCode: string } { - if (!props.length) return { gridPropsTypeCode: "", gridPropsParamsCode: "" }; + if (!props.length) { + return { gridPropsTypeCode: "", gridPropsParamsCode: "" }; + } const uniqueProps = props.reduce((acc, prop) => { const propWithSameName = acc.find((filteredProps) => filteredProps.name === prop.name); if (propWithSameName) { @@ -299,7 +301,9 @@ export function generateGrid( const updateInputArg = updateMutationType?.args.find((arg) => arg.name === "input"); if (allowRowReordering && updateInputArg) { const inputType = findInputObjectType(updateInputArg, gqlIntrospection); - if (!inputType) throw new Error("Can't find update input type"); + if (!inputType) { + throw new Error("Can't find update input type"); + } if (!inputType.inputFields?.find((field) => field.name === "position")) { throw new Error("Position field is needed when using 'rowReordering'"); } @@ -348,7 +352,9 @@ export function generateGrid( let filterFields: string[] = []; if (filterArg) { const filterType = findInputObjectType(filterArg, gqlIntrospection); - if (!filterType) throw new Error("Can't find filter type"); + if (!filterType) { + throw new Error("Can't find filter type"); + } filterFields = filterType.inputFields.map((f) => f.name.replace(/_/g, ".")); const { @@ -388,16 +394,26 @@ export function generateGrid( const sortType = gqlIntrospection.__schema.types.find((type) => type.kind === "INPUT_OBJECT" && type.name === sortTypeName) as | IntrospectionInputObjectType | undefined; - if (!sortType) throw new Error("Can't find sort type"); + if (!sortType) { + throw new Error("Can't find sort type"); + } const sortField = sortType.inputFields.find((i) => i.name == "field"); - if (!sortField) throw new Error("Can't find sortFieldName"); - if (sortField.type.kind !== "NON_NULL") throw new Error("sortField must be NON_NULL"); - if (sortField.type.ofType.kind != "ENUM") throw new Error("sortField must be NON_NULL->ENUM"); + if (!sortField) { + throw new Error("Can't find sortFieldName"); + } + if (sortField.type.kind !== "NON_NULL") { + throw new Error("sortField must be NON_NULL"); + } + if (sortField.type.ofType.kind != "ENUM") { + throw new Error("sortField must be NON_NULL->ENUM"); + } const sortFieldEnumName = sortField.type.ofType.name; const sortInputEnum = gqlIntrospection.__schema.types.find((type) => type.kind === "ENUM" && type.name === sortFieldEnumName) as | IntrospectionEnumType | undefined; - if (!sortInputEnum) throw new Error("Can't find sortInputEnum"); + if (!sortInputEnum) { + throw new Error("Can't find sortInputEnum"); + } sortFields = sortInputEnum.enumValues.map((v) => v.name.replace(/_/g, ".")); if (allowRowReordering && !sortFields.includes("position")) { throw new Error("Sort argument must include 'position' field for row reordering"); @@ -409,7 +425,9 @@ export function generateGrid( const schemaEntity = gqlIntrospection.__schema.types.find((type) => type.kind === "OBJECT" && type.name === gqlType) as | IntrospectionObjectType | undefined; - if (!schemaEntity) throw new Error("didn't find entity in schema types"); + if (!schemaEntity) { + throw new Error("didn't find entity in schema types"); + } const actionsColumnConfig = config.columns.find((column) => column.type === "actions") as ActionsGridColumnConfig; const { @@ -482,7 +500,9 @@ export function generateGrid( } else if (type == "staticSelect") { valueFormatter = `(value, row) => row.${name}?.toString()`; const introspectionField = schemaEntity.fields.find((field) => field.name === name); - if (!introspectionField) throw new Error(`didn't find field ${name} in gql introspection type ${gqlType}`); + if (!introspectionField) { + throw new Error(`didn't find field ${name} in gql introspection type ${gqlType}`); + } const introspectionFieldType = introspectionField.type.kind === "NON_NULL" ? introspectionField.type.ofType : introspectionField.type; const enumType = gqlIntrospection.__schema.types.find( diff --git a/packages/admin/admin-generator/src/commands/generate/generateGrid/getForwardedGqlArgs.ts b/packages/admin/admin-generator/src/commands/generate/generateGrid/getForwardedGqlArgs.ts index dee59acf637..0c677448e51 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateGrid/getForwardedGqlArgs.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateGrid/getForwardedGqlArgs.ts @@ -40,8 +40,12 @@ export function getForwardedGqlArgs(gqlFields: IntrospectionField[]) { function getArgs(gqlFields: IntrospectionField[], skipGqlArgs: string[]) { return gqlFields.reduce<{ name: string; type: string; gqlArg: IntrospectionInputValue; gqlField: IntrospectionField }[]>((acc, gqlField) => { gqlField.args.forEach((gqlArg) => { - if (skipGqlArgs.includes(gqlArg.name)) return acc; - if (gqlArg.type.kind !== "NON_NULL" || gqlArg.defaultValue) return acc; + if (skipGqlArgs.includes(gqlArg.name)) { + return acc; + } + if (gqlArg.type.kind !== "NON_NULL" || gqlArg.defaultValue) { + return acc; + } const gqlType = gqlArg.type.ofType; diff --git a/packages/admin/admin-generator/src/commands/generate/generateGrid/getPropsForFilterProp.ts b/packages/admin/admin-generator/src/commands/generate/generateGrid/getPropsForFilterProp.ts index d4ae39a4606..cba82c80415 100644 --- a/packages/admin/admin-generator/src/commands/generate/generateGrid/getPropsForFilterProp.ts +++ b/packages/admin/admin-generator/src/commands/generate/generateGrid/getPropsForFilterProp.ts @@ -15,7 +15,9 @@ export function getPropsForFilterProp({ imports: Imports; props: Prop[]; } { - if (!config.filterProp) return { hasFilterProp: false, imports: [], props: [] }; + if (!config.filterProp) { + return { hasFilterProp: false, imports: [], props: [] }; + } const filterTypeName = `GQL${filterType.name}`; diff --git a/packages/admin/admin-generator/src/commands/generate/utils/findMutationType.ts b/packages/admin/admin-generator/src/commands/generate/utils/findMutationType.ts index 71509e12d68..c71b37364f3 100644 --- a/packages/admin/admin-generator/src/commands/generate/utils/findMutationType.ts +++ b/packages/admin/admin-generator/src/commands/generate/utils/findMutationType.ts @@ -1,14 +1,20 @@ import { type IntrospectionObjectType, type IntrospectionQuery } from "graphql"; export function findMutationType(mutationName: string, schema: IntrospectionQuery) { - if (!schema.__schema.mutationType) throw new Error("Schema has no Mutation type"); + if (!schema.__schema.mutationType) { + throw new Error("Schema has no Mutation type"); + } const queryType = schema.__schema.types.find((type) => type.name === schema.__schema.mutationType?.name) as IntrospectionObjectType | undefined; - if (!queryType) throw new Error("Can't find Mutation type in gql schema"); + if (!queryType) { + throw new Error("Can't find Mutation type in gql schema"); + } return queryType.fields.find((field) => field.name === mutationName); } export function findMutationTypeOrThrow(mutationName: string, schema: IntrospectionQuery) { const ret = findMutationType(mutationName, schema); - if (!ret) throw new Error(`Can't find Mutation ${mutationName} in gql schema`); + if (!ret) { + throw new Error(`Can't find Mutation ${mutationName} in gql schema`); + } return ret; } diff --git a/packages/admin/admin-generator/src/commands/generate/utils/findQueryType.ts b/packages/admin/admin-generator/src/commands/generate/utils/findQueryType.ts index 13f32007a2d..7bf0a2ebf3c 100644 --- a/packages/admin/admin-generator/src/commands/generate/utils/findQueryType.ts +++ b/packages/admin/admin-generator/src/commands/generate/utils/findQueryType.ts @@ -2,14 +2,20 @@ import { type IntrospectionObjectType, type IntrospectionQuery } from "graphql"; function findQueryType(queryName: string, schema: IntrospectionQuery) { const queryType = schema.__schema.types.find((type) => type.name === schema.__schema.queryType.name) as IntrospectionObjectType | undefined; - if (!queryType) throw new Error("Can't find Query type in gql schema"); + if (!queryType) { + throw new Error("Can't find Query type in gql schema"); + } const ret = queryType.fields.find((field) => field.name === queryName); - if (!ret) throw new Error(`Can't find query ${queryName} in gql schema`); + if (!ret) { + throw new Error(`Can't find query ${queryName} in gql schema`); + } return ret; } export function findQueryTypeOrThrow(queryName: string, schema: IntrospectionQuery) { const ret = findQueryType(queryName, schema); - if (!ret) throw new Error(`Can't find query ${queryName} in gql schema`); + if (!ret) { + throw new Error(`Can't find query ${queryName} in gql schema`); + } return ret; } diff --git a/packages/admin/admin-generator/src/commands/generate/utils/findRootBlocks.ts b/packages/admin/admin-generator/src/commands/generate/utils/findRootBlocks.ts index f8b7ef42f61..5463fcde0ef 100644 --- a/packages/admin/admin-generator/src/commands/generate/utils/findRootBlocks.ts +++ b/packages/admin/admin-generator/src/commands/generate/utils/findRootBlocks.ts @@ -17,11 +17,17 @@ export function findRootBlocks({ gqlType, targetDirectory }: { gqlType: string; const ret: Record = {}; const schemaEntity = schema.__schema.types.find((type) => type.kind === "OBJECT" && type.name === gqlType) as IntrospectionObjectType | undefined; - if (!schemaEntity) throw new Error("didn't find entity in schema types"); + if (!schemaEntity) { + throw new Error("didn't find entity in schema types"); + } schemaEntity.fields.forEach((field) => { - if (ret[field.name]) return; // already defined + if (ret[field.name]) { + return; + } // already defined let type = field.type; - if (type.kind == "NON_NULL") type = type.ofType; + if (type.kind == "NON_NULL") { + type = type.ofType; + } if (type.kind == "SCALAR" && type.name.endsWith("BlockData")) { let match = false; const blockName = `${type.name.replace(/BlockData$/, "")}Block`; diff --git a/packages/admin/admin-generator/src/commands/generate/utils/generateGqlOperation.ts b/packages/admin/admin-generator/src/commands/generate/utils/generateGqlOperation.ts index e7ba36f7db2..1ea80b1ccc8 100644 --- a/packages/admin/admin-generator/src/commands/generate/utils/generateGqlOperation.ts +++ b/packages/admin/admin-generator/src/commands/generate/utils/generateGqlOperation.ts @@ -34,7 +34,9 @@ export function generateGqlQueryTreeFromFields(fields: string[]) { } else { // e.g. foo.bar.baz const path = field.split(".").filter(Boolean); - if (path.length === 0) continue; + if (path.length === 0) { + continue; + } // Mark the leaf node (no need to store field names, just ensure the path exists) getOrCreateNode(root, path); } diff --git a/packages/admin/admin-generator/src/commands/generate/utils/isFieldOptional.ts b/packages/admin/admin-generator/src/commands/generate/utils/isFieldOptional.ts index 73869768791..333ec6518aa 100644 --- a/packages/admin/admin-generator/src/commands/generate/utils/isFieldOptional.ts +++ b/packages/admin/admin-generator/src/commands/generate/utils/isFieldOptional.ts @@ -21,9 +21,15 @@ export const isFieldOptional = ({ } const schemaEntity = gqlIntrospection.__schema.types.find((type) => type.kind === "OBJECT" && type.name === gqlType); - if (!schemaEntity) throw new Error(`didn't find entity ${gqlType} in schema types`); - if (schemaEntity.kind !== "OBJECT") throw new Error(`kind of ${gqlType} is not object, but should be.`); // this should not happen + if (!schemaEntity) { + throw new Error(`didn't find entity ${gqlType} in schema types`); + } + if (schemaEntity.kind !== "OBJECT") { + throw new Error(`kind of ${gqlType} is not object, but should be.`); + } // this should not happen const fieldDef = schemaEntity.fields.find((field) => field.name === String(config.name)); - if (!fieldDef) return false; + if (!fieldDef) { + return false; + } return fieldDef.type.kind !== "NON_NULL"; }; diff --git a/packages/admin/admin-rte/src/core/translation/ToolbarButton.tsx b/packages/admin/admin-rte/src/core/translation/ToolbarButton.tsx index cbf3b5e69af..4fef2872daa 100644 --- a/packages/admin/admin-rte/src/core/translation/ToolbarButton.tsx +++ b/packages/admin/admin-rte/src/core/translation/ToolbarButton.tsx @@ -17,7 +17,9 @@ function ToolbarButton({ editorState, setEditorState, options }: IControlProps) const [pendingTranslation, setPendingTranslation] = useState(undefined); async function handleClick(event: MouseEvent) { - if (!translationContext) return; + if (!translationContext) { + return; + } event.preventDefault(); diff --git a/packages/admin/admin/src/FinalForm.InTabs.test.tsx b/packages/admin/admin/src/FinalForm.InTabs.test.tsx index 1eb9d56cb89..30a9f6ef078 100644 --- a/packages/admin/admin/src/FinalForm.InTabs.test.tsx +++ b/packages/admin/admin/src/FinalForm.InTabs.test.tsx @@ -54,7 +54,9 @@ test("Form DirtyPrompt for inner Tabs", async () => { , ); const input = rendered.container.querySelector(`input[name="foo"]`); - if (!input) throw new Error("input not found"); + if (!input) { + throw new Error("input not found"); + } fireEvent.change(input, { target: { value: "xxxx" } }); fireEvent.click(rendered.getByText("Form 2")); @@ -98,7 +100,9 @@ test("Form DirtyPrompt for outer Tabs", async () => { , ); const input = rendered.container.querySelector(`input[name="foo"]`); - if (!input) throw new Error("input not found"); + if (!input) { + throw new Error("input not found"); + } fireEvent.change(input, { target: { value: "xxxx" } }); fireEvent.click(rendered.getByText("Page 2")); @@ -152,7 +156,9 @@ test("Form DirtyPrompt for outer Stack", async () => { ); fireEvent.click(rendered.getByText("go to page2")); const input = rendered.container.querySelector(`input[name="foo"]`); - if (!input) throw new Error("input not found"); + if (!input) { + throw new Error("input not found"); + } fireEvent.change(input, { target: { value: "xxxx" } }); fireEvent.click(rendered.getByText("go to page1")); @@ -205,7 +211,9 @@ test("Form DirtyPrompt for inner Stack", async () => { , ); const input = rendered.container.querySelector(`input[name="foo"]`); - if (!input) throw new Error("input not found"); + if (!input) { + throw new Error("input not found"); + } fireEvent.change(input, { target: { value: "xxxx" } }); fireEvent.click(rendered.getByText("go to page2")); diff --git a/packages/admin/admin/src/FinalForm.tsx b/packages/admin/admin/src/FinalForm.tsx index 067802538a1..714c77c1001 100644 --- a/packages/admin/admin/src/FinalForm.tsx +++ b/packages/admin/admin/src/FinalForm.tsx @@ -137,7 +137,9 @@ export function FinalForm; + if (props.apiRef) { + props.apiRef.current = formRenderProps.form as FormApi; + } const { mutators } = formRenderProps.form; const setFieldData = mutators.setFieldData as (...args: any[]) => any; const subRoutePath = props.subRoutePath ?? `${subRoutePrefix}/form`; @@ -149,7 +151,9 @@ export function FinalForm((resolve) => { Promise.resolve(formRenderProps.handleSubmit(event)).then( () => { @@ -264,7 +268,9 @@ export function FinalForm) { const submitEvent = (form.mutators.getSubmitEvent ? form.mutators.getSubmitEvent() : undefined) || new FinalFormSubmitEvent("submit"); const ret = props.onSubmit(values, form, submitEvent); - if (ret === undefined) return ret; + if (ret === undefined) { + return ret; + } return Promise.resolve(ret) .then((data) => { diff --git a/packages/admin/admin/src/FinalFormSaveButton.tsx b/packages/admin/admin/src/FinalFormSaveButton.tsx index c96879eaf27..4416e3305f5 100644 --- a/packages/admin/admin/src/FinalFormSaveButton.tsx +++ b/packages/admin/admin/src/FinalFormSaveButton.tsx @@ -23,7 +23,9 @@ export const FinalFormSaveButton = ({ message = { - if (!isDisabled) form.submit(); + if (!isDisabled) { + form.submit(); + } }} > {message} diff --git a/packages/admin/admin/src/apollo/filterByFragment.ts b/packages/admin/admin/src/apollo/filterByFragment.ts index 19530a7c17f..976899e93c9 100644 --- a/packages/admin/admin/src/apollo/filterByFragment.ts +++ b/packages/admin/admin/src/apollo/filterByFragment.ts @@ -22,7 +22,9 @@ import { // Copied and adapted from https://github.com/apollographql/apollo-client/blob/release-2.x/packages/graphql-anywhere/src/utilities.ts export function filterByFragment(doc: DocumentNode, data: D, variableValues: VariableMap = {}): FD { - if (data === null) return data; + if (data === null) { + return data; + } const resolver = (fieldName: string, root: any, args: Record, context: ExecContext, info: ExecInfo) => { return root[info.resultKey]; diff --git a/packages/admin/admin/src/common/buttons/feedback/FeedbackButton.tsx b/packages/admin/admin/src/common/buttons/feedback/FeedbackButton.tsx index 177302b514e..204c7e8b6dc 100644 --- a/packages/admin/admin/src/common/buttons/feedback/FeedbackButton.tsx +++ b/packages/admin/admin/src/common/buttons/feedback/FeedbackButton.tsx @@ -104,7 +104,9 @@ export function FeedbackButton(inProps: FeedbackButtonProps) { : onClick; useEffect(() => { - if (isUncontrolled) return; + if (isUncontrolled) { + return; + } let timeoutId: number | undefined; let timeoutDuration: number | undefined; diff --git a/packages/admin/admin/src/dataGrid/CrudContextMenu.tsx b/packages/admin/admin/src/dataGrid/CrudContextMenu.tsx index 530d3224809..6d72803f885 100644 --- a/packages/admin/admin/src/dataGrid/CrudContextMenu.tsx +++ b/packages/admin/admin/src/dataGrid/CrudContextMenu.tsx @@ -106,13 +106,17 @@ export function CrudContextMenu(inProps: CrudContextMenuProps { - if (!onDelete) return; + if (!onDelete) { + return; + } try { await onDelete({ client, }); - if (refetchQueries) await client.refetchQueries({ include: refetchQueries }); + if (refetchQueries) { + await client.refetchQueries({ include: refetchQueries }); + } setDeleteDialogOpen(false); } catch { throw new Error("Delete failed"); @@ -120,7 +124,9 @@ export function CrudContextMenu(inProps: CrudContextMenuProps { - if (!onPaste) return; + if (!onPaste) { + return; + } const clipboard = await readClipboardText(); if (clipboard) { @@ -142,7 +148,9 @@ export function CrudContextMenu(inProps: CrudContextMenuProps {overallActions.map((item, index) => { - if (!item) return null; + if (!item) { + return null; + } if (isValidElement(item)) { return item; @@ -199,7 +201,9 @@ export function CrudMoreActionsMenu({ slotProps, overallActions, selectiveAction {...groupProps} > {selectiveActions.map((item, index) => { - if (!item) return; + if (!item) { + return; + } if (isValidElement(item)) { return item; diff --git a/packages/admin/admin/src/dataGrid/muiGridFilterToGql.tsx b/packages/admin/admin/src/dataGrid/muiGridFilterToGql.tsx index 353d1a8f278..a172c091e33 100644 --- a/packages/admin/admin/src/dataGrid/muiGridFilterToGql.tsx +++ b/packages/admin/admin/src/dataGrid/muiGridFilterToGql.tsx @@ -49,13 +49,17 @@ export type GqlFilter = { }; export function muiGridFilterToGql(columns: GridColDef[], filterModel?: GridFilterModel): { filter: GqlFilter; search?: string } { - if (!filterModel) return { filter: {} }; + if (!filterModel) { + return { filter: {} }; + } const filterItems = filterModel.items.map((filterItem) => { const column = columns.find((col) => col.field === filterItem.field); if (column?.toGqlFilter) { return column.toGqlFilter(filterItem); } - if (!filterItem.operator) throw new Error("operator not set"); + if (!filterItem.operator) { + throw new Error("operator not set"); + } const gqlOperator = muiGridOperatorValueToGqlOperator[filterItem.operator] || filterItem.operator; const value = ["isEmpty", "isNotEmpty"].includes(gqlOperator) ? true : filterItem.value; return { diff --git a/packages/admin/admin/src/dataGrid/muiGridSortToGql.tsx b/packages/admin/admin/src/dataGrid/muiGridSortToGql.tsx index 5e82a04135b..9f537129894 100644 --- a/packages/admin/admin/src/dataGrid/muiGridSortToGql.tsx +++ b/packages/admin/admin/src/dataGrid/muiGridSortToGql.tsx @@ -8,7 +8,9 @@ type SortEntry = { }; export function muiGridSortToGql(sortModel?: GridSortModel, columns?: GridColDef[]) { - if (!sortModel || sortModel.length === 0) return undefined; + if (!sortModel || sortModel.length === 0) { + return undefined; + } const sortFieldMapping: Record = {}; diff --git a/packages/admin/admin/src/fetchProvider/fetch.tsx b/packages/admin/admin/src/fetchProvider/fetch.tsx index 34fa7c8efe4..d49a5705338 100644 --- a/packages/admin/admin/src/fetchProvider/fetch.tsx +++ b/packages/admin/admin/src/fetchProvider/fetch.tsx @@ -11,7 +11,9 @@ export function createFetch(options: ICreateFetchOptions) { async function appFetch(input: RequestInfo, init?: RequestInit) { init = init || {}; init.headers = init.headers ? new Headers(init.headers) : new Headers(); - if (options.interceptHeaders) await options.interceptHeaders(init.headers); + if (options.interceptHeaders) { + await options.interceptHeaders(init.headers); + } // make sure we deal with a Request object even if we got a URL string if (options.baseUrl && typeof input === "string" && !isUrlAbsolute(input)) { diff --git a/packages/admin/admin/src/form/Autocomplete.tsx b/packages/admin/admin/src/form/Autocomplete.tsx index eaa18e35a79..25677c46d7f 100644 --- a/packages/admin/admin/src/form/Autocomplete.tsx +++ b/packages/admin/admin/src/form/Autocomplete.tsx @@ -79,7 +79,9 @@ export const FinalFormAutocomplete = < } isOptionEqualToValue={(option: T, value: T) => { - if (!value) return false; + if (!value) { + return false; + } return option === value; }} onChange={(_e, option) => { diff --git a/packages/admin/admin/src/form/FinalFormSelect.tsx b/packages/admin/admin/src/form/FinalFormSelect.tsx index 453d56dec05..46193cf2cf6 100644 --- a/packages/admin/admin/src/form/FinalFormSelect.tsx +++ b/packages/admin/admin/src/form/FinalFormSelect.tsx @@ -51,8 +51,12 @@ export const FinalFormSelect = ({ }, getOptionValue = (option: T) => { if (typeof option === "object" && option !== null) { - if ((option as any).id) return String((option as any).id); - if ((option as any).value) return String((option as any).value); + if ((option as any).id) { + return String((option as any).id); + } + if ((option as any).value) { + return String((option as any).value); + } return JSON.stringify(option); } else { return String(option); diff --git a/packages/admin/admin/src/mui/MasterLayout.tsx b/packages/admin/admin/src/mui/MasterLayout.tsx index 6d71571fc88..7a9900fe2c5 100644 --- a/packages/admin/admin/src/mui/MasterLayout.tsx +++ b/packages/admin/admin/src/mui/MasterLayout.tsx @@ -76,7 +76,9 @@ export function MasterLayout(inProps: MasterLayoutProps) { const menuRef = useRef(null); useEffect(() => { - if (!menuRef.current) return; + if (!menuRef.current) { + return; + } const resizeObserver = new ResizeObserver(([entry]) => { if (entry) { diff --git a/packages/admin/admin/src/mui/mainNavigation/CollapsibleItem.tsx b/packages/admin/admin/src/mui/mainNavigation/CollapsibleItem.tsx index 3527916fbd0..0328545222c 100644 --- a/packages/admin/admin/src/mui/mainNavigation/CollapsibleItem.tsx +++ b/packages/admin/admin/src/mui/mainNavigation/CollapsibleItem.tsx @@ -73,7 +73,9 @@ export const MainNavigationCollapsibleItem = (inProps: MainNavigationCollapsible useEffect(() => { // set open state manually to false to avoid a menu opening when isMenuOpen state changes - if (!isMenuOpen) setIsSubmenuOpen(false); + if (!isMenuOpen) { + setIsSubmenuOpen(false); + } }, [isMenuOpen]); const childElements = useMemo(() => { @@ -116,7 +118,9 @@ export const MainNavigationCollapsibleItem = (inProps: MainNavigationCollapsible }; const handlePopoverOpen = (event: MouseEvent) => { - if (isMenuOpen) return; + if (isMenuOpen) { + return; + } if (anchorEl !== event.currentTarget) { setAnchorEl(event.currentTarget); setIsSubmenuOpen(true); @@ -124,12 +128,16 @@ export const MainNavigationCollapsibleItem = (inProps: MainNavigationCollapsible }; const handlePopoverClose = (e: MouseEvent) => { - if (isMenuOpen) return; + if (isMenuOpen) { + return; + } const el = e.currentTarget; const rect = el.getBoundingClientRect(); const { clientX, clientY } = e; - if (childElements?.length && clientX + 2 > rect.right && clientY > rect.top && clientY < rect.bottom) return; + if (childElements?.length && clientX + 2 > rect.right && clientY > rect.top && clientY < rect.bottom) { + return; + } closeMenu(); }; diff --git a/packages/admin/admin/src/mui/mainNavigation/Item.tsx b/packages/admin/admin/src/mui/mainNavigation/Item.tsx index 046e8641aab..42558d8f96f 100644 --- a/packages/admin/admin/src/mui/mainNavigation/Item.tsx +++ b/packages/admin/admin/src/mui/mainNavigation/Item.tsx @@ -48,7 +48,9 @@ export const MainNavigationItem = (inProps: MainNavigationItemProps) => { const { drawerVariant } = useMainNavigation(); - if (level > 3) throw new Error("Maximum nesting level of 2 exceeded."); + if (level > 3) { + throw new Error("Maximum nesting level of 2 exceeded."); + } const showIcon = !!icon && level === 1; diff --git a/packages/admin/admin/src/router/PromptHandler.tsx b/packages/admin/admin/src/router/PromptHandler.tsx index 1cf6fa2a457..422c376544c 100644 --- a/packages/admin/admin/src/router/PromptHandler.tsx +++ b/packages/admin/admin/src/router/PromptHandler.tsx @@ -26,7 +26,7 @@ function InnerPromptHandler({ message: "", callback: undefined, }); - if (apiRef) + if (apiRef) { apiRef.current = { showDialog: (message: string, callback: (ok: boolean) => void) => { setState({ @@ -36,6 +36,7 @@ function InnerPromptHandler({ }); }, }; + } const promptMessage = (location: History.Location, action: History.Action): boolean | string => { for (const id of Object.keys(registeredMessages.current)) { diff --git a/packages/admin/admin/src/saveBoundary/SaveBoundary.tsx b/packages/admin/admin/src/saveBoundary/SaveBoundary.tsx index 488ded0ce1c..e342cd7aee9 100644 --- a/packages/admin/admin/src/saveBoundary/SaveBoundary.tsx +++ b/packages/admin/admin/src/saveBoundary/SaveBoundary.tsx @@ -149,7 +149,9 @@ export interface SavableProps { export const Savable = ({ doSave, doReset, hasChanges, checkForChanges }: SavableProps) => { const id = useConstant(() => uuid()); const saveBoundaryApi = useSaveBoundaryApi(); - if (!saveBoundaryApi) throw new Error("Savable must be inside SaveBoundary"); + if (!saveBoundaryApi) { + throw new Error("Savable must be inside SaveBoundary"); + } useEffect(() => { saveBoundaryApi.register(id, { doSave, doReset, hasChanges, checkForChanges }); return function cleanup() { diff --git a/packages/admin/admin/src/saveBoundary/SaveBoundarySaveButton.tsx b/packages/admin/admin/src/saveBoundary/SaveBoundarySaveButton.tsx index d89a7cd5249..23b702607cb 100644 --- a/packages/admin/admin/src/saveBoundary/SaveBoundarySaveButton.tsx +++ b/packages/admin/admin/src/saveBoundary/SaveBoundarySaveButton.tsx @@ -4,7 +4,9 @@ import { useSaveBoundaryApi, useSaveBoundaryState } from "./SaveBoundary"; export function SaveBoundarySaveButton(props: SaveButtonProps) { const saveBoundaryState = useSaveBoundaryState(); const saveBoundaryApi = useSaveBoundaryApi(); - if (!saveBoundaryState || !saveBoundaryApi) throw new Error("SaveBoundarySaveButton must be inside SaveBoundary"); + if (!saveBoundaryState || !saveBoundaryApi) { + throw new Error("SaveBoundarySaveButton must be inside SaveBoundary"); + } return ( { - if (!infoTooltip) return null; + if (!infoTooltip) { + return null; + } if (isValidElement(infoTooltip) || typeof infoTooltip === "string") { return { diff --git a/packages/admin/admin/src/stack/Stack.tsx b/packages/admin/admin/src/stack/Stack.tsx index 3e21d4c5567..bd5722ae4f8 100644 --- a/packages/admin/admin/src/stack/Stack.tsx +++ b/packages/admin/admin/src/stack/Stack.tsx @@ -33,7 +33,9 @@ const sortByParentId = (nodes: TSortNode[]) => { // then traverse this tree const preOrderTraverse = (sortTreeNode: SortTree, fn: (node: TSortNode) => void) => { - if (sortTreeNode.node) fn(sortTreeNode.node); + if (sortTreeNode.node) { + fn(sortTreeNode.node); + } sortTreeNode.children.forEach((e) => { preOrderTraverse(e, fn); }); diff --git a/packages/admin/admin/src/stack/Switch.tsx b/packages/admin/admin/src/stack/Switch.tsx index 3dc4c7a7290..53911e2e7ff 100644 --- a/packages/admin/admin/src/stack/Switch.tsx +++ b/packages/admin/admin/src/stack/Switch.tsx @@ -110,7 +110,9 @@ const StackSwitchInner: ForwardRefRenderFunction { - if (!pageName) return true; + if (!pageName) { + return true; + } let initialPage = props.initialPage; if (!initialPage) { @@ -138,8 +140,12 @@ const StackSwitchInner: ForwardRefRenderFunction {Children.map(props.children, (page: ReactElement) => { - if (isInitialPage(page.props.name)) return null; // don't render initial Page + if (isInitialPage(page.props.name)) { + return null; + } // don't render initial Page const path = `${removeTrailingSlash(subRoutePrefix)}/:id/${page.props.name}`; if (matchPath(location.pathname, { path })) { routeMatched = true; @@ -200,7 +210,9 @@ const StackSwitchInner: ForwardRefRenderFunction {(routeProps: RouteChildrenProps) => { - if (!routeProps.match) return null; + if (!routeProps.match) { + return null; + } return renderRoute(page, routeProps); }} @@ -209,7 +221,9 @@ const StackSwitchInner: ForwardRefRenderFunction {(routeProps: RouteChildrenProps) => { - if (!routeProps.match) return null; + if (!routeProps.match) { + return null; + } // now render initial page (as last route so it's a fallback) let initialPage: ReactElement | null = null; Children.forEach(props.children, (page: ReactElement) => { diff --git a/packages/admin/admin/src/stack/SwitchMeta.tsx b/packages/admin/admin/src/stack/SwitchMeta.tsx index 11250dda99b..8518ae12c36 100644 --- a/packages/admin/admin/src/stack/SwitchMeta.tsx +++ b/packages/admin/admin/src/stack/SwitchMeta.tsx @@ -28,7 +28,9 @@ export class StackSwitchMeta extends Component { } public componentDidMount() { - if (!this.context) throw new Error("Switch must be wrapped by a Stack"); + if (!this.context) { + throw new Error("Switch must be wrapped by a Stack"); + } this.context.addSwitchMeta(this.props.id, { parentId: this.parentId, activePage: this.props.activePage, @@ -37,7 +39,9 @@ export class StackSwitchMeta extends Component { } public componentDidUpdate(prevProps: IProps) { - if (!this.context) throw new Error("Switch must be wrapped by a Stack"); + if (!this.context) { + throw new Error("Switch must be wrapped by a Stack"); + } if (this.props.activePage !== prevProps.activePage || this.props.isInitialPageActive !== prevProps.isInitialPageActive) { this.context.addSwitchMeta(this.props.id, { parentId: this.parentId, @@ -48,7 +52,9 @@ export class StackSwitchMeta extends Component { } public componentWillUnmount() { - if (!this.context) throw new Error("Switch must be wrapped by a Stack"); + if (!this.context) { + throw new Error("Switch must be wrapped by a Stack"); + } this.context.removeSwitchMeta(this.props.id); } } diff --git a/packages/admin/admin/src/stack/breadcrumbs/StackBreadcrumbs.tsx b/packages/admin/admin/src/stack/breadcrumbs/StackBreadcrumbs.tsx index a05b68384b4..fea25cd0648 100644 --- a/packages/admin/admin/src/stack/breadcrumbs/StackBreadcrumbs.tsx +++ b/packages/admin/admin/src/stack/breadcrumbs/StackBreadcrumbs.tsx @@ -116,7 +116,9 @@ export function StackBreadcrumbs(inProps: StackBreadcrumbsProps) { const backButtonUrl = breadcrumbItems.length > 1 ? breadcrumbItems[breadcrumbItems.length - 2].url : undefined; const itemsToRender = useItemsToRender(breadcrumbItems, containerWidth ?? 0, itemWidths, overflowLinkText, backButtonUrl, slotProps); - if (!breadcrumbItems) return null; + if (!breadcrumbItems) { + return null; + } return ( diff --git a/packages/admin/admin/src/stack/breadcrumbs/utils.tsx b/packages/admin/admin/src/stack/breadcrumbs/utils.tsx index a41efaf16a3..48402b3a2f5 100644 --- a/packages/admin/admin/src/stack/breadcrumbs/utils.tsx +++ b/packages/admin/admin/src/stack/breadcrumbs/utils.tsx @@ -64,7 +64,9 @@ export const useItemsToRender = ( ): ReactNode[] => { const numberOfItemsToBeHidden = useNumberOfItemsToBeHidden(items, containerWidth, Boolean(backButtonUrl), itemWidths); - if (!items.length) return []; + if (!items.length) { + return []; + } const renderAllItemsToAllowCalculatingWidths = !itemWidths?.length; diff --git a/packages/admin/admin/src/table/DeleteButton.tsx b/packages/admin/admin/src/table/DeleteButton.tsx index 9932610f59b..549744af2d4 100644 --- a/packages/admin/admin/src/table/DeleteButton.tsx +++ b/packages/admin/admin/src/table/DeleteButton.tsx @@ -31,7 +31,9 @@ export class TableDeleteButton extends Component { return ( {(deleteBrand, { loading }) => { - if (loading) return ; + if (loading) { + return ; + } const onClick = this.handleDeleteClick.bind(this, deleteBrand); diff --git a/packages/admin/admin/src/table/Table.tsx b/packages/admin/admin/src/table/Table.tsx index b666fe8d48c..e658fb01684 100644 --- a/packages/admin/admin/src/table/Table.tsx +++ b/packages/admin/admin/src/table/Table.tsx @@ -41,13 +41,17 @@ export interface ITableHeadColumnsProps { */ export function TableHeadColumns({ columns, sortApi }: ITableHeadColumnsProps) { const handleSortClick = (name: string, ev: MouseEvent) => { - if (sortApi) sortApi.changeSort(name); + if (sortApi) { + sortApi.changeSort(name); + } }; return ( <> {columns.map((column: any, colIndex: number) => { - if (!isVisible(VisibleType.Browser, column.visible)) return null; + if (!isVisible(VisibleType.Browser, column.visible)) { + return null; + } const { name, header, sortable, headerProps } = column; return ( @@ -84,7 +88,9 @@ export function TableColumns({ row, columns }: ITableColumnsP return ( <> {columns.map((column: any, colIndex: number) => { - if (!isVisible(VisibleType.Browser, column.visible)) return null; + if (!isVisible(VisibleType.Browser, column.visible)) { + return null; + } return ( {column.render ? column.render(row) : safeColumnGet(row, column.name)} diff --git a/packages/admin/admin/src/table/TableLocalChanges.tsx b/packages/admin/admin/src/table/TableLocalChanges.tsx index 66063366a71..c5aba5bbc20 100644 --- a/packages/admin/admin/src/table/TableLocalChanges.tsx +++ b/packages/admin/admin/src/table/TableLocalChanges.tsx @@ -123,7 +123,9 @@ export class TableLocalChanges private setLocalDataChange(id: string, column: K, value: TData[K]) { const changes = { ...this.state.changes }; - if (!changes[id]) changes[id] = {}; + if (!changes[id]) { + changes[id] = {}; + } this.props.data.find((i) => i.id === id); const row = this.props.data.find((i) => i.id === id); diff --git a/packages/admin/admin/src/table/TableQuery.tsx b/packages/admin/admin/src/table/TableQuery.tsx index d67f8e5461e..822e4c59537 100644 --- a/packages/admin/admin/src/table/TableQuery.tsx +++ b/packages/admin/admin/src/table/TableQuery.tsx @@ -14,7 +14,9 @@ import { type ITableQueryApi, TableQueryContext } from "./TableQueryContext"; */ export const parseIdFromIri = (iri: string) => { const m = iri.match(/\/(\d+)/); - if (!m) return null; + if (!m) { + return null; + } return m[1]; }; diff --git a/packages/admin/admin/src/table/safeColumnGet.ts b/packages/admin/admin/src/table/safeColumnGet.ts index 91674fb21e3..61efbeed51e 100644 --- a/packages/admin/admin/src/table/safeColumnGet.ts +++ b/packages/admin/admin/src/table/safeColumnGet.ts @@ -1,9 +1,13 @@ export const safeColumnGet = (row: any, path: string): string | number | null => { const splitPath = path.split("."); const nextRow = row[splitPath[0]]; - if (!nextRow) return null; + if (!nextRow) { + return null; + } - if (splitPath.length === 1) return nextRow; + if (splitPath.length === 1) { + return nextRow; + } const remainingPath = splitPath.slice(1).join("."); return safeColumnGet(nextRow, remainingPath); diff --git a/packages/admin/admin/src/table/usePersistedState.tsx b/packages/admin/admin/src/table/usePersistedState.tsx index 0157feb978e..4f33e045e6d 100644 --- a/packages/admin/admin/src/table/usePersistedState.tsx +++ b/packages/admin/admin/src/table/usePersistedState.tsx @@ -14,12 +14,16 @@ export function usePersistedState(defaultValue: T, options: IOptions = {}): [ const v = (stateId && allStates[stateId]) || defaultValue; const [state, setState] = useState(v); - if (stateId) delete allStates[stateId]; // delete from allStates as the component is mounted now and handles it's state itself + if (stateId) { + delete allStates[stateId]; + } // delete from allStates as the component is mounted now and handles it's state itself useEffect(() => { return () => { // on unmount we backup the current state into allStates - if (stateId) allStates[stateId] = state; + if (stateId) { + allStates[stateId] = state; + } }; }, [state, stateId]); return [state, setState]; diff --git a/packages/admin/admin/src/table/useTableQueryFilter.tsx b/packages/admin/admin/src/table/useTableQueryFilter.tsx index ff10a50b386..50035779972 100644 --- a/packages/admin/admin/src/table/useTableQueryFilter.tsx +++ b/packages/admin/admin/src/table/useTableQueryFilter.tsx @@ -37,7 +37,9 @@ export function useTableQueryFilter( } useEffect(() => { - if (!ref.current) return; + if (!ref.current) { + return; + } const unsubscribe = ref.current.subscribe( debounce( (formState) => { diff --git a/packages/admin/admin/src/table/useTableQueryPaging.tsx b/packages/admin/admin/src/table/useTableQueryPaging.tsx index 5165043371e..851dc65069c 100644 --- a/packages/admin/admin/src/table/useTableQueryPaging.tsx +++ b/packages/admin/admin/src/table/useTableQueryPaging.tsx @@ -43,7 +43,9 @@ export function useTableQueryPaging( function changePage(vars: T, p?: number, changePageOptions?: IChangePageOptions) { setVariables(vars); - if (p) setPage(p); + if (p) { + setPage(p); + } if (tableRef && tableRef.current && !changePageOptions?.noScrollToTop) { tableRef.current.scrollIntoView(); } diff --git a/packages/admin/admin/src/utils/useObservedWidth.tsx b/packages/admin/admin/src/utils/useObservedWidth.tsx index ecfb7fcc420..23fa01e28ef 100644 --- a/packages/admin/admin/src/utils/useObservedWidth.tsx +++ b/packages/admin/admin/src/utils/useObservedWidth.tsx @@ -7,14 +7,18 @@ export const useObservedWidth = (ref: RefObject): number => const elementObserver = useMemo(() => { return new ResizeObserver(() => { debounce(() => { - if (!ref.current) return; + if (!ref.current) { + return; + } setContainerWidth(ref.current.clientWidth); }, 500)(); }); }, [ref]); useEffect(() => { - if (!ref.current) return; + if (!ref.current) { + return; + } const element = ref.current; elementObserver.observe(element); diff --git a/packages/admin/brevo-admin/src/brevoConfiguration/BrevoConfigForm.tsx b/packages/admin/brevo-admin/src/brevoConfiguration/BrevoConfigForm.tsx index 317dffab575..4abfe7ceaed 100644 --- a/packages/admin/brevo-admin/src/brevoConfiguration/BrevoConfigForm.tsx +++ b/packages/admin/brevo-admin/src/brevoConfiguration/BrevoConfigForm.tsx @@ -214,7 +214,9 @@ export function BrevoConfigForm({ scope }: FormProps): ReactElement { } }; - if (error || senderError || doubleOptInTemplatesError) throw error ?? senderError ?? doubleOptInTemplatesError; + if (error || senderError || doubleOptInTemplatesError) { + throw error ?? senderError ?? doubleOptInTemplatesError; + } if (loading || senderLoading || doubleOptInTemplatesLoading) { return ; diff --git a/packages/admin/brevo-admin/src/brevoContacts/BrevoContactsGrid.tsx b/packages/admin/brevo-admin/src/brevoContacts/BrevoContactsGrid.tsx index f7b213b9396..bb92581c079 100644 --- a/packages/admin/brevo-admin/src/brevoContacts/BrevoContactsGrid.tsx +++ b/packages/admin/brevo-admin/src/brevoContacts/BrevoContactsGrid.tsx @@ -211,7 +211,9 @@ export function BrevoContactsGrid({ }); const rowCount = useBufferedRowCount(data?.brevoContacts.totalCount); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.brevoContacts.nodes ?? []; return ( diff --git a/packages/admin/brevo-admin/src/brevoTestContacts/BrevoTestContactsGrid.tsx b/packages/admin/brevo-admin/src/brevoTestContacts/BrevoTestContactsGrid.tsx index 9fc715975ca..cb3637e75ce 100644 --- a/packages/admin/brevo-admin/src/brevoTestContacts/BrevoTestContactsGrid.tsx +++ b/packages/admin/brevo-admin/src/brevoTestContacts/BrevoTestContactsGrid.tsx @@ -179,7 +179,9 @@ export function BrevoTestContactsGrid({ }); const rowCount = useBufferedRowCount(data?.brevoTestContacts.totalCount); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.brevoTestContacts.nodes ?? []; const totalCount = data?.brevoTestContacts.totalCount || 0; diff --git a/packages/admin/brevo-admin/src/brevoTestContacts/form/BrevoTestContactForm.tsx b/packages/admin/brevo-admin/src/brevoTestContacts/form/BrevoTestContactForm.tsx index 0116dd06361..d0595682251 100644 --- a/packages/admin/brevo-admin/src/brevoTestContacts/form/BrevoTestContactForm.tsx +++ b/packages/admin/brevo-admin/src/brevoTestContacts/form/BrevoTestContactForm.tsx @@ -159,7 +159,9 @@ export function BrevoTestContactForm({ id, scope, input2State, additionalFormFie } }; - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; diff --git a/packages/admin/brevo-admin/src/configVerification/ConfigVerification.tsx b/packages/admin/brevo-admin/src/configVerification/ConfigVerification.tsx index 1a6ab8a7743..495bea8d4a1 100644 --- a/packages/admin/brevo-admin/src/configVerification/ConfigVerification.tsx +++ b/packages/admin/brevo-admin/src/configVerification/ConfigVerification.tsx @@ -17,7 +17,9 @@ export function ConfigVerification({ scope, children }: PropsWithChildren; diff --git a/packages/admin/brevo-admin/src/emailCampaigns/EmailCampaignsGrid.tsx b/packages/admin/brevo-admin/src/emailCampaigns/EmailCampaignsGrid.tsx index 1f7ac71e7cb..393d8c21382 100644 --- a/packages/admin/brevo-admin/src/emailCampaigns/EmailCampaignsGrid.tsx +++ b/packages/admin/brevo-admin/src/emailCampaigns/EmailCampaignsGrid.tsx @@ -246,7 +246,9 @@ export function EmailCampaignsGrid({ }, }); const rowCount = useBufferedRowCount(data?.brevoEmailCampaigns.totalCount); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.brevoEmailCampaigns.nodes ?? []; return ( diff --git a/packages/admin/brevo-admin/src/emailCampaigns/form/EmailCampaignForm.tsx b/packages/admin/brevo-admin/src/emailCampaigns/form/EmailCampaignForm.tsx index c2fde9cf5f3..00909e67504 100644 --- a/packages/admin/brevo-admin/src/emailCampaigns/form/EmailCampaignForm.tsx +++ b/packages/admin/brevo-admin/src/emailCampaigns/form/EmailCampaignForm.tsx @@ -139,7 +139,9 @@ export function EmailCampaignForm({ id, EmailCampaignContentBlock, scope }: Form saveConflict, mode, validate: async () => { - if (!state) return false; + if (!state) { + return false; + } const validateBlocks = await parallelAsyncEvery( Object.entries(rootBlocks) as Array<[keyof typeof rootBlocks, BlockInterface]>, @@ -164,7 +166,9 @@ export function EmailCampaignForm({ id, EmailCampaignContentBlock, scope }: Form throw new Error("Conflicts detected"); } - if (!output) throw new Error("Output is required"); + if (!output) { + throw new Error("Output is required"); + } if (mode === "edit") { if (!id) { @@ -199,7 +203,9 @@ export function EmailCampaignForm({ id, EmailCampaignContentBlock, scope }: Form return null; } - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; diff --git a/packages/admin/brevo-admin/src/emailCampaigns/form/SendManagerFields.tsx b/packages/admin/brevo-admin/src/emailCampaigns/form/SendManagerFields.tsx index 4f5a784d887..7e127722c4a 100644 --- a/packages/admin/brevo-admin/src/emailCampaigns/form/SendManagerFields.tsx +++ b/packages/admin/brevo-admin/src/emailCampaigns/form/SendManagerFields.tsx @@ -25,7 +25,9 @@ interface SendManagerFieldsProps { } const validateScheduledAt = (value: Date, now: Date) => { - if (!value) return; + if (!value) { + return; + } if (value < now) { return ( diff --git a/packages/admin/brevo-admin/src/emailCampaigns/form/SendManagerWrapper.tsx b/packages/admin/brevo-admin/src/emailCampaigns/form/SendManagerWrapper.tsx index cbca4d7d2ac..fb70abb595f 100644 --- a/packages/admin/brevo-admin/src/emailCampaigns/form/SendManagerWrapper.tsx +++ b/packages/admin/brevo-admin/src/emailCampaigns/form/SendManagerWrapper.tsx @@ -26,7 +26,9 @@ export const SendManagerWrapper = ({ scope, children }: PropsWithChildren; } - if (error) throw error; + if (error) { + throw error; + } if (brevoConfig?.isBrevoConfigDefined === false) { return ( diff --git a/packages/admin/brevo-admin/src/emailCampaigns/view/EmailCampaignView.tsx b/packages/admin/brevo-admin/src/emailCampaigns/view/EmailCampaignView.tsx index df60d1b33d0..1341815bcfd 100644 --- a/packages/admin/brevo-admin/src/emailCampaigns/view/EmailCampaignView.tsx +++ b/packages/admin/brevo-admin/src/emailCampaigns/view/EmailCampaignView.tsx @@ -35,7 +35,9 @@ export function EmailCampaignView({ id, EmailCampaignContentBlock }: EmailCampai variables: { id }, }); - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; diff --git a/packages/admin/brevo-admin/src/targetGroups/TargetGroupForm.tsx b/packages/admin/brevo-admin/src/targetGroups/TargetGroupForm.tsx index 5a9c037e211..a55406c4cc5 100644 --- a/packages/admin/brevo-admin/src/targetGroups/TargetGroupForm.tsx +++ b/packages/admin/brevo-admin/src/targetGroups/TargetGroupForm.tsx @@ -109,7 +109,9 @@ export function TargetGroupForm({ id, scope, additionalFormFields, input2State, }); }; - if (error) throw error; + if (error) { + throw error; + } if (loading) { return ; diff --git a/packages/admin/brevo-admin/src/targetGroups/TargetGroupsGrid.tsx b/packages/admin/brevo-admin/src/targetGroups/TargetGroupsGrid.tsx index 4da4c0ad295..476b1fcd05f 100644 --- a/packages/admin/brevo-admin/src/targetGroups/TargetGroupsGrid.tsx +++ b/packages/admin/brevo-admin/src/targetGroups/TargetGroupsGrid.tsx @@ -212,7 +212,9 @@ export function TargetGroupsGrid({ filterable: false, type: "actions", renderCell: ({ row }) => { - if (row.isMainList) return; + if (row.isMainList) { + return; + } return ( <> @@ -260,7 +262,9 @@ export function TargetGroupsGrid({ }, }); const rowCount = useBufferedRowCount(data?.brevoTargetGroups.totalCount); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.brevoTargetGroups.nodes ?? []; return ( diff --git a/packages/admin/brevo-admin/src/targetGroups/addContacts/AddContactsGridSelect.tsx b/packages/admin/brevo-admin/src/targetGroups/addContacts/AddContactsGridSelect.tsx index ab2f24115c8..d06a4a7cbc0 100644 --- a/packages/admin/brevo-admin/src/targetGroups/addContacts/AddContactsGridSelect.tsx +++ b/packages/admin/brevo-admin/src/targetGroups/addContacts/AddContactsGridSelect.tsx @@ -154,7 +154,9 @@ export function AddContactsGridSelect({ id, scope, assignedContactsTargetGroupBr }); const onDeleteClick = (contactId: number) => { - if (!id) return; + if (!id) { + return; + } removeContacts({ variables: { id, input: { brevoContactId: contactId } } }); }; @@ -247,7 +249,9 @@ export function AddContactsGridSelect({ id, scope, assignedContactsTargetGroupBr const assignedContactsRowCount = useBufferedRowCount(assignedContactsData?.manuallyAssignedBrevoContacts.totalCount); const assignableContactsRowCount = useBufferedRowCount(assignableContactsData?.brevoContacts.totalCount); - if (assignedContactsError || assignableContactsError) throw assignedContactsError ?? assignableContactsError; + if (assignedContactsError || assignableContactsError) { + throw assignedContactsError ?? assignableContactsError; + } return ( <> diff --git a/packages/admin/brevo-admin/src/targetGroups/allAssignedContacts/AllAssignedContactsGrid.tsx b/packages/admin/brevo-admin/src/targetGroups/allAssignedContacts/AllAssignedContactsGrid.tsx index a131cf968d1..9409dc38b49 100644 --- a/packages/admin/brevo-admin/src/targetGroups/allAssignedContacts/AllAssignedContactsGrid.tsx +++ b/packages/admin/brevo-admin/src/targetGroups/allAssignedContacts/AllAssignedContactsGrid.tsx @@ -94,7 +94,9 @@ export function AllAssignedContactsGrid({ id, scope, brevoId }: AllAssignedConta const allAssignedContactsRowCount = useBufferedRowCount(allAssignedContactsData?.brevoContacts.totalCount); - if (allAssignedContactsError) throw allAssignedContactsError; + if (allAssignedContactsError) { + throw allAssignedContactsError; + } return ( { const contents = []; - if (state.damFile?.altText) contents.push(state.damFile.altText); - if (state.damFile?.title) contents.push(state.damFile.title); + if (state.damFile?.altText) { + contents.push(state.damFile.altText); + } + if (state.damFile?.title) { + contents.push(state.damFile.title); + } return contents; }, diff --git a/packages/admin/cms-admin/src/blocks/PixelImageBlock.tsx b/packages/admin/cms-admin/src/blocks/PixelImageBlock.tsx index 1900bb6e176..b2f3a5007b2 100644 --- a/packages/admin/cms-admin/src/blocks/PixelImageBlock.tsx +++ b/packages/admin/cms-admin/src/blocks/PixelImageBlock.tsx @@ -24,7 +24,9 @@ function createPreviewUrl( { damFile, cropArea }: ImageBlockState, { apiUrl, damBasePath, resize }: { apiUrl: string; resize?: { width: number; height: number }; damBasePath: string }, ): string { - if (!damFile || !damFile.image) return ""; + if (!damFile || !damFile.image) { + return ""; + } const urlTemplateRoute = `/${damBasePath}/images/preview/$fileId/crop:$crop/resize:$resizeWidth:$resizeHeight/$fileName`; const imageCropArea = cropArea ? cropArea : damFile.image.cropArea; @@ -234,8 +236,12 @@ export const PixelImageBlock: BlockInterface { const contents = []; - if (state.damFile?.altText) contents.push(state.damFile.altText); - if (state.damFile?.title) contents.push(state.damFile.title); + if (state.damFile?.altText) { + contents.push(state.damFile.altText); + } + if (state.damFile?.title) { + contents.push(state.damFile.title); + } return contents; }, diff --git a/packages/admin/cms-admin/src/blocks/SvgImageBlock.tsx b/packages/admin/cms-admin/src/blocks/SvgImageBlock.tsx index ec61c9ee5bc..6691eaf1e43 100644 --- a/packages/admin/cms-admin/src/blocks/SvgImageBlock.tsx +++ b/packages/admin/cms-admin/src/blocks/SvgImageBlock.tsx @@ -16,7 +16,9 @@ import { BlockCategory, type BlockDependency, type BlockInterface } from "./type type SvgImageBlockState = Omit; function createPreviewUrl({ damFile }: SvgImageBlockState, { apiUrl }: { apiUrl: string }): string { - if (!damFile) return ""; + if (!damFile) { + return ""; + } return `${apiUrl}${damFile.fileUrl}`; } @@ -154,8 +156,12 @@ export const SvgImageBlock: BlockInterface { const contents = []; - if (state.damFile?.altText) contents.push(state.damFile.altText); - if (state.damFile?.title) contents.push(state.damFile.title); + if (state.damFile?.altText) { + contents.push(state.damFile.altText); + } + if (state.damFile?.title) { + contents.push(state.damFile.title); + } return contents; }, diff --git a/packages/admin/cms-admin/src/blocks/VimeoVideoBlock.tsx b/packages/admin/cms-admin/src/blocks/VimeoVideoBlock.tsx index 1e6675e8299..f0f9f1df526 100644 --- a/packages/admin/cms-admin/src/blocks/VimeoVideoBlock.tsx +++ b/packages/admin/cms-admin/src/blocks/VimeoVideoBlock.tsx @@ -26,7 +26,9 @@ const isValidVimeoIdentifier = (value: string) => { }; const validateIdentifier = (value?: string) => { - if (!value) return undefined; + if (!value) { + return undefined; + } return value && isValidVimeoIdentifier(value) ? undefined : ( @@ -102,8 +104,12 @@ export const VimeoVideoBlock: BlockInterface { const contents = []; - if (state.previewImage.damFile?.altText) contents.push(state.previewImage.damFile.altText); - if (state.previewImage.damFile?.title) contents.push(state.previewImage.damFile.title); + if (state.previewImage.damFile?.altText) { + contents.push(state.previewImage.damFile.altText); + } + if (state.previewImage.damFile?.title) { + contents.push(state.previewImage.damFile.title); + } return contents; }, diff --git a/packages/admin/cms-admin/src/blocks/YouTubeVideoBlock.tsx b/packages/admin/cms-admin/src/blocks/YouTubeVideoBlock.tsx index 69d0b81d255..2b9c260ec2c 100644 --- a/packages/admin/cms-admin/src/blocks/YouTubeVideoBlock.tsx +++ b/packages/admin/cms-admin/src/blocks/YouTubeVideoBlock.tsx @@ -26,7 +26,9 @@ const isValidYouTubeIdentifier = (value: string) => { }; const validateIdentifier = (value?: string) => { - if (!value) return undefined; + if (!value) { + return undefined; + } return value && isValidYouTubeIdentifier(value) ? undefined : ( @@ -100,8 +102,12 @@ export const YouTubeVideoBlock: BlockInterface { const contents = []; - if (state.previewImage.damFile?.altText) contents.push(state.previewImage.damFile.altText); - if (state.previewImage.damFile?.title) contents.push(state.previewImage.damFile.title); + if (state.previewImage.damFile?.altText) { + contents.push(state.previewImage.damFile.altText); + } + if (state.previewImage.damFile?.title) { + contents.push(state.previewImage.damFile.title); + } return contents; }, diff --git a/packages/admin/cms-admin/src/blocks/common/blockRow/BlockRow.tsx b/packages/admin/cms-admin/src/blocks/common/blockRow/BlockRow.tsx index 5ab1913dc68..90c5f3c6da4 100644 --- a/packages/admin/cms-admin/src/blocks/common/blockRow/BlockRow.tsx +++ b/packages/admin/cms-admin/src/blocks/common/blockRow/BlockRow.tsx @@ -185,7 +185,9 @@ export function BlockRow(props: BlockRowProps): JSX.Element { { - if (props.onContentClick) props.onContentClick(); + if (props.onContentClick) { + props.onContentClick(); + } }} /> diff --git a/packages/admin/cms-admin/src/blocks/factories/createCompositeBlock.tsx b/packages/admin/cms-admin/src/blocks/factories/createCompositeBlock.tsx index 1a44f2b75ce..c6aeda1bbbd 100644 --- a/packages/admin/cms-admin/src/blocks/factories/createCompositeBlock.tsx +++ b/packages/admin/cms-admin/src/blocks/factories/createCompositeBlock.tsx @@ -190,7 +190,9 @@ export const createCompositeBlock = BlockInterface, ListBlockState, ListBlockOutput>, ): BlockInterface, ListBlockState, ListBlockOutput> { const useAdminComponent = createUseAdminComponent({ block, maxVisibleBlocks, additionalItemFields }); - if (minVisibleBlocks && maxVisibleBlocks && minVisibleBlocks > maxVisibleBlocks) + if (minVisibleBlocks && maxVisibleBlocks && minVisibleBlocks > maxVisibleBlocks) { throw new Error( `${name}: The property 'minVisibleBlocks' (value: ${minVisibleBlocks}) must be equal to or smaller than 'maxVisibleBlocks' (value: ${maxVisibleBlocks})`, ); + } const getDefaultListEntry = () => ({ key: uuid(), diff --git a/packages/admin/cms-admin/src/dam/blocks/DamFileDownloadLinkBlock.tsx b/packages/admin/cms-admin/src/dam/blocks/DamFileDownloadLinkBlock.tsx index aafe093839c..c73469f2c9c 100644 --- a/packages/admin/cms-admin/src/dam/blocks/DamFileDownloadLinkBlock.tsx +++ b/packages/admin/cms-admin/src/dam/blocks/DamFileDownloadLinkBlock.tsx @@ -142,8 +142,12 @@ export const DamFileDownloadLinkBlock: BlockInterface { const contents = []; - if (state.file?.altText) contents.push(state.file.altText); - if (state.file?.title) contents.push(state.file.title); + if (state.file?.altText) { + contents.push(state.file.altText); + } + if (state.file?.title) { + contents.push(state.file.title); + } return contents; }, diff --git a/packages/admin/cms-admin/src/dam/mediaAlternatives/MediaAlternativesGrid.tsx b/packages/admin/cms-admin/src/dam/mediaAlternatives/MediaAlternativesGrid.tsx index 939b6cba8f9..01ca9e719e8 100644 --- a/packages/admin/cms-admin/src/dam/mediaAlternatives/MediaAlternativesGrid.tsx +++ b/packages/admin/cms-admin/src/dam/mediaAlternatives/MediaAlternativesGrid.tsx @@ -183,7 +183,9 @@ export function MediaAlternativesGrid({ file, type, direction }: MediaAlternativ }, }); const rowCount = useBufferedRowCount(data?.damMediaAlternatives.totalCount); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.damMediaAlternatives.nodes ?? []; return ( diff --git a/packages/admin/cms-admin/src/dependencies/DependencyList.tsx b/packages/admin/cms-admin/src/dependencies/DependencyList.tsx index 20887ee8337..1cf451f28ea 100644 --- a/packages/admin/cms-admin/src/dependencies/DependencyList.tsx +++ b/packages/admin/cms-admin/src/dependencies/DependencyList.tsx @@ -175,7 +175,9 @@ export const DependencyList = ({ query, variables }: DependencyListProps) => { }, }); - if (error) throw error; + if (error) { + throw error; + } if (!loading && ((data?.item.dependencies && data?.item.dependents) || (!data?.item.dependents && !data?.item.dependencies))) { throw new Error("Either dependencies or dependents must be defined, but not both."); diff --git a/packages/admin/cms-admin/src/form/file/FileField.tsx b/packages/admin/cms-admin/src/form/file/FileField.tsx index ec8b5a01e96..179297001bc 100644 --- a/packages/admin/cms-admin/src/form/file/FileField.tsx +++ b/packages/admin/cms-admin/src/form/file/FileField.tsx @@ -100,7 +100,9 @@ const FileField = ({ buttonText, input, allowedMimetypes, preview, menuActions } )} {menuActions && menuActions.map((item, index) => { - if (!item) return null; + if (!item) { + return null; + } if (isValidElement(item)) { return item; diff --git a/packages/admin/cms-admin/src/form/queryUpdatedAt.tsx b/packages/admin/cms-admin/src/form/queryUpdatedAt.tsx index 9c037b7c387..6d7e0299acc 100644 --- a/packages/admin/cms-admin/src/form/queryUpdatedAt.tsx +++ b/packages/admin/cms-admin/src/form/queryUpdatedAt.tsx @@ -1,7 +1,9 @@ import { type ApolloClient, gql } from "@apollo/client"; export async function queryUpdatedAt(client: ApolloClient, rootQueryName: string, id: string | undefined): Promise { - if (!id) return undefined; + if (!id) { + return undefined; + } const query = gql` query ($id: ID!) { diff --git a/packages/admin/cms-admin/src/pages/pageTree/useCopyPastePages/sendPages.tsx b/packages/admin/cms-admin/src/pages/pageTree/useCopyPastePages/sendPages.tsx index 7d22383cf1e..553798294e5 100644 --- a/packages/admin/cms-admin/src/pages/pageTree/useCopyPastePages/sendPages.tsx +++ b/packages/admin/cms-admin/src/pages/pageTree/useCopyPastePages/sendPages.tsx @@ -282,7 +282,9 @@ export async function sendPages( } if (fileIdsToCopyDirectly.length > 0) { - if (!inboxFolderIdForCopiedFiles) throw new Error("inbox folder must be created in step 0 when files need to be copied"); + if (!inboxFolderIdForCopiedFiles) { + throw new Error("inbox folder must be created in step 0 when files need to be copied"); + } const { data: copiedFiles } = await client.mutate({ mutation: copyFilesToScopeMutation, variables: { fileIds: fileIdsToCopyDirectly, inboxFolderId: inboxFolderIdForCopiedFiles }, diff --git a/packages/admin/cms-admin/src/pages/useSaveConflictQuery.tsx b/packages/admin/cms-admin/src/pages/useSaveConflictQuery.tsx index c247d74eec0..ef33202918e 100644 --- a/packages/admin/cms-admin/src/pages/useSaveConflictQuery.tsx +++ b/packages/admin/cms-admin/src/pages/useSaveConflictQuery.tsx @@ -20,7 +20,9 @@ export function useSaveConflictQuery { - if (skip) return false; + if (skip) { + return false; + } try { const { data, error } = await client.query({ query, @@ -28,7 +30,9 @@ export function useSaveConflictQuery { if (iFrameBridge.iFrameReady && data?.blockPreviewJwt) { diff --git a/packages/admin/cms-admin/src/preview/site/SitePreview.tsx b/packages/admin/cms-admin/src/preview/site/SitePreview.tsx index 9dc2eb69db1..fbc260586b7 100644 --- a/packages/admin/cms-admin/src/preview/site/SitePreview.tsx +++ b/packages/admin/cms-admin/src/preview/site/SitePreview.tsx @@ -60,7 +60,9 @@ function SitePreview({ resolvePath, logo = v = resolvePath ? resolvePath(initialPath, scope) : initialPath; } const url = new URL(v, siteConfig.url); // prevents phishing attacks (exception see next line) - if (!url.pathname.startsWith("/") || url.pathname.startsWith("//")) return "/"; + if (!url.pathname.startsWith("/") || url.pathname.startsWith("//")) { + return "/"; + } return url.pathname; }); @@ -133,8 +135,12 @@ function SitePreview({ resolvePath, logo = pollInterval: 1000 * 60 * 60 * 24, // due to expiration time of jwt }, ); - if (error) throw new Error(error.message); - if (!data) return
; + if (error) { + throw new Error(error.message); + } + if (!data) { + return
; + } const initialPageUrl = `${siteConfig.sitePreviewApiUrl}?${new URLSearchParams({ jwt: data.sitePreviewJwt }).toString()}`; diff --git a/packages/admin/cms-admin/src/userPermissions/UserGrid.tsx b/packages/admin/cms-admin/src/userPermissions/UserGrid.tsx index 9b6885da399..d1f25512399 100644 --- a/packages/admin/cms-admin/src/userPermissions/UserGrid.tsx +++ b/packages/admin/cms-admin/src/userPermissions/UserGrid.tsx @@ -225,7 +225,9 @@ export const UserPermissionsUserGrid = ({ toolbarAction, rowAction, actionsColum ); const rowCount = useBufferedRowCount(data?.users.totalCount); - if (error) throw new Error(error.message); + if (error) { + throw new Error(error.message); + } return ( diff --git a/packages/admin/cms-admin/src/userPermissions/hooks/currentUser.tsx b/packages/admin/cms-admin/src/userPermissions/hooks/currentUser.tsx index 23e6fb59702..d4d03b1f6b1 100644 --- a/packages/admin/cms-admin/src/userPermissions/hooks/currentUser.tsx +++ b/packages/admin/cms-admin/src/userPermissions/hooks/currentUser.tsx @@ -70,7 +70,9 @@ export const CurrentUserProvider = ({ isAllowed, children }: PropsWithChildren<{ ); } - if (!data) return ; + if (!data) { + return ; + } const context: CurrentUserContext = { currentUser: { @@ -90,7 +92,9 @@ export const CurrentUserProvider = ({ isAllowed, children }: PropsWithChildren<{ isAllowed: isAllowed ?? ((user: CurrentUserInterface, permission: Permission, contentScope?: ContentScope) => { - if (user.email === undefined) return false; + if (user.email === undefined) { + return false; + } return user.permissions.some( (p) => p.permission === permission && @@ -104,13 +108,17 @@ export const CurrentUserProvider = ({ isAllowed, children }: PropsWithChildren<{ export function useCurrentUser(): CurrentUserInterface { const ret = useContext(CurrentUserContext); - if (!ret || !ret.currentUser) throw new Error("CurrentUser not found. Make sure CurrentUserContext exists."); + if (!ret || !ret.currentUser) { + throw new Error("CurrentUser not found. Make sure CurrentUserContext exists."); + } return ret.currentUser; } export function useUserPermissionCheck(): (permission: Permission) => boolean { const context = useContext(CurrentUserContext); - if (!context) throw new Error("CurrentUser not found. Make sure CurrentUserContext exists."); + if (!context) { + throw new Error("CurrentUser not found. Make sure CurrentUserContext exists."); + } const contentScope = useContentScope(); return (permission) => context.isAllowed(context.currentUser, permission, contentScope.scope); } diff --git a/packages/admin/cms-admin/src/userPermissions/user/ImpersonationButtons.tsx b/packages/admin/cms-admin/src/userPermissions/user/ImpersonationButtons.tsx index 1ff7871c26b..263511099a9 100644 --- a/packages/admin/cms-admin/src/userPermissions/user/ImpersonationButtons.tsx +++ b/packages/admin/cms-admin/src/userPermissions/user/ImpersonationButtons.tsx @@ -26,7 +26,9 @@ export const StartImpersonationButton = ({ userId }: { userId: string }) => { location.href = "/"; }; - if (!isAllowed("impersonation")) return null; + if (!isAllowed("impersonation")) { + return null; + } if (currentUser.id !== userId && !currentUser.impersonated) { return ( diff --git a/packages/admin/cms-admin/src/userPermissions/user/permissions/ContentScopeGrid.tsx b/packages/admin/cms-admin/src/userPermissions/user/permissions/ContentScopeGrid.tsx index 84b3779f462..b10bfa1159c 100644 --- a/packages/admin/cms-admin/src/userPermissions/user/permissions/ContentScopeGrid.tsx +++ b/packages/admin/cms-admin/src/userPermissions/user/permissions/ContentScopeGrid.tsx @@ -66,7 +66,9 @@ export const ContentScopeGrid = ({ userId }: { userId: string }) => { }, ); - if (error) throw new Error(error.message); + if (error) { + throw new Error(error.message); + } if (!data) { return ; diff --git a/packages/admin/cms-admin/src/userPermissions/user/permissions/PermissionGrid.tsx b/packages/admin/cms-admin/src/userPermissions/user/permissions/PermissionGrid.tsx index 6bce3b11613..4291b3b4ef6 100644 --- a/packages/admin/cms-admin/src/userPermissions/user/permissions/PermissionGrid.tsx +++ b/packages/admin/cms-admin/src/userPermissions/user/permissions/PermissionGrid.tsx @@ -169,7 +169,9 @@ export const PermissionGrid = ({ userId }: { userId: string }) => { }, ]; - if (error) throw new Error(error.message); + if (error) { + throw new Error(error.message); + } const toolbarSlotProps: ToolbarProps = { toolbarAction: ( diff --git a/packages/admin/cms-admin/src/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.tsx b/packages/admin/cms-admin/src/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.tsx index 8865c4c6d8e..169aa0d9df1 100644 --- a/packages/admin/cms-admin/src/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.tsx +++ b/packages/admin/cms-admin/src/userPermissions/user/permissions/selectScopesDialogContent/SelectScopesDialogContent.tsx @@ -69,7 +69,9 @@ export const SelectScopesDialogContent: FunctionComponent; diff --git a/packages/admin/cms-admin/src/warnings/WarningActions.tsx b/packages/admin/cms-admin/src/warnings/WarningActions.tsx index 7e9aded1c8e..ad0fac75037 100644 --- a/packages/admin/cms-admin/src/warnings/WarningActions.tsx +++ b/packages/admin/cms-admin/src/warnings/WarningActions.tsx @@ -28,7 +28,9 @@ export function WarningActions({ sourceInfo, scope }: Props) { const dependencyObject = entityDependencyMap[sourceInfo.rootEntityName] as DependencyInterface | undefined; - if (!dependencyObject) return null; // to some warnings it cannot be linked to. When missing a dependency or for example a failing job cannot be resolved in the admin and therefore cannot have a link + if (!dependencyObject) { + return null; + } // to some warnings it cannot be linked to. When missing a dependency or for example a failing job cannot be resolved in the admin and therefore cannot have a link if (dependencyObject === undefined) { if (process.env.NODE_ENV === "development") { diff --git a/packages/admin/cms-admin/src/warnings/WarningsGrid.tsx b/packages/admin/cms-admin/src/warnings/WarningsGrid.tsx index 4615f87a6f8..aecb13468d3 100644 --- a/packages/admin/cms-admin/src/warnings/WarningsGrid.tsx +++ b/packages/admin/cms-admin/src/warnings/WarningsGrid.tsx @@ -221,7 +221,9 @@ export function WarningsGrid() { }, }); const rowCount = useBufferedRowCount(data?.warnings.totalCount); - if (error) throw error; + if (error) { + throw error; + } const rows = data?.warnings.nodes ?? []; return ( diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/deleted-at.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/deleted-at.spec.ts index 51b2e9fb109..b1a8facadd1 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/deleted-at.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/deleted-at.spec.ts @@ -44,7 +44,9 @@ describe("deletedAt soft delete", () => { it("resolver should contain soft delete logic and not remove logic", async () => { const file = formattedOut.find((file) => file.name === "test-entity.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } expect(file.content).toContain("testEntity.assign({ deletedAt: new Date() })"); expect(file.content).not.toContain("entityManager.remove(testEntity)"); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/filter-primary-key.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/filter-primary-key.spec.ts index 4db2744dbf1..32c05c0351c 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/filter-primary-key.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/filter-primary-key.spec.ts @@ -32,7 +32,9 @@ describe("filter primary key", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntity")); formattedOut = await formatGeneratedFiles(out); const foundFile = formattedOut.find((file) => file.name === "test-entity.resolver.ts"); - if (!foundFile) throw new Error("File not found"); + if (!foundFile) { + throw new Error("File not found"); + } }); afterEach(async () => { await orm.close(); @@ -40,7 +42,9 @@ describe("filter primary key", () => { it("filter for embedded field should exist", async () => { const file = formattedOut.find((file) => file.name === "dto/test-entity.filter.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-dedicated-resolver-arg.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-dedicated-resolver-arg.spec.ts index b4144c04b64..bf92e5f0c9a 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-dedicated-resolver-arg.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-dedicated-resolver-arg.spec.ts @@ -48,7 +48,9 @@ describe("GenerateCrud dedicatedResolverArg", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityProductVariant")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-product-variant.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); @@ -74,7 +76,9 @@ describe("GenerateCrud dedicatedResolverArg", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityProductVariant")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-product-variants.args.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); @@ -101,7 +105,9 @@ describe("GenerateCrud dedicatedResolverArg", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityProductVariant")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "test-entity-product-variant.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-embeddable.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-embeddable.spec.ts index 429187b3c64..b1c424ef3bb 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-embeddable.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-embeddable.spec.ts @@ -66,7 +66,9 @@ describe("GenerateCrudInputEmbedded", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithEmbedded")); formattedOut = await formatGeneratedFiles(out); const foundFile = formattedOut.find((file) => file.name === "test-entity-with-embedded.resolver.ts"); - if (!foundFile) throw new Error("File not found"); + if (!foundFile) { + throw new Error("File not found"); + } }); afterEach(async () => { await orm.close(); @@ -74,7 +76,9 @@ describe("GenerateCrudInputEmbedded", () => { it("filter for embedded field should exist", async () => { const file = formattedOut.find((file) => file.name === "dto/test-entity-with-embedded.filter.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } // console.log(file.content); const source = parseSource(file.content); @@ -102,7 +106,9 @@ describe("GenerateCrudInputEmbedded", () => { it("input for embedded field should exist", async () => { const file = formattedOut.find((file) => file.name === "dto/test-entity-with-embedded.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } // console.log(file.content); const source = parseSource(file.content); @@ -130,7 +136,9 @@ describe("GenerateCrudInputEmbedded", () => { it("sort for embedded field should exist", async () => { const file = formattedOut.find((file) => file.name === "dto/test-entity-with-embedded.sort.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } // console.log(file.content); const source = parseSource(file.content); @@ -163,7 +171,9 @@ describe("GenerateCrudInputEmbedded", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithoutEmbedded")); formattedOut = await formatGeneratedFiles(out); const foundFile = formattedOut.find((file) => file.name === "test-entity-without-embedded.resolver.ts"); - if (!foundFile) throw new Error("File not found"); + if (!foundFile) { + throw new Error("File not found"); + } }); afterEach(async () => { await orm.close(); @@ -171,7 +181,9 @@ describe("GenerateCrudInputEmbedded", () => { it("filter for embedded field should not exist", async () => { const file = formattedOut.find((file) => file.name === "dto/test-entity-without-embedded.filter.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } // console.log(file.content); const source = parseSource(file.content); @@ -197,7 +209,9 @@ describe("GenerateCrudInputEmbedded", () => { it("input for embedded field should not exist", async () => { const file = formattedOut.find((file) => file.name === "dto/test-entity-without-embedded.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } // console.log(file.content); const source = parseSource(file.content); @@ -224,7 +238,9 @@ describe("GenerateCrudInputEmbedded", () => { it("sort for embedded field should not exist", async () => { const file = formattedOut.find((file) => file.name === "dto/test-entity-without-embedded.sort.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } // console.log(file.content); const source = parseSource(file.content); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-array.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-array.spec.ts index 2ee49e71611..e9c0ea80bb1 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-array.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-array.spec.ts @@ -38,7 +38,9 @@ describe("GenerateCrudEnumArray", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntity")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); @@ -71,7 +73,9 @@ describe("GenerateCrudEnumArray", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntity")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity.filter.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); expect(classes.length).toBe(2); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-multi-use.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-multi-use.spec.ts index adf09ed7ee1..631be82ed37 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-multi-use.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-multi-use.spec.ts @@ -44,7 +44,9 @@ describe("GenerateCrudEnumMultiUse", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntity")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const imports: string[] = []; diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-optional.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-optional.spec.ts index 05d97653c29..42387883be0 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-optional.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-enum-optional.spec.ts @@ -38,7 +38,9 @@ describe("GenerateCrudEnumOptional", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntity")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-extend-entity.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-extend-entity.spec.ts index b968c26b1d5..926e11aa90c 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-extend-entity.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-extend-entity.spec.ts @@ -43,7 +43,9 @@ describe("GenerateCrudInputExtendEntity", () => { const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-timestamps.filter.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-position.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-position.spec.ts index 574bef50b4b..6c3faf1c6ad 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-position.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-position.spec.ts @@ -106,7 +106,9 @@ describe("GenerateCrudPosition", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithPositionField")); const file = out.find((file) => file.name == "test-entity-with-position-fields.service.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const formattedOut = await formatSource(file.content); const source = parseSource(formattedOut); @@ -142,7 +144,9 @@ describe("GenerateCrudPosition", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithPositionFieldAndScope")); const file = out.find((file) => file.name == "test-entity-with-position-field-and-scopes.service.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const formattedOut = await formatSource(file.content); const source = parseSource(formattedOut); @@ -175,7 +179,9 @@ describe("GenerateCrudPosition", () => { orm.em.getMetadata().get("TestEntityWithPositionGroup"), ); const file = out.find((file) => file.name == "test-entity-with-position-groups.service.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const formattedOut = await formatSource(file.content); const source = parseSource(formattedOut); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relation-many-to-many.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relation-many-to-many.spec.ts index cd20902cf0f..bbebadd3b52 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relation-many-to-many.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relation-many-to-many.spec.ts @@ -70,7 +70,9 @@ describe("GenerateCrud Relation n:m with additional column", () => { ); const formattedOut = await formatGeneratedFiles(out); const foundFile = formattedOut.find((file) => file.name === "product.resolver.ts"); - if (!foundFile) throw new Error("File not found"); + if (!foundFile) { + throw new Error("File not found"); + } file = foundFile; }); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-id-integer.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-id-integer.spec.ts index c48f366ae60..36d3306549e 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-id-integer.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-id-integer.spec.ts @@ -50,7 +50,9 @@ describe("GenerateCrudRelationsIdNumber", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityProduct")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-product.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); @@ -83,7 +85,9 @@ describe("GenerateCrudRelationsIdNumber", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityProduct")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-product.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-id-string.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-id-string.spec.ts index 9293b8becee..9c274444d29 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-id-string.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-id-string.spec.ts @@ -38,7 +38,9 @@ describe("GenerateCrudRelationsIdString", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityProduct")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-product.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-multi-use.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-multi-use.spec.ts index e8e02f4f703..1e74c3bfe21 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-multi-use.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-multi-use.spec.ts @@ -45,7 +45,9 @@ describe("GenerateCrudRelationsMultiUse", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntitiyProduct")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "test-entitiy-product.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-nested.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-nested.spec.ts index 7ddbc311303..e587029c628 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-nested.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-nested.spec.ts @@ -46,7 +46,9 @@ describe("GenerateCrudRelationsNested", () => { { const file = formattedOut.find((file) => file.name === "test-entity-product.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); @@ -62,7 +64,9 @@ describe("GenerateCrudRelationsNested", () => { { const file = formattedOut.find((file) => file.name === "dto/test-entity-product.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); @@ -79,7 +83,9 @@ describe("GenerateCrudRelationsNested", () => { { const file = formattedOut.find((file) => file.name === "dto/test-entity-product-nested-test-entity-variant.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-two-levels.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-two-levels.spec.ts index 741fae75f87..8caf48fd206 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-two-levels.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations-two-levels.spec.ts @@ -69,7 +69,9 @@ describe("generate-crud relations two levels", () => { { const file = formattedOut.find((file) => file.name === "product.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); @@ -93,7 +95,9 @@ describe("generate-crud relations two levels", () => { { const file = formattedOut.find((file) => file.name === "dto/product.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); @@ -118,7 +122,9 @@ describe("generate-crud relations two levels", () => { { const file = formattedOut.find((file) => file.name === "dto/product-data-nested-product-variant.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); @@ -133,7 +139,9 @@ describe("generate-crud relations two levels", () => { { const file = formattedOut.find((file) => file.name === "dto/product-data-nested-product-variant.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations.spec.ts index e9f9c0f6134..26c321fb521 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-relations.spec.ts @@ -60,7 +60,9 @@ describe("GenerateCrudRelations", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityProduct")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "test-entity-product.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); @@ -91,7 +93,9 @@ describe("GenerateCrudRelations", () => { const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "test-entity-category.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); @@ -120,7 +124,9 @@ describe("GenerateCrudRelations", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityProduct")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-product.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-resolve-field.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-resolve-field.spec.ts index 4577c15dad8..69e54d4bf12 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-resolve-field.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-resolve-field.spec.ts @@ -46,7 +46,9 @@ describe("GenerateCrudResolveField", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityProduct")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "test-entity-product.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-resolve-id-integer.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-resolve-id-integer.spec.ts index b2a2c964e8d..9774c3aa325 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-resolve-id-integer.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-resolve-id-integer.spec.ts @@ -24,7 +24,9 @@ describe("GenerateCrudResolveIdInteger", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithIntegerId")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "test-entity-with-integer-id.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-scope.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-scope.spec.ts index ef044af117c..21856c35b33 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-scope.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-scope.spec.ts @@ -34,12 +34,16 @@ describe("GenerateCrud with ScopedEntity", () => { { const file = formattedOut.find((file) => file.name === "test-entity-with-scoped-entity.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const cls = source.getClassOrThrow("TestEntityWithScopedEntityResolver"); const requiredPermissionDecorator = cls.getDecorators().find((decorator) => decorator.getName() === "RequiredPermission"); - if (!requiredPermissionDecorator) throw new Error("RequiredPermission decorator not found"); + if (!requiredPermissionDecorator) { + throw new Error("RequiredPermission decorator not found"); + } const args = requiredPermissionDecorator.getArguments(); expect(args.length).toBe(1); //must not contain a second argument with { skipScopeCheck: true } } @@ -79,12 +83,16 @@ describe("GenerateCrud with Scope", () => { { const file = formattedOut.find((file) => file.name === "test-entity-with-scope.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const cls = source.getClassOrThrow("TestEntityWithScopeResolver"); const requiredPermissionDecorator = cls.getDecorators().find((decorator) => decorator.getName() === "RequiredPermission"); - if (!requiredPermissionDecorator) throw new Error("RequiredPermission decorator not found"); + if (!requiredPermissionDecorator) { + throw new Error("RequiredPermission decorator not found"); + } const args = requiredPermissionDecorator.getArguments(); expect(args.length).toBe(1); //must not contain a second argument with { skipScopeCheck: true } } diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-without-find.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-without-find.spec.ts index 7642245d951..eb52609f0a6 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-without-find.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud-without-find.spec.ts @@ -38,7 +38,9 @@ describe("GenerateCrud without find condition", () => { { const file = formattedOut.find((file) => file.name === "test-entity.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); expect( diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud.spec.ts index 4adebc5a94e..beee185717d 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/generate-crud.spec.ts @@ -48,7 +48,9 @@ describe("GenerateCrud", () => { const lintedOut = await formatGeneratedFiles(out); const file = lintedOut.find((file) => file.name === "test-entity-with-string.resolver.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); @@ -81,7 +83,9 @@ describe("GenerateCrud", () => { const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-string.filter.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); @@ -93,7 +97,9 @@ describe("GenerateCrud", () => { const structure = cls.getStructure(); expect(structure.properties?.length).toBe(4); - if (!structure.properties || !structure.properties[1]) throw new Error("property not found"); + if (!structure.properties || !structure.properties[1]) { + throw new Error("property not found"); + } const filterProp = structure.properties[1]; expect(filterProp.name).toBe("title"); expect(filterProp.type).toBe("StringFilter"); @@ -117,7 +123,9 @@ describe("GenerateCrud", () => { const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-number.filter.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); @@ -129,7 +137,9 @@ describe("GenerateCrud", () => { const structure = cls.getStructure(); expect(structure.properties?.length).toBe(4); - if (!structure.properties || !structure.properties[1]) throw new Error("property not found"); + if (!structure.properties || !structure.properties[1]) { + throw new Error("property not found"); + } const filterProp = structure.properties[1]; expect(filterProp.name).toBe("foo"); expect(filterProp.type).toBe("NumberFilter"); @@ -152,7 +162,9 @@ describe("GenerateCrud", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithTextRuntimeType")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-text-runtime-type.filter.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); @@ -164,7 +176,9 @@ describe("GenerateCrud", () => { const structure = cls.getStructure(); expect(structure.properties?.length).toBe(4); - if (!structure.properties || !structure.properties[1]) throw new Error("property not found"); + if (!structure.properties || !structure.properties[1]) { + throw new Error("property not found"); + } const filterProp = structure.properties[1]; expect(filterProp.name).toBe("title"); expect(filterProp.type).toBe("StringFilter"); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/position-default-sort.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/position-default-sort.spec.ts index 6b13e00e11d..695c367d554 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/position-default-sort.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/position-default-sort.spec.ts @@ -38,7 +38,9 @@ describe("position default sort", () => { it("args dto should have default value for sort", async () => { const file = formattedOut.find((file) => file.name === "dto/test-entities.args.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } expect(file.content).toMatchSnapshot(); }); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/sort-by-id.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/sort-by-id.spec.ts index cd134b67f98..eafc5934e00 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/sort-by-id.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/__tests__/sort-by-id.spec.ts @@ -79,7 +79,9 @@ describe("sort by id", () => { const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity3s.args.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } expect(file.content).toMatchSnapshot(); await orm.close(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/build-options.ts b/packages/api/api-generator/src/commands/generate/generateCrud/build-options.ts index 2281c13fc3a..0e7c603ef47 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/build-options.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/build-options.ts @@ -115,7 +115,9 @@ export function buildOptions(metadata: EntityMetadata, generatorOptions: Cr const hasSlugProp = metadata.props.some((prop) => prop.name == "slug"); const scopeProp = metadata.props.find((prop) => prop.name == "scope"); - if (scopeProp && !scopeProp.targetMeta) throw new Error("Scope prop has no targetMeta"); + if (scopeProp && !scopeProp.targetMeta) { + throw new Error("Scope prop has no targetMeta"); + } const hasDeletedAtProp = metadata.props.some((prop) => prop.name == "deletedAt"); diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/generate-crud.ts b/packages/api/api-generator/src/commands/generate/generateCrud/generate-crud.ts index 85a83695436..4aa6be3b6af 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/generate-crud.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/generate-crud.ts @@ -248,7 +248,9 @@ function generateArgsDto({ generatorOptions, metadata }: { generatorOptions: Cru } else if (metadata.props.some((prop) => prop.name === "createdAt" && prop.type === "Date")) { defaultSortField = "createdAt"; } - if (!crudSortProps.includes(defaultSortField)) defaultSortField = null; + if (!crudSortProps.includes(defaultSortField)) { + defaultSortField = null; + } const argsOut = `import { ArgsType, Field, IntersectionType, registerEnumType, ID } from "@nestjs/graphql"; import { Type } from "class-transformer"; @@ -468,7 +470,9 @@ function generateInputHandling( }) .map((prop) => { const targetMeta = prop.targetMeta; - if (!targetMeta) throw new Error("targetMeta is not set for relation"); + if (!targetMeta) { + throw new Error("targetMeta is not set for relation"); + } return { name: prop.name, singularName: singular(prop.name), @@ -481,7 +485,9 @@ function generateInputHandling( .filter((prop) => hasCrudFieldFeature(metadata.class, prop.name, "input")) .map((prop) => { const targetMeta = prop.targetMeta; - if (!targetMeta) throw new Error("targetMeta is not set for relation"); + if (!targetMeta) { + throw new Error("targetMeta is not set for relation"); + } return { name: prop.name, singularName: singular(prop.name), @@ -494,7 +500,9 @@ function generateInputHandling( .filter((prop) => hasCrudFieldFeature(metadata.class, prop.name, "input")) .map((prop) => { const targetMeta = prop.targetMeta; - if (!targetMeta) throw new Error("targetMeta is not set for relation"); + if (!targetMeta) { + throw new Error("targetMeta is not set for relation"); + } return { name: prop.name, singularName: singular(prop.name), @@ -653,7 +661,9 @@ function generateNestedEntityResolver({ generatorOptions, metadata }: { generato hasOutputRelations, needsBlocksTransformer, } = generateRelationsFieldResolver({ generatorOptions, metadata }); - if (!hasOutputRelations) return null; + if (!hasOutputRelations) { + return null; + } imports.push(...fieldImports); imports.push(generateEntityImport(metadata, targetDirectory)); @@ -711,7 +721,9 @@ function generateRelationsFieldResolver({ generatorOptions, metadata }: { genera const imports: Imports = []; for (const prop of [...relationManyToOneProps, ...relationOneToManyProps, ...relationManyToManyProps, ...relationOneToOneProps]) { - if (!prop.targetMeta) throw new Error(`Relation ${prop.name} has targetMeta not set`); + if (!prop.targetMeta) { + throw new Error(`Relation ${prop.name} has targetMeta not set`); + } imports.push(generateEntityImport(prop.targetMeta, targetDirectory)); } @@ -1204,7 +1216,9 @@ export async function generateCrud(generatorOptionsParam: CrudGeneratorOptions, metadata.props .filter((prop) => { if (prop.kind === "1:m" && prop.orphanRemoval) { - if (!prop.targetMeta) throw new Error(`Target metadata not set`); + if (!prop.targetMeta) { + throw new Error(`Target metadata not set`); + } const hasOwnCrudGenerator = Reflect.getMetadata(CRUD_GENERATOR_METADATA_KEY, prop.targetMeta.class); if (!hasOwnCrudGenerator) { //generate nested resolver only if target entity has no own crud generator @@ -1213,7 +1227,9 @@ export async function generateCrud(generatorOptionsParam: CrudGeneratorOptions, } }) .forEach((prop) => { - if (!prop.targetMeta) throw new Error(`Target metadata not set`); + if (!prop.targetMeta) { + throw new Error(`Target metadata not set`); + } const { fileNameSingular } = buildNameVariants(prop.targetMeta); const content = generateNestedEntityResolver({ generatorOptions, metadata: prop.targetMeta }); diff --git a/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-integer.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-integer.spec.ts index 8213380aa9b..b5c06cbc426 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-integer.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-integer.spec.ts @@ -66,7 +66,9 @@ describe("GenerateCrudInputInteger", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithIntegerTypes")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-integer-types.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-type-or-columnType.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-type-or-columnType.spec.ts index 7ae281c8210..8e08bb669f9 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-type-or-columnType.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-type-or-columnType.spec.ts @@ -58,7 +58,9 @@ describe("GenerateCrudInputTypeOrColumnType", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithIntegerTypes")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-integer-types.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); diff --git a/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-validators.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-validators.spec.ts index 6576cfa4148..f47c07e8c5a 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-validators.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/generate-crud-input-validators.spec.ts @@ -117,7 +117,9 @@ describe("GenerateDefinedValidatorDecorators", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithEmail")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-email.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); const cls = classes[0]; @@ -157,7 +159,9 @@ describe("GenerateDefinedValidatorDecorators", () => { ); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-case-sensitive-constraint-name.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); const cls = classes[0]; @@ -197,7 +201,9 @@ describe("GenerateDefinedValidatorDecorators", () => { ); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-shortened-decorator-name.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); const cls = classes[0]; @@ -237,7 +243,9 @@ describe("GenerateDefinedValidatorDecorators", () => { ); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-shortened-decorator-name.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); const cls = classes[0]; @@ -278,7 +286,9 @@ describe("GenerateDefinedValidatorDecorators", () => { ); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-relative-import-decorator.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); const cls = classes[0]; @@ -316,7 +326,9 @@ describe("GenerateDefinedValidatorDecorators", () => { const out = await generateCrud({ requiredPermission: testPermission }, orm.em.getMetadata().get("TestEntityWithValidatorDefinedInFile")); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-validator-defined-in-file.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); const cls = classes[0]; @@ -356,7 +368,9 @@ describe("GenerateDefinedValidatorDecorators", () => { ); const formattedOut = await formatGeneratedFiles(out); const file = formattedOut.find((file) => file.name === "dto/test-entity-with-duplicate-default-decorator.input.ts"); - if (!file) throw new Error("File not found"); + if (!file) { + throw new Error("File not found"); + } const source = parseSource(file.content); const classes = source.getClasses(); const cls = classes[0]; diff --git a/packages/api/api-generator/src/commands/generate/generateCrudInput/generate-crud-input.ts b/packages/api/api-generator/src/commands/generate/generateCrudInput/generate-crud-input.ts index 5b363afa88f..cc134cf7e56 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrudInput/generate-crud-input.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrudInput/generate-crud-input.ts @@ -22,7 +22,9 @@ import { type GeneratedFile } from "../utils/write-generated-files"; function tsCodeRecordToString(object: Record) { const filteredEntries = Object.entries(object).filter(([key, value]) => value !== undefined); - if (filteredEntries.length == 0) return ""; + if (filteredEntries.length == 0) { + return ""; + } return `{${filteredEntries.map(([key, value]) => `${key}: ${value},`).join("\n")}}`; } @@ -31,7 +33,9 @@ function findReferenceTargetType( referencedColumnName: string, ): "uuid" | "string" | "integer" | null { const referencedColumnProp = targetMeta?.props.find((p) => p.name == referencedColumnName); - if (!referencedColumnProp) throw new Error("referencedColumnProp not found"); + if (!referencedColumnProp) { + throw new Error("referencedColumnProp not found"); + } if (referencedColumnProp.type == "uuid") { return "uuid"; } else if (referencedColumnProp.type == "text") { @@ -242,7 +246,9 @@ export async function generateCrudInput( if (prop.orphanRemoval) { //if orphanRemoval is enabled, we need to generate a nested input type decorators.length = 0; - if (!prop.targetMeta) throw new Error("No targetMeta"); + if (!prop.targetMeta) { + throw new Error("No targetMeta"); + } const inputNameClassName = `${metadata.className}Nested${prop.targetMeta.className}Input`; { const excludeFields = prop.targetMeta.props.filter((p) => p.kind == "m:1" && p.targetMeta == metadata).map((p) => p.name); @@ -315,7 +321,9 @@ export async function generateCrudInput( console.warn(`${prop.name}: Unsupported referenced type`); } } else if (prop.kind == "1:1") { - if (!prop.targetMeta) throw new Error("No targetMeta"); + if (!prop.targetMeta) { + throw new Error("No targetMeta"); + } const inputNameClassName = `${metadata.className}Nested${prop.targetMeta.className}Input`; { const excludeFields = prop.targetMeta.props.filter((p) => p.kind == "1:1" && p.targetMeta == metadata).map((p) => p.name); @@ -435,7 +443,9 @@ export async function generateCrudInput( const classValidatorValidators = getMetadataStorage().getTargetValidationMetadatas(metadata.class, prop.name, false, false, undefined); for (const validator of classValidatorValidators) { - if (validator.propertyName !== prop.name) continue; + if (validator.propertyName !== prop.name) { + continue; + } const constraints = getMetadataStorage().getTargetValidatorConstraints(validator.constraintCls); for (const constraint of constraints) { const decorator = definedDecorators.find((decorator) => { diff --git a/packages/api/api-generator/src/commands/generate/generateCrudSingle/generate-crud-single.ts b/packages/api/api-generator/src/commands/generate/generateCrudSingle/generate-crud-single.ts index 9ad45da5eca..a4b07da7dc9 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrudSingle/generate-crud-single.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrudSingle/generate-crud-single.ts @@ -20,7 +20,9 @@ export async function generateCrudSingle(generatorOptions: CrudSingleGeneratorOp const generatedFiles: GeneratedFile[] = []; const scopeProp = metadata.props.find((prop) => prop.name == "scope"); - if (scopeProp && !scopeProp.targetMeta) throw new Error("Scope prop has no targetMeta"); + if (scopeProp && !scopeProp.targetMeta) { + throw new Error("Scope prop has no targetMeta"); + } const blockProps = metadata.props.filter((prop) => { return hasCrudFieldFeature(metadata.class, prop.name, "input") && prop.type === "RootBlockType"; }); diff --git a/packages/api/api-generator/src/commands/generate/utils/test-helper.ts b/packages/api/api-generator/src/commands/generate/utils/test-helper.ts index c3b9c0a42d0..8f35e54cd5f 100644 --- a/packages/api/api-generator/src/commands/generate/utils/test-helper.ts +++ b/packages/api/api-generator/src/commands/generate/utils/test-helper.ts @@ -8,7 +8,9 @@ import { type GeneratedFile } from "./write-generated-files"; let options: Options | null; export async function formatSource(sourceCode: string): Promise { - if (!options) options = await resolveConfig(process.cwd()); + if (!options) { + options = await resolveConfig(process.cwd()); + } return format(sourceCode, { ...options, diff --git a/packages/api/api-generator/src/commands/generate/utils/ts-morph-helper.ts b/packages/api/api-generator/src/commands/generate/utils/ts-morph-helper.ts index dbf04913065..bd1af1687d5 100644 --- a/packages/api/api-generator/src/commands/generate/utils/ts-morph-helper.ts +++ b/packages/api/api-generator/src/commands/generate/utils/ts-morph-helper.ts @@ -10,21 +10,27 @@ const project = new Project({ }); function morphTsSource(metadata: EntityMetadata) { let tsSource = project.getSourceFile(metadata.path); - if (!tsSource) tsSource = project.addSourceFileAtPath(metadata.path); + if (!tsSource) { + tsSource = project.addSourceFileAtPath(metadata.path); + } return tsSource; } function morphTsClass(metadata: EntityMetadata) { const tsSource = morphTsSource(metadata); const tsClass = tsSource.getClass(metadata.className); - if (!tsClass) throw new Error(`Class ${metadata.className} not found in ${metadata.path}`); + if (!tsClass) { + throw new Error(`Class ${metadata.className} not found in ${metadata.path}`); + } return tsClass; } export function morphTsProperty(name: string, metadata: EntityMetadata) { let currentClass: ClassDeclaration | undefined = morphTsClass(metadata); while (currentClass) { const prop = currentClass.getProperty(name); - if (prop) return prop; + if (prop) { + return prop; + } currentClass = currentClass.getBaseClass(); } @@ -45,7 +51,9 @@ export function findImportPath(importName: string, targetDirectory: string, meta throw new Error(`Can't resolve import ${importPath}`); } const exportedDeclarations = importSource.getExportedDeclarations().get(importName); - if (!exportedDeclarations) throw new Error(`Can't get exported declaration for ${importName}`); + if (!exportedDeclarations) { + throw new Error(`Can't get exported declaration for ${importName}`); + } const exportedDeclaration = exportedDeclarations[0]; if (importPath.startsWith("./") || importPath.startsWith("../")) { @@ -114,9 +122,13 @@ export function findValidatorImportPath(validatorName: string, targetDirectory: export function findBlockName(propertyName: string, metadata: EntityMetadata): string { const tsProp = morphTsProperty(propertyName, metadata); - if (!tsProp) throw new Error("property not found"); + if (!tsProp) { + throw new Error("property not found"); + } const rootBlockDecorator = tsProp.getDecorators().find((i) => i.getName() == "RootBlock"); - if (!rootBlockDecorator) throw new Error(`RootBlock decorator not found for property ${propertyName}`); + if (!rootBlockDecorator) { + throw new Error(`RootBlock decorator not found for property ${propertyName}`); + } return rootBlockDecorator.getArguments()[0].getText(); } @@ -172,12 +184,17 @@ export function getFieldDecoratorClassName(propertyName: string, metadata: Entit return false; } const typeFnArg = fieldDecorator.getArguments()[0]; - if (!typeFnArg) throw new Error(`${propertyName}: @Field is missing argument`); - if (typeFnArg.getKind() != SyntaxKind.ArrowFunction) throw new Error(`${propertyName}: @Field first argument must be an ArrowFunction`); + if (!typeFnArg) { + throw new Error(`${propertyName}: @Field is missing argument`); + } + if (typeFnArg.getKind() != SyntaxKind.ArrowFunction) { + throw new Error(`${propertyName}: @Field first argument must be an ArrowFunction`); + } const typeReturningArrowFunction = typeFnArg as ArrowFunction; const body = typeReturningArrowFunction.getBody(); - if (body.getKind() != SyntaxKind.Identifier) + if (body.getKind() != SyntaxKind.Identifier) { throw new Error(`${propertyName}: @Field first argument must be an ArrowFunction returning an Identifier`); + } const identifier = body as Identifier; const className = identifier.getText(); return className; diff --git a/packages/api/brevo-api/src/brevo-api/brevo-api-contact.service.ts b/packages/api/brevo-api/src/brevo-api/brevo-api-contact.service.ts index aeec8957016..4f219e607a2 100644 --- a/packages/api/brevo-api/src/brevo-api/brevo-api-contact.service.ts +++ b/packages/api/brevo-api/src/brevo-api/brevo-api-contact.service.ts @@ -188,7 +188,9 @@ export class BrevoApiContactsService { try { const data = await this.getContactsApi(scope).getContactInfo(email); const contact = data.body; - if (!contact) return null; + if (!contact) { + return null; + } return contact; } catch (error) { // Brevo returns a 404 error if no contact is found and a 400 error if an invalid email is provided. diff --git a/packages/api/brevo-api/src/brevo-contact/brevo-contact-import.service.ts b/packages/api/brevo-api/src/brevo-contact/brevo-contact-import.service.ts index 7c6958c778f..ba126ff1d59 100644 --- a/packages/api/brevo-api/src/brevo-contact/brevo-contact-import.service.ts +++ b/packages/api/brevo-api/src/brevo-contact/brevo-contact-import.service.ts @@ -190,7 +190,9 @@ export class BrevoContactImportService { contactSource, importId, ); - if (updatedBrevoContact) return "updated"; + if (updatedBrevoContact) { + return "updated"; + } } else if (!brevoContact) { const brevoConfig = await this.brevoConfigRepository.findOneOrFail({ scope }); @@ -203,8 +205,12 @@ export class BrevoContactImportService { responsibleUserId, contactSource, }); - if (!success) return "blacklisted"; - if (success) return "created"; + if (!success) { + return "blacklisted"; + } + if (success) { + return "created"; + } } } catch (err) { console.error(err); diff --git a/packages/api/brevo-api/src/brevo-contact/brevo-contact.resolver.ts b/packages/api/brevo-api/src/brevo-contact/brevo-contact.resolver.ts index 99c5f0c024e..fcf9f602897 100644 --- a/packages/api/brevo-api/src/brevo-contact/brevo-contact.resolver.ts +++ b/packages/api/brevo-api/src/brevo-contact/brevo-contact.resolver.ts @@ -281,7 +281,9 @@ export function createBrevoContactResolver({ @Args("scope", { type: () => Scope }, new DynamicDtoValidationPipe(Scope)) scope: typeof Scope, ): Promise { const contact = await this.brevoContactsApiService.findContact(id, scope); - if (!contact) return false; + if (!contact) { + return false; + } const where: FilterQuery = { scope, isMainList: false, isTestList: true }; const testTargetGroup = await this.targetGroupRepository.findOne(where); @@ -313,7 +315,9 @@ export function createBrevoContactResolver({ @Args("scope", { type: () => Scope }, new DynamicDtoValidationPipe(Scope)) scope: typeof Scope, ): Promise { const contact = await this.brevoContactsApiService.findContact(id, scope); - if (!contact) return false; + if (!contact) { + return false; + } const where: FilterQuery = { scope, isMainList: false, isTestList: true }; const testTargetGroup = await this.targetGroupRepository.findOne(where); diff --git a/packages/api/brevo-api/src/target-group/target-group.resolver.ts b/packages/api/brevo-api/src/target-group/target-group.resolver.ts index c092c99ea0c..60f1670dbda 100644 --- a/packages/api/brevo-api/src/target-group/target-group.resolver.ts +++ b/packages/api/brevo-api/src/target-group/target-group.resolver.ts @@ -223,7 +223,9 @@ export function createTargetGroupsResolver({ @ResolveField(() => Int) async brevoTotalSubscribers(@Parent() targetGroup: TargetGroupInterface): Promise { - if (targetGroup.totalSubscribers !== undefined) return targetGroup.totalSubscribers; + if (targetGroup.totalSubscribers !== undefined) { + return targetGroup.totalSubscribers; + } const { uniqueSubscribers } = await this.brevoApiContactsService.findBrevoContactListById(targetGroup.brevoId, targetGroup.scope); diff --git a/packages/api/brevo-api/src/target-group/target-groups.service.ts b/packages/api/brevo-api/src/target-group/target-groups.service.ts index 41cf12b2eab..f9aed400ccb 100644 --- a/packages/api/brevo-api/src/target-group/target-groups.service.ts +++ b/packages/api/brevo-api/src/target-group/target-groups.service.ts @@ -39,7 +39,9 @@ export class TargetGroupsService { ): boolean { if (filters && contactAttributes) { for (const [key, value] of Object.entries(filters)) { - if (!value || value.length === 0) continue; + if (!value || value.length === 0) { + continue; + } let isFound = false; diff --git a/packages/api/cms-api/src/access-log/access-log.interceptor.ts b/packages/api/cms-api/src/access-log/access-log.interceptor.ts index cb49aa7531f..6a607cc3442 100644 --- a/packages/api/cms-api/src/access-log/access-log.interceptor.ts +++ b/packages/api/cms-api/src/access-log/access-log.interceptor.ts @@ -64,7 +64,9 @@ export class AccessLogInterceptor implements NestInterceptor { } requestData.push(`operationType: ${gqlInfo.parentType}`); - if (gqlInfo.operation.name?.value) requestData.push(`operationName: ${gqlInfo.operation.name.value}`); + if (gqlInfo.operation.name?.value) { + requestData.push(`operationName: ${gqlInfo.operation.name.value}`); + } requestData.push(`resolver function: ${gqlInfo.fieldName}`); requestData.push(`args: ${JSON.stringify(gqlArgs)}`); } else { @@ -110,7 +112,9 @@ export class AccessLogInterceptor implements NestInterceptor { ? this.config.userToLog : (user: User, impersonatedUser?: User) => { let log = `user: ${user.id}`; - if (impersonatedUser) log += ` (impersonating: ${impersonatedUser.id})`; + if (impersonatedUser) { + log += ` (impersonating: ${impersonatedUser.id})`; + } return log; }; requestData.push(userToLog(user, impersonatedUser)); diff --git a/packages/api/cms-api/src/auth/guards/comet.guard.ts b/packages/api/cms-api/src/auth/guards/comet.guard.ts index c79187cd8a1..29819f0a4d6 100644 --- a/packages/api/cms-api/src/auth/guards/comet.guard.ts +++ b/packages/api/cms-api/src/auth/guards/comet.guard.ts @@ -44,7 +44,9 @@ export class CometAuthGuard implements CanActivate { this.logger.debug(`No AuthService could authenticate the user for ${context.getClass().name}::${context.getHandler().name}().`); throw new UnauthorizedException("No AuthService could authenticate the user"); } - if ("authenticationError" in result) throw new UnauthorizedException(result.authenticationError); + if ("authenticationError" in result) { + throw new UnauthorizedException(result.authenticationError); + } if ("systemUser" in result) { request["user"] = result.systemUser; @@ -53,7 +55,9 @@ export class CometAuthGuard implements CanActivate { if ("userId" in result) { const userId = result.userId; const userService = this.service.getUserService(); - if (!userService) throw new UnauthorizedException(`User authenticated by ID but no user service given: ${userId}`); + if (!userService) { + throw new UnauthorizedException(`User authenticated by ID but no user service given: ${userId}`); + } try { if (userService.getUserForLogin) { user = await userService.getUserForLogin(userId); @@ -75,7 +79,9 @@ export class CometAuthGuard implements CanActivate { private async getAuthenticatedUserResult(request: Request) { for (const authService of this.authServices) { const result = await authService.authenticateUser(request); - if (result && result !== SKIP_AUTH_SERVICE) return result; + if (result && result !== SKIP_AUTH_SERVICE) { + return result; + } } } diff --git a/packages/api/cms-api/src/auth/services/basic.auth-service.ts b/packages/api/cms-api/src/auth/services/basic.auth-service.ts index e92933ab2c5..1b9ed3ac0f3 100644 --- a/packages/api/cms-api/src/auth/services/basic.auth-service.ts +++ b/packages/api/cms-api/src/auth/services/basic.auth-service.ts @@ -9,19 +9,29 @@ interface BasicAuthServiceConfig { } export function createBasicAuthService({ username: requiredUsername, password: requiredPassword }: BasicAuthServiceConfig) { - if (requiredUsername === "") throw new Error(`username for BasicAuthService must not be empty`); - if (requiredPassword === "") throw new Error(`password for BasicAuthService (username "${requiredUsername}") must not be empty`); + if (requiredUsername === "") { + throw new Error(`username for BasicAuthService must not be empty`); + } + if (requiredPassword === "") { + throw new Error(`password for BasicAuthService (username "${requiredUsername}") must not be empty`); + } @Injectable() class BasicAuthService implements AuthServiceInterface { authenticateUser(request: Request): AuthenticateUserResult { const [type, token] = request.header("authorization")?.split(" ") ?? []; - if (type !== "Basic") return SKIP_AUTH_SERVICE; + if (type !== "Basic") { + return SKIP_AUTH_SERVICE; + } const [username, password] = Buffer.from(token, "base64").toString("ascii").split(":"); - if (username !== requiredUsername) return SKIP_AUTH_SERVICE; + if (username !== requiredUsername) { + return SKIP_AUTH_SERVICE; + } - if (password !== requiredPassword) return { authenticationError: `Wrong password for Basic Auth user "${username}".` }; + if (password !== requiredPassword) { + return { authenticationError: `Wrong password for Basic Auth user "${username}".` }; + } return { systemUser: username }; } diff --git a/packages/api/cms-api/src/auth/services/jwt.auth-service.ts b/packages/api/cms-api/src/auth/services/jwt.auth-service.ts index 69ca4772a8a..7e04b946911 100644 --- a/packages/api/cms-api/src/auth/services/jwt.auth-service.ts +++ b/packages/api/cms-api/src/auth/services/jwt.auth-service.ts @@ -33,15 +33,21 @@ export function createJwtAuthService({ jwksOptions, verifyOptions, ...options }: private jwtService: JwtService, private readonly moduleRef: ModuleRef, ) { - if (jwksOptions) this.jwksClient = new JwksClient(jwksOptions); + if (jwksOptions) { + this.jwksClient = new JwksClient(jwksOptions); + } } async authenticateUser(request: Request): Promise { const token = this.extractTokenFromRequest(request); - if (!token) return SKIP_AUTH_SERVICE; + if (!token) { + return SKIP_AUTH_SERVICE; + } if (this.jwksClient) { - if (!verifyOptions) verifyOptions = {}; + if (!verifyOptions) { + verifyOptions = {}; + } verifyOptions.secret = await this.loadSecretFromJwks(token); } if (!verifyOptions?.secret) { @@ -86,7 +92,9 @@ export function createJwtAuthService({ jwksOptions, verifyOptions, ...options }: } private async loadSecretFromJwks(token: string): Promise { - if (!this.jwksClient) throw new Error("jwksOptions.jwksUri not set"); + if (!this.jwksClient) { + throw new Error("jwksOptions.jwksUri not set"); + } const jwt = this.jwtService.decode(token, { complete: true }) as { header: { kid: string } }; return (await this.jwksClient.getSigningKey(jwt.header.kid)).getPublicKey(); } diff --git a/packages/api/cms-api/src/auth/services/site-preview.auth-service.ts b/packages/api/cms-api/src/auth/services/site-preview.auth-service.ts index 106d994abc8..ed1edb80d21 100644 --- a/packages/api/cms-api/src/auth/services/site-preview.auth-service.ts +++ b/packages/api/cms-api/src/auth/services/site-preview.auth-service.ts @@ -17,7 +17,9 @@ export function createSitePreviewAuthService({ sitePreviewSecret }: SitePreviewA } const cookieValue = request.cookies["__comet_site_preview"]; - if (!cookieValue) return SKIP_AUTH_SERVICE; + if (!cookieValue) { + return SKIP_AUTH_SERVICE; + } try { const { diff --git a/packages/api/cms-api/src/blocks/block-migrate.service.ts b/packages/api/cms-api/src/blocks/block-migrate.service.ts index 5cb051e43ff..8cadcddcda6 100644 --- a/packages/api/cms-api/src/blocks/block-migrate.service.ts +++ b/packages/api/cms-api/src/blocks/block-migrate.service.ts @@ -40,10 +40,14 @@ export class BlockMigrateService { const rows = await this.connection.execute( `SELECT "${primary}", "${column}" FROM "${metadata.tableName}" ORDER BY "${primary}" LIMIT ${pageSize} OFFSET ${skip}`, ); - if (rows.length === 0) break; + if (rows.length === 0) { + break; + } for (const row of rows) { - if (!row[column]) continue; + if (!row[column]) { + continue; + } statistics.rootBlocks++; let blockData; if (row[column].data && row[column].index) { diff --git a/packages/api/cms-api/src/common/graphql/extract-graphql-fields.ts b/packages/api/cms-api/src/common/graphql/extract-graphql-fields.ts index 3748980be94..7f79ae9eeb5 100644 --- a/packages/api/cms-api/src/common/graphql/extract-graphql-fields.ts +++ b/packages/api/cms-api/src/common/graphql/extract-graphql-fields.ts @@ -17,7 +17,9 @@ export function extractGraphqlFields(info: GraphQLResolveInfo, options: { root?: return ret; } return treeToList(resolveTree).reduce((acc, i) => { - if (!options.root) return [...acc, i]; + if (!options.root) { + return [...acc, i]; + } if (!i.startsWith(`${options.root}.`)) { return acc; } diff --git a/packages/api/cms-api/src/content-generation/generate-alt-text.resolver.ts b/packages/api/cms-api/src/content-generation/generate-alt-text.resolver.ts index 12ee145dde6..cb433b0c9ac 100644 --- a/packages/api/cms-api/src/content-generation/generate-alt-text.resolver.ts +++ b/packages/api/cms-api/src/content-generation/generate-alt-text.resolver.ts @@ -27,7 +27,9 @@ export class GenerateAltTextResolver { @Mutation(() => String) async generateAltText(@Args() { fileId, language }: GenerateAltTextArgs): Promise { const altText = await this.contentGenerationService.generateAltText?.(fileId, { language: language ?? "en" }); - if (!altText) throw new Error("Alt text generation failed or is not supported"); + if (!altText) { + throw new Error("Alt text generation failed or is not supported"); + } return altText; } } diff --git a/packages/api/cms-api/src/content-generation/generate-image-title.resolver.ts b/packages/api/cms-api/src/content-generation/generate-image-title.resolver.ts index 24f64a723ba..9754ed390e4 100644 --- a/packages/api/cms-api/src/content-generation/generate-image-title.resolver.ts +++ b/packages/api/cms-api/src/content-generation/generate-image-title.resolver.ts @@ -27,7 +27,9 @@ export class GenerateImageTitleResolver { @Mutation(() => String) async generateImageTitle(@Args() { fileId, language }: GenerateImageTitleArgs): Promise { const imageTitle = await this.contentGenerationService.generateImageTitle?.(fileId, { language: language ?? "en" }); - if (!imageTitle) throw new Error("Image title generation failed or is not supported"); + if (!imageTitle) { + throw new Error("Image title generation failed or is not supported"); + } return imageTitle; } } diff --git a/packages/api/cms-api/src/content-generation/generate-seo-tags.resolver.ts b/packages/api/cms-api/src/content-generation/generate-seo-tags.resolver.ts index a821d4fdaf6..d8df19ea6e2 100644 --- a/packages/api/cms-api/src/content-generation/generate-seo-tags.resolver.ts +++ b/packages/api/cms-api/src/content-generation/generate-seo-tags.resolver.ts @@ -25,7 +25,9 @@ export class GenerateSeoTagsResolver { @Mutation(() => SeoTags) async generateSeoTags(@Args() { content, language }: GenerateSeoTagsArgs): Promise { const seoTags = await this.contentGenerationService.generateSeoTags?.(content, { language }); - if (!seoTags) throw new Error("SEO tag generation failed or is not supported"); + if (!seoTags) { + throw new Error("SEO tag generation failed or is not supported"); + } return seoTags; } } diff --git a/packages/api/cms-api/src/dam/files/file-warning.service.ts b/packages/api/cms-api/src/dam/files/file-warning.service.ts index c528596821c..949b0c9bd5a 100644 --- a/packages/api/cms-api/src/dam/files/file-warning.service.ts +++ b/packages/api/cms-api/src/dam/files/file-warning.service.ts @@ -66,7 +66,9 @@ export class FileWarningService implements CreateWarningsServiceInterface `%${term}%`)]); } - if (args.id) qb.andWhere({ id: args.id }); - if (args.copyOfId) qb.andWhere({ copyOf: { id: args.copyOfId } }); - if (args.filename) qb.andWhere({ name: args.filename }); - if (args.contentHash) qb.andWhere({ contentHash: args.contentHash }); - if (args.archived !== undefined) qb.andWhere({ archived: args.archived }); + if (args.id) { + qb.andWhere({ id: args.id }); + } + if (args.copyOfId) { + qb.andWhere({ copyOf: { id: args.copyOfId } }); + } + if (args.filename) { + qb.andWhere({ name: args.filename }); + } + if (args.contentHash) { + qb.andWhere({ contentHash: args.contentHash }); + } + if (args.archived !== undefined) { + qb.andWhere({ archived: args.archived }); + } if (args.folderId !== undefined) { if (args.folderId) { qb.andWhere({ folder: { id: args.folderId } }); @@ -80,7 +90,9 @@ const withFilesSelect = ( qb.andWhere({ mimetype: { $in: args.mimetypes } }); } - if (args.imageId) qb.andWhere({ image: { id: args.imageId } }); + if (args.imageId) { + qb.andWhere({ image: { id: args.imageId } }); + } if (args.imageCropArea) { qb.andWhere({ image: { cropArea: args.imageCropArea } }); } @@ -289,7 +301,9 @@ export class FilesService { async updateById(id: string, data: UpdateFileInput): Promise { const file = await this.findOneById(id); - if (!file) throw new CometEntityNotFoundException(); + if (!file) { + throw new CometEntityNotFoundException(); + } return this.updateByEntity(file, data); } @@ -332,7 +346,9 @@ export class FilesService { async delete(id: string): Promise { const file = await this.findOneById(id); - if (!file) throw new CometEntityNotFoundException(); + if (!file) { + throw new CometEntityNotFoundException(); + } const result = await this.filesRepository.nativeDelete(id); const deleted = result === 1; @@ -636,7 +652,9 @@ export class FilesService { let image: probe.ProbeResult | undefined; try { image = await probe(createReadStream(file.path)); - if (image.type == "svg") image = undefined; + if (image.type == "svg") { + image = undefined; + } if (image !== undefined && image.orientation !== undefined && [6, 8].includes(image.orientation)) { image = { ...image, diff --git a/packages/api/cms-api/src/dam/files/folders.service.ts b/packages/api/cms-api/src/dam/files/folders.service.ts index 4b8eaf70160..69dbd9ed629 100644 --- a/packages/api/cms-api/src/dam/files/folders.service.ts +++ b/packages/api/cms-api/src/dam/files/folders.service.ts @@ -188,7 +188,9 @@ export class FoldersService { async updateById(id: string, data: UpdateFolderInput): Promise { const folder = await this.findOneById(id); - if (!folder) throw new CometEntityNotFoundException(); + if (!folder) { + throw new CometEntityNotFoundException(); + } return this.updateByEntity(folder, data); } diff --git a/packages/api/cms-api/src/file-utils/images.util.ts b/packages/api/cms-api/src/file-utils/images.util.ts index ab16b230e9b..061371a921f 100644 --- a/packages/api/cms-api/src/file-utils/images.util.ts +++ b/packages/api/cms-api/src/file-utils/images.util.ts @@ -59,12 +59,20 @@ export function getCenteredPosition(crop: ImageDimensions, area: ImageDimensions const focalPoint = getFocalPoint(area, focalPointPosition); let x = Math.max(focalPoint.x - crop.width / 2, 0); - if (x + crop.width > area.width) x -= x + crop.width - area.width; - if (x < 0) x = 0; // Can happen because width is rounded and x not + if (x + crop.width > area.width) { + x -= x + crop.width - area.width; + } + if (x < 0) { + x = 0; + } // Can happen because width is rounded and x not let y = Math.max(focalPoint.y - crop.height / 2, 0); - if (y + crop.height > area.height) y -= y + crop.height - area.height; - if (y < 0) y = 0; // Can happen because height is rounded and y not + if (y + crop.height > area.height) { + y -= y + crop.height - area.height; + } + if (y < 0) { + y = 0; + } // Can happen because height is rounded and y not return { x: x + area.x, y: y + area.y }; } diff --git a/packages/api/cms-api/src/imgproxy/imgproxy.builder.ts b/packages/api/cms-api/src/imgproxy/imgproxy.builder.ts index e3af16c0d81..4825ca01a09 100644 --- a/packages/api/cms-api/src/imgproxy/imgproxy.builder.ts +++ b/packages/api/cms-api/src/imgproxy/imgproxy.builder.ts @@ -12,7 +12,9 @@ export class ImgproxyBuilder { crop(width: number, height: number, gravity: Gravity = Gravity.CENTER, xOffset = 0, yOffset = 0): this { const options = [width, height, gravity]; - if (gravity !== Gravity.SMART) options.push(xOffset, yOffset); + if (gravity !== Gravity.SMART) { + options.push(xOffset, yOffset); + } return this.setOption("crop", options.join(":")); } diff --git a/packages/api/cms-api/src/mail-templates/mail-template.service.ts b/packages/api/cms-api/src/mail-templates/mail-template.service.ts index eeceb237f71..70386c8eb34 100644 --- a/packages/api/cms-api/src/mail-templates/mail-template.service.ts +++ b/packages/api/cms-api/src/mail-templates/mail-template.service.ts @@ -17,7 +17,9 @@ export class MailTemplateService { const mailTemplates: { name: string; instance: MailTemplateInterface }[] = []; for (const discovery of await this.discoveryService.providersWithMetaAtKey(MAIL_TEMPLATE_METADATA_KEY)) { const mailTemplate = discovery.discoveredClass.instance; - if (!isMailTemplate(mailTemplate)) throw new Error(`Class ${discovery.discoveredClass.name} does not implement MailTemplateInterface`); + if (!isMailTemplate(mailTemplate)) { + throw new Error(`Class ${discovery.discoveredClass.name} does not implement MailTemplateInterface`); + } mailTemplates.push({ name: discovery.discoveredClass.name, instance: mailTemplate }); } @@ -26,7 +28,9 @@ export class MailTemplateService { async getMailTemplate(className: string): Promise> { const ret = (await this.getMailTemplatesWithClassName()).find((mailTemplateWithClassName) => mailTemplateWithClassName.name === className); - if (!ret) throw new Error(`MailTemplate not found: ${className}`); + if (!ret) { + throw new Error(`MailTemplate not found: ${className}`); + } return ret.instance as MailTemplateInterface; } diff --git a/packages/api/cms-api/src/mailer/mailer.service.ts b/packages/api/cms-api/src/mailer/mailer.service.ts index 0cb12aaaa8e..bb6d2f899c8 100644 --- a/packages/api/cms-api/src/mailer/mailer.service.ts +++ b/packages/api/cms-api/src/mailer/mailer.service.ts @@ -76,15 +76,23 @@ export class MailerService { if (logMail && !this.mailerConfig.disableMailLog) { await this.entityManager.fork().transactional(async (em) => { - if (!logEntryId) return; + if (!logEntryId) { + return; + } const logEntry = await em.getRepository(MailerLog).findOne({ id: logEntryId }); - if (!logEntry) return; + if (!logEntry) { + return; + } - if (result.messageId) logEntry.assign({ status: MailerLogStatus.sent }); + if (result.messageId) { + logEntry.assign({ status: MailerLogStatus.sent }); + } logEntry.assign({ result: result }); }); } - if (!result.messageId) throw new Error(`Sending mail failed, no messageId returned. MailOptions: ${JSON.stringify(mailOptions)}`); + if (!result.messageId) { + throw new Error(`Sending mail failed, no messageId returned. MailOptions: ${JSON.stringify(mailOptions)}`); + } // Delete outdated logs, purposely not using await because it is not important for the mail sending process this.mailerLogRepository.nativeDelete({ createdAt: { $lt: subDays(new Date(), this.mailerConfig.daysToKeepMailLog ?? 90) } }); diff --git a/packages/api/cms-api/src/page-tree/attached-document-loader.service.ts b/packages/api/cms-api/src/page-tree/attached-document-loader.service.ts index 1bd926bd9bd..adc1635253f 100644 --- a/packages/api/cms-api/src/page-tree/attached-document-loader.service.ts +++ b/packages/api/cms-api/src/page-tree/attached-document-loader.service.ts @@ -27,7 +27,9 @@ export class AttachedDocumentLoaderService { }; }), })) { - if (!attachedDocumentsByType[attachedDocument.type]) attachedDocumentsByType[attachedDocument.type] = []; + if (!attachedDocumentsByType[attachedDocument.type]) { + attachedDocumentsByType[attachedDocument.type] = []; + } attachedDocumentsByType[attachedDocument.type].push(attachedDocument); attachedDocumentsByKey.set(`${attachedDocument.pageTreeNodeId}$${attachedDocument.type}`, attachedDocument); @@ -42,7 +44,9 @@ export class AttachedDocumentLoaderService { } return keys.map((key) => { const attachedDocument = attachedDocumentsByKey.get(key); - if (!attachedDocument) return null; + if (!attachedDocument) { + return null; + } return documentsMap.get(attachedDocument.documentId) ?? null; }); }); diff --git a/packages/api/cms-api/src/page-tree/createPageTreeResolver.ts b/packages/api/cms-api/src/page-tree/createPageTreeResolver.ts index 6998f8faf66..c69effb21b2 100644 --- a/packages/api/cms-api/src/page-tree/createPageTreeResolver.ts +++ b/packages/api/cms-api/src/page-tree/createPageTreeResolver.ts @@ -189,7 +189,9 @@ export function createPageTreeResolver({ if (fieldNode.selectionSet) { const ret = fieldNode.selectionSet.selections.reduce( (acc, selection) => { - if (!acc) return acc; + if (!acc) { + return acc; + } if (selection.kind == "Field" && selection.name.value === "__typename") { //__typename is already in acc return acc; diff --git a/packages/api/cms-api/src/page-tree/page-tree-read-api.ts b/packages/api/cms-api/src/page-tree/page-tree-read-api.ts index 90e6968af38..bd8b7c19c43 100644 --- a/packages/api/cms-api/src/page-tree/page-tree-read-api.ts +++ b/packages/api/cms-api/src/page-tree/page-tree-read-api.ts @@ -45,7 +45,9 @@ export interface PageTreeReadApi { // hash from scope object used as key for preloadedNodes Map function scopeHash(scope: ScopeInterface | undefined): string { - if (!scope) return ""; + if (!scope) { + return ""; + } return JSON.stringify(scope); } @@ -207,7 +209,9 @@ export function createReadApi( let preloadRunning = false; const waitForPreloadingResolvers: Array<() => void> = []; const waitForPreloadDone = async (): Promise => { - if (!preloadRunning) return; + if (!preloadRunning) { + return; + } return new Promise((resolve, reject) => { waitForPreloadingResolvers.push(resolve); }); @@ -285,7 +289,9 @@ export function createReadApi( }, async getParentNode(node) { - if (!node.parentId) return null; + if (!node.parentId) { + return null; + } return this.getNodeOrFail(node.parentId); }, @@ -332,7 +338,9 @@ export function createReadApi( }); node = nodes[0]; - if (!node) return null; + if (!node) { + return null; + } parentId = node.id; } return node; @@ -361,13 +369,17 @@ export function createReadApi( async getFirstNodeByAttachedPageId(pageId: string): Promise { const attachedDocument = await attachedDocumentsRepository.findOne({ documentId: pageId }); - if (!attachedDocument) return null; + if (!attachedDocument) { + return null; + } return this.getNode(attachedDocument.pageTreeNodeId); }, async preloadNodes(scope?: ScopeInterface) { const hash = scopeHash(scope); - if (preloadedNodes.has(hash)) return; //don't double-preload + if (preloadedNodes.has(hash)) { + return; + } //don't double-preload return tracer.startActiveSpan("preload PageTreeNode", async (span) => { span.setAttribute("scope", JSON.stringify(scope)); preloadRunning = true; diff --git a/packages/api/cms-api/src/page-tree/page-tree.service.ts b/packages/api/cms-api/src/page-tree/page-tree.service.ts index aa330354748..4c993552d09 100644 --- a/packages/api/cms-api/src/page-tree/page-tree.service.ts +++ b/packages/api/cms-api/src/page-tree/page-tree.service.ts @@ -93,7 +93,9 @@ export class PageTreeService { const readApi = this.createReadApi({ visibility: "all" }); const existingNode = await readApi.getNodeOrFail(id); - if (!existingNode) throw new Error("Can't find page-tree-node with id"); + if (!existingNode) { + throw new Error("Can't find page-tree-node with id"); + } if (existingNode.slug === "home" && input.slug !== "home") { throw new Error(`Slug of page "home" cannot be changed`); @@ -187,7 +189,9 @@ export class PageTreeService { async updateNodePosition(id: string, input: MovePageTreeNodesByPosInput): Promise { const readApi = this.createReadApi({ visibility: "all" }); const existingNode = await readApi.getNodeOrFail(id); - if (!existingNode) throw new Error("Can't find page-tree-node with id"); + if (!existingNode) { + throw new Error("Can't find page-tree-node with id"); + } if (input.parentId) { let currentParentId: string | null = input.parentId; @@ -196,7 +200,9 @@ export class PageTreeService { throw new CometValidationException("A page cannot be its own parent or be moved under one of its descendants"); } const parentNode = await readApi.getNode(currentParentId); - if (!parentNode) break; + if (!parentNode) { + break; + } currentParentId = parentNode.parentId; } } diff --git a/packages/api/cms-api/src/user-permissions/access-control.service.ts b/packages/api/cms-api/src/user-permissions/access-control.service.ts index 92797fb5975..4bda0ebcf7e 100644 --- a/packages/api/cms-api/src/user-permissions/access-control.service.ts +++ b/packages/api/cms-api/src/user-permissions/access-control.service.ts @@ -22,15 +22,21 @@ export abstract class AbstractAccessControlService implements AccessControlServi ); } isAllowed(user: CurrentUser, permission: Permission, contentScope?: ContentScope): boolean { - if (!user.permissions) return false; + if (!user.permissions) { + return false; + } return user.permissions.some((p) => p.permission === permission && (!contentScope || this.checkContentScope(p.contentScopes, contentScope))); } static isEqualOrMorePermissions(permissions: CurrentUserPermission[], targetPermissions: CurrentUserPermission[]): boolean { for (const permission of targetPermissions) { const currentUserPermission = permissions.find((p) => p.permission === permission.permission); - if (!currentUserPermission) return false; + if (!currentUserPermission) { + return false; + } for (const contentScope of permission.contentScopes) { - if (!currentUserPermission.contentScopes.find((cs) => isEqual(cs, contentScope))) return false; + if (!currentUserPermission.contentScopes.find((cs) => isEqual(cs, contentScope))) { + return false; + } } } return true; diff --git a/packages/api/cms-api/src/user-permissions/auth/user-permissions.guard.spec.ts b/packages/api/cms-api/src/user-permissions/auth/user-permissions.guard.spec.ts index 8c0bb1961ec..a8542150b6b 100644 --- a/packages/api/cms-api/src/user-permissions/auth/user-permissions.guard.spec.ts +++ b/packages/api/cms-api/src/user-permissions/auth/user-permissions.guard.spec.ts @@ -43,10 +43,18 @@ describe("UserPermissionsGuard", () => { disableCometGuards?: boolean; }) => { reflector.getAllAndOverride = jest.fn().mockImplementation((decorator: string) => { - if (decorator === REQUIRED_PERMISSION_METADATA_KEY) return annotations.requiredPermission; - if (decorator === AFFECTED_ENTITY_METADATA_KEY) return annotations.affectedEntities; - if (decorator === SCOPED_ENTITY_METADATA_KEY) return annotations.scopedEntity; - if (decorator === DISABLE_COMET_GUARDS_METADATA_KEY) return annotations.disableCometGuards; + if (decorator === REQUIRED_PERMISSION_METADATA_KEY) { + return annotations.requiredPermission; + } + if (decorator === AFFECTED_ENTITY_METADATA_KEY) { + return annotations.affectedEntities; + } + if (decorator === SCOPED_ENTITY_METADATA_KEY) { + return annotations.scopedEntity; + } + if (decorator === DISABLE_COMET_GUARDS_METADATA_KEY) { + return annotations.disableCometGuards; + } return false; }); }; diff --git a/packages/api/cms-api/src/user-permissions/auth/user-permissions.guard.ts b/packages/api/cms-api/src/user-permissions/auth/user-permissions.guard.ts index 95be7be7954..47f0d65dddc 100644 --- a/packages/api/cms-api/src/user-permissions/auth/user-permissions.guard.ts +++ b/packages/api/cms-api/src/user-permissions/auth/user-permissions.guard.ts @@ -38,7 +38,9 @@ export class UserPermissionsGuard implements CanActivate { request.contentScopes = this.contentScopeService.getUniqueScopes(requiredContentScopes); } - if (this.getDecorator(context, DISABLE_COMET_GUARDS_METADATA_KEY)) return true; + if (this.getDecorator(context, DISABLE_COMET_GUARDS_METADATA_KEY)) { + return true; + } const user = this.getUser(context); if (!user) { @@ -47,13 +49,23 @@ export class UserPermissionsGuard implements CanActivate { } // System user authenticated via basic auth - if (typeof user === "string" && this.options.systemUsers?.includes(user)) return true; + if (typeof user === "string" && this.options.systemUsers?.includes(user)) { + return true; + } - if (!requiredPermission && this.isResolvingGraphQLField(context)) return true; - if (!requiredPermission) throw new Error(`RequiredPermission decorator is missing in ${location}`); + if (!requiredPermission && this.isResolvingGraphQLField(context)) { + return true; + } + if (!requiredPermission) { + throw new Error(`RequiredPermission decorator is missing in ${location}`); + } const requiredPermissions = requiredPermission.requiredPermission; - if (requiredPermissions.includes(DisablePermissionCheck)) return true; - if (requiredPermissions.length === 0) throw new Error(`RequiredPermission decorator has empty permissions in ${location}`); + if (requiredPermissions.includes(DisablePermissionCheck)) { + return true; + } + if (requiredPermissions.length === 0) { + throw new Error(`RequiredPermission decorator has empty permissions in ${location}`); + } if (this.isResolvingGraphQLField(context) || skipScopeCheck) { // At least one permission is required if ( @@ -64,10 +76,11 @@ export class UserPermissionsGuard implements CanActivate { return true; } } else { - if (requiredContentScopes.length === 0) + if (requiredContentScopes.length === 0) { throw new Error( `Could not get content scope. Either pass a scope-argument or add an @AffectedEntity()-decorator or enable skipScopeCheck in the @RequiredPermission()-decorator of ${location}`, ); + } // requiredContentScopes is an two level array of scopes // The first level has to be checked with AND, the second level with OR diff --git a/packages/api/cms-api/src/user-permissions/content-scope.service.ts b/packages/api/cms-api/src/user-permissions/content-scope.service.ts index bd882b3a473..fc570c2ea8c 100644 --- a/packages/api/cms-api/src/user-permissions/content-scope.service.ts +++ b/packages/api/cms-api/src/user-permissions/content-scope.service.ts @@ -87,7 +87,9 @@ export class ContentScopeService { contentScopes.push([row.scope as ContentScope]); } else { const scoped = this.reflector.getAllAndOverride(SCOPED_ENTITY_METADATA_KEY, [affectedEntity.entity]); - if (!scoped) throw new Error(`Entity ${affectedEntity.entity} is missing @ScopedEntity decorator`); + if (!scoped) { + throw new Error(`Entity ${affectedEntity.entity} is missing @ScopedEntity decorator`); + } let scopes; if (isInjectableService(scoped)) { const service = this.moduleRef.get(scoped, { strict: false }); @@ -95,24 +97,33 @@ export class ContentScopeService { } else { scopes = await scoped(row); } - if (!scopes) throw new Error(`@ScopedEntity function for ${affectedEntity.entity} didn't return any scopes`); + if (!scopes) { + throw new Error(`@ScopedEntity function for ${affectedEntity.entity} didn't return any scopes`); + } contentScopes.push(Array.isArray(scopes) ? scopes : [scopes]); } } } } else if (affectedEntity.options.pageTreeNodeIdArg) { - if (!args[affectedEntity.options.pageTreeNodeIdArg] && !affectedEntity.options.nullable) + if (!args[affectedEntity.options.pageTreeNodeIdArg] && !affectedEntity.options.nullable) { throw new Error(`${affectedEntity.options.pageTreeNodeIdArg} arg not found`); + } if (args[affectedEntity.options.pageTreeNodeIdArg]) { - if (this.pageTreeService === undefined) throw new Error("pageTreeNodeIdArg was given but no PageTreeModule is registered"); + if (this.pageTreeService === undefined) { + throw new Error("pageTreeNodeIdArg was given but no PageTreeModule is registered"); + } const pageTreeApi = await this.pageTreeService.createReadApi({ visibility: "all" }); const id = args[affectedEntity.options.pageTreeNodeIdArg]; const ids = Array.isArray(id) ? id : [id]; for (const id of ids) { const node = await pageTreeApi.getNode(id); - if (!node) throw new Error("Can't find pageTreeNode"); - if (!node.scope) throw new Error("PageTreeNode doesn't have a scope"); + if (!node) { + throw new Error("Can't find pageTreeNode"); + } + if (!node.scope) { + throw new Error("PageTreeNode doesn't have a scope"); + } contentScopes.push([node.scope as ContentScope]); } } diff --git a/packages/api/cms-api/src/user-permissions/user-permission.resolver.ts b/packages/api/cms-api/src/user-permissions/user-permission.resolver.ts index c9874f5f527..66af9152b8d 100644 --- a/packages/api/cms-api/src/user-permissions/user-permission.resolver.ts +++ b/packages/api/cms-api/src/user-permissions/user-permission.resolver.ts @@ -98,7 +98,9 @@ export class UserPermissionResolver { throw new Error(`Permission not found: ${id}`); } for (const p of await this.service.getPermissions(await this.service.getUser(userId))) { - if (p.id === id) return p; + if (p.id === id) { + return p; + } } throw new Error("Permission not found"); } diff --git a/packages/api/cms-api/src/user-permissions/user-permissions.service.ts b/packages/api/cms-api/src/user-permissions/user-permissions.service.ts index 092e7337bf9..5d4e4501ac5 100644 --- a/packages/api/cms-api/src/user-permissions/user-permissions.service.ts +++ b/packages/api/cms-api/src/user-permissions/user-permissions.service.ts @@ -104,12 +104,16 @@ export class UserPermissionsService { } async getUser(id: string): Promise { - if (!this.userService) throw new Error("For this functionality you need to define the userService in the UserPermissionsModule."); + if (!this.userService) { + throw new Error("For this functionality you need to define the userService in the UserPermissionsModule."); + } return this.userService.getUser(id); } async findUsers(args: FindUsersArgs): Promise<[User[], number]> { - if (!this.userService) throw new Error("For this functionality you need to define the userService in the UserPermissionsModule."); + if (!this.userService) { + throw new Error("For this functionality you need to define the userService in the UserPermissionsModule."); + } return this.userService.findUsers(args); } @@ -134,15 +138,21 @@ export class UserPermissionsService { const availablePermissions = await this.getAvailablePermissions(); const permissionsByRule = await this.accessControlService.getPermissionsForUser(user, availablePermissions); if (permissionsByRule === UserPermissions.allPermissions) { - if (availablePermissions.some((p) => permissions.includes(p))) return true; + if (availablePermissions.some((p) => permissions.includes(p))) { + return true; + } } else { - if (permissionsByRule.some((p) => permissions.includes(p.permission))) return true; + if (permissionsByRule.some((p) => permissions.includes(p.permission))) { + return true; + } } } if (this.manualPermissions === undefined) { throw new Error('You need to call "warmupHasPermissionCache" before using "hasPermission" for the first time.'); } - if (this.manualPermissions.some((p) => p.userId === user.id && permissions.includes(p.permission))) return true; + if (this.manualPermissions.some((p) => p.userId === user.id && permissions.includes(p.permission))) { + return true; + } return false; } diff --git a/packages/cli/src/commands/generate-block-types.ts b/packages/cli/src/commands/generate-block-types.ts index ce9355c3b95..254e21cb21d 100644 --- a/packages/cli/src/commands/generate-block-types.ts +++ b/packages/cli/src/commands/generate-block-types.ts @@ -50,7 +50,9 @@ function writeFieldType(field: BlockMetaField, blockNamePostfix: string) { content += "{\n"; field.object.fields.forEach((f) => { content += f.name; - if (f.nullable) content += "?"; + if (f.nullable) { + content += "?"; + } content += ": "; writeFieldType(f, blockNamePostfix); content += ";\n"; @@ -60,7 +62,9 @@ function writeFieldType(field: BlockMetaField, blockNamePostfix: string) { content += "Array<{\n"; field.object.fields.forEach((f) => { content += f.name; - if (f.nullable) content += "?"; + if (f.nullable) { + content += "?"; + } content += ": "; writeFieldType(f, blockNamePostfix); content += ";\n"; @@ -99,7 +103,9 @@ const generateBlockTypes = new Command("generate-block-types") content += `export interface ${block.name}BlockData {\n`; block.fields.forEach((field) => { content += field.name; - if (field.nullable) content += "?"; + if (field.nullable) { + content += "?"; + } content += ": "; writeFieldType(field, "BlockData"); content += ";\n"; @@ -112,7 +118,9 @@ const generateBlockTypes = new Command("generate-block-types") content += `export interface ${block.name}BlockInput {\n`; block.inputFields.forEach((field) => { content += field.name; - if (field.nullable) content += "?"; + if (field.nullable) { + content += "?"; + } content += ": "; writeFieldType(field, "BlockInput"); content += ";\n"; diff --git a/packages/site/site-nextjs/src/blocks/PixelImageBlock.tsx b/packages/site/site-nextjs/src/blocks/PixelImageBlock.tsx index fd1a871b7dc..c2cccc9b460 100644 --- a/packages/site/site-nextjs/src/blocks/PixelImageBlock.tsx +++ b/packages/site/site-nextjs/src/blocks/PixelImageBlock.tsx @@ -25,7 +25,9 @@ interface PixelImageBlockProps extends PropsWithData, Omit< export const PixelImageBlock = withPreview( ({ aspectRatio, data: { damFile, cropArea, urlTemplate }, fill, ...nextImageProps }: PixelImageBlockProps) => { - if (!damFile || !damFile.image) return ; + if (!damFile || !damFile.image) { + return ; + } // If we have a crop area set, DAM setting are overwritten, so we use that const usedCropArea = cropArea ?? damFile.image.cropArea; diff --git a/packages/site/site-nextjs/src/sitePreview/previewUtils.ts b/packages/site/site-nextjs/src/sitePreview/previewUtils.ts index 0192f8916bf..e42ed0e123b 100644 --- a/packages/site/site-nextjs/src/sitePreview/previewUtils.ts +++ b/packages/site/site-nextjs/src/sitePreview/previewUtils.ts @@ -28,7 +28,9 @@ export async function verifyJwt(jwt: string): Promise { const data = await jwtVerify(jwt, new TextEncoder().encode(process.env.SITE_PREVIEW_SECRET)); return data.payload; } catch (e) { - if (e instanceof errors.JOSEError) return null; + if (e instanceof errors.JOSEError) { + return null; + } throw e; } } @@ -57,7 +59,9 @@ export async function previewParams(options: { skipDraftModeCheck: boolean } = { } if (!options.skipDraftModeCheck) { - if (!(await draftMode()).isEnabled) return null; + if (!(await draftMode()).isEnabled) { + return null; + } } const cookie = (await cookies()).get("__comet_site_preview"); diff --git a/packages/site/site-react/src/blockLoader/blockLoader.ts b/packages/site/site-react/src/blockLoader/blockLoader.ts index f8b8b6fb276..912a181908f 100644 --- a/packages/site/site-react/src/blockLoader/blockLoader.ts +++ b/packages/site/site-react/src/blockLoader/blockLoader.ts @@ -99,7 +99,9 @@ export async function recursivelyLoadBlockData({ blockData[field.name] = iterateField(field.object, blockData[field.name]); } else if (field.kind == "OneOfBlocks") { const oneOfBlockType = field.blocks[blockData.type]; - if (!oneOfBlockType) throw new Error("invalid blockType"); + if (!oneOfBlockType) { + throw new Error("invalid blockType"); + } blockData[field.name] = iterateBlock({ blockType: oneOfBlockType, blockData: blockData[field.name], @@ -117,7 +119,9 @@ export async function recursivelyLoadBlockData({ const loadedBlockData: any[] = []; function iterateBlock({ blockType, blockData }: { blockType: string; blockData: unknown }) { const block = blocksMeta.find((block) => block.name === blockType) as BetterBlockMeta; - if (!block) throw new Error("invalid blockType"); + if (!block) { + throw new Error("invalid blockType"); + } const newBlockData = iterateField(block, blockData); if (loaders[blockType]) { diff --git a/packages/site/site-react/src/blocks/SvgImageBlock.tsx b/packages/site/site-react/src/blocks/SvgImageBlock.tsx index c4f8816e9c6..fe75f9f1218 100644 --- a/packages/site/site-react/src/blocks/SvgImageBlock.tsx +++ b/packages/site/site-react/src/blocks/SvgImageBlock.tsx @@ -19,7 +19,9 @@ export const SvgImageBlock = withPreview( height = "auto", ...restProps }: SvgImageBlockProps & Omit, "width" | "height">) => { - if (!damFile) return ; + if (!damFile) { + return ; + } return ( , callback: (inView: boolean) => void) => { useEffect(() => { - if (!ref.current) return; + if (!ref.current) { + return; + } const observer = new IntersectionObserver( ([entry]) => { diff --git a/packages/site/site-react/src/iframebridge/PreviewOverlay.tsx b/packages/site/site-react/src/iframebridge/PreviewOverlay.tsx index aa3abae4b70..20098b3c2d0 100644 --- a/packages/site/site-react/src/iframebridge/PreviewOverlay.tsx +++ b/packages/site/site-react/src/iframebridge/PreviewOverlay.tsx @@ -10,7 +10,9 @@ export const PreviewOverlay = () => { let bottomMostElementPosition = 0; iFrameBridge.previewElementsData.forEach((element) => { - if (element.position.zIndex > 1) return; + if (element.position.zIndex > 1) { + return; + } const elementBottom = element.position.top + element.position.height; if (elementBottom > bottomMostElementPosition) { diff --git a/packages/site/site-react/src/iframebridge/utils.ts b/packages/site/site-react/src/iframebridge/utils.ts index 917578030d3..1dc47244eeb 100644 --- a/packages/site/site-react/src/iframebridge/utils.ts +++ b/packages/site/site-react/src/iframebridge/utils.ts @@ -5,7 +5,9 @@ export const getRecursiveChildrenOfPreviewElement = (rootElement: Element): Elem const previewElementChildNodes: Element[] = []; rootElement.childNodes.forEach((childNode) => { - if (!(childNode instanceof Element)) return; + if (!(childNode instanceof Element)) { + return; + } if (childNode.hasAttribute(BLOCK_PREVIEW_CONTAINER_DATA_ATTRIBUTE)) { previewElementChildNodes.push(...getRecursiveChildrenOfPreviewElement(childNode)); diff --git a/packages/site/site-react/src/image/image.utils.ts b/packages/site/site-react/src/image/image.utils.ts index 8d798121fd5..3ebef34dbe4 100644 --- a/packages/site/site-react/src/image/image.utils.ts +++ b/packages/site/site-react/src/image/image.utils.ts @@ -4,7 +4,9 @@ export function parseAspectRatio(value: string | number): number { if (typeof value === "string") { [width, height] = value.split(/[x/:]/).map((v) => { let ret: number | undefined = parseFloat(v); - if (isNaN(ret)) ret = undefined; + if (isNaN(ret)) { + ret = undefined; + } return ret; }); if (width && !height) { @@ -14,7 +16,9 @@ export function parseAspectRatio(value: string | number): number { width = value; height = 1; } - if (!width || !height) throw Error(`An error occurred while parsing the aspect ratio: ${value}`); + if (!width || !height) { + throw Error(`An error occurred while parsing the aspect ratio: ${value}`); + } return width / height; } diff --git a/packages/site/site-react/src/persistedQueries/createPersistedQueryGraphQLFetch.ts b/packages/site/site-react/src/persistedQueries/createPersistedQueryGraphQLFetch.ts index 17303c5e689..8d4288bb77d 100644 --- a/packages/site/site-react/src/persistedQueries/createPersistedQueryGraphQLFetch.ts +++ b/packages/site/site-react/src/persistedQueries/createPersistedQueryGraphQLFetch.ts @@ -4,7 +4,9 @@ type Fetch = typeof fetch; export function createPersistedQueryGraphQLFetch(fetch: Fetch, url: string): GraphQLFetch { return async function (query: string | { hash: string }, variables?: V, init?: RequestInit): Promise { - if (typeof query === "string") throw new Error("at runtime only hashed queries are supported"); + if (typeof query === "string") { + throw new Error("at runtime only hashed queries are supported"); + } const hash = query.hash; let response; if (init?.method === "GET") { From ff3b9877cbcac0f4f1149b5c2f8b10a9e8f22ba1 Mon Sep 17 00:00:00 2001 From: Thomas Dax Date: Sat, 14 Feb 2026 11:23:43 +0100 Subject: [PATCH 5/7] Fix lint errors in storybook --- storybook/src/admin/stack/StackBreadcrumbs.stories.tsx | 4 +++- .../src/admin/stack/StackTableFormQueryAtStack.stories.tsx | 4 +++- .../src/admin/stack/StackTableFormQueryInTable.stories.tsx | 4 +++- storybook/src/admin/table/TableBesidesForm.stories.tsx | 4 +++- .../admin/table/TableBesidesFormSelectionHooks.stories.tsx | 4 +++- .../src/docs/components/Table/08_SelectionTable.stories.tsx | 5 +++-- storybook/src/docs/icons/AllIcons.stories.tsx | 4 +++- 7 files changed, 21 insertions(+), 8 deletions(-) diff --git a/storybook/src/admin/stack/StackBreadcrumbs.stories.tsx b/storybook/src/admin/stack/StackBreadcrumbs.stories.tsx index 8997b951a01..0e00780d75b 100644 --- a/storybook/src/admin/stack/StackBreadcrumbs.stories.tsx +++ b/storybook/src/admin/stack/StackBreadcrumbs.stories.tsx @@ -45,7 +45,9 @@ type Args = { function Story({ selectedBreadcrumbsNumber, selectedBreadcrumbsGroup }: Args) { const stackApi = useStackApi(); - if (!stackApi) return null; + if (!stackApi) { + return null; + } stackApi.breadCrumbs = allBreadcrumbGroups[selectedBreadcrumbsGroup][selectedBreadcrumbsNumber]; return ; } diff --git a/storybook/src/admin/stack/StackTableFormQueryAtStack.stories.tsx b/storybook/src/admin/stack/StackTableFormQueryAtStack.stories.tsx index 7b1dceee2e8..dc6dcf6c0f0 100644 --- a/storybook/src/admin/stack/StackTableFormQueryAtStack.stories.tsx +++ b/storybook/src/admin/stack/StackTableFormQueryAtStack.stories.tsx @@ -133,7 +133,9 @@ function ExampleForm(props: IExampleFormProps) { const { loading, data, error } = useQuery(detailQuery, { variables: { id: props.id } }); - if (error) return

Error :( {error.toString()}

; + if (error) { + return

Error :( {error.toString()}

; + } return ( <> diff --git a/storybook/src/admin/stack/StackTableFormQueryInTable.stories.tsx b/storybook/src/admin/stack/StackTableFormQueryInTable.stories.tsx index 3410a22ae99..cd8da11a31d 100644 --- a/storybook/src/admin/stack/StackTableFormQueryInTable.stories.tsx +++ b/storybook/src/admin/stack/StackTableFormQueryInTable.stories.tsx @@ -138,7 +138,9 @@ function ExampleForm(props: IExampleFormProps) { const { loading, data, error } = useQuery(detailQuery, { variables: { id: props.id } }); - if (error) return

Error :( {error.toString()}

; + if (error) { + return

Error :( {error.toString()}

; + } return ( <> diff --git a/storybook/src/admin/table/TableBesidesForm.stories.tsx b/storybook/src/admin/table/TableBesidesForm.stories.tsx index 3af7ca8ed49..4b2aa88164e 100644 --- a/storybook/src/admin/table/TableBesidesForm.stories.tsx +++ b/storybook/src/admin/table/TableBesidesForm.stories.tsx @@ -80,7 +80,9 @@ function Story() { }), }); - if (!tableData) return null; + if (!tableData) { + return null; + } return ( diff --git a/storybook/src/admin/table/TableBesidesFormSelectionHooks.stories.tsx b/storybook/src/admin/table/TableBesidesFormSelectionHooks.stories.tsx index 63a8381ab44..70d66d78158 100644 --- a/storybook/src/admin/table/TableBesidesFormSelectionHooks.stories.tsx +++ b/storybook/src/admin/table/TableBesidesFormSelectionHooks.stories.tsx @@ -83,7 +83,9 @@ function Story() { const location = useLocation(); - if (!tableData) return null; + if (!tableData) { + return null; + } return ( diff --git a/storybook/src/docs/components/Table/08_SelectionTable.stories.tsx b/storybook/src/docs/components/Table/08_SelectionTable.stories.tsx index c2ce66d1ee0..43d921ce151 100644 --- a/storybook/src/docs/components/Table/08_SelectionTable.stories.tsx +++ b/storybook/src/docs/components/Table/08_SelectionTable.stories.tsx @@ -65,8 +65,9 @@ export const SelectionTable = () => { }), }); - // eslint-disable-next-line react/jsx-no-useless-fragment - if (!tableData) return <>; + if (!tableData) { + return null; + } return ( diff --git a/storybook/src/docs/icons/AllIcons.stories.tsx b/storybook/src/docs/icons/AllIcons.stories.tsx index b0ca4473470..a7268480e14 100644 --- a/storybook/src/docs/icons/AllIcons.stories.tsx +++ b/storybook/src/docs/icons/AllIcons.stories.tsx @@ -8,7 +8,9 @@ import { useDebounce } from "use-debounce"; const iconBlockList = ["CometDigitalExperienceLogo"]; const matchesSearchQuery = (str: string, query: string): boolean => { - if (!query.length) return true; + if (!query.length) { + return true; + } let strIncludesPartOfSearchQuery = false; From 6dae21a71ed1c2a0faf01621379f911413dab609 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Feb 2026 15:44:57 +0000 Subject: [PATCH 6/7] Fix linting errors in new files from next branch merge Co-authored-by: johnnyomair <48853629+johnnyomair@users.noreply.github.com> --- .../generate/generateCrud/generate-service-hook-call.ts | 8 ++++++-- .../generateCrudInput/__tests__/nested-two-level.spec.ts | 4 +++- .../generate/utils/__tests__/find-hooks-service.spec.ts | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/api/api-generator/src/commands/generate/generateCrud/generate-service-hook-call.ts b/packages/api/api-generator/src/commands/generate/generateCrud/generate-service-hook-call.ts index bd349da36ba..46c66485075 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrud/generate-service-hook-call.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrud/generate-service-hook-call.ts @@ -16,10 +16,14 @@ export function generateServiceHookCall( scopeProp: EntityProperty | undefined; }, ) { - if (!hooksService) return ""; + if (!hooksService) { + return ""; + } const hook = type === "validateCreateInput" ? hooksService.validateCreateInput : hooksService.validateUpdateInput; - if (!hook) return ""; + if (!hook) { + return ""; + } const options = []; if (hook.options?.includes("currentUser")) { options.push("currentUser: user"); diff --git a/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/nested-two-level.spec.ts b/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/nested-two-level.spec.ts index 8e74910e312..85597628795 100644 --- a/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/nested-two-level.spec.ts +++ b/packages/api/api-generator/src/commands/generate/generateCrudInput/__tests__/nested-two-level.spec.ts @@ -67,7 +67,9 @@ describe("nested two level", () => { it("input dto should reference the correct import", async () => { const out = await generateCrudInput({ requiredPermission: testPermission }, orm.em.getMetadata().get("Foo")); const fooInputDto = out.find((f) => f.name == "dto/foo.input.ts"); - if (!fooInputDto) throw new Error(); + if (!fooInputDto) { + throw new Error(); + } expect(fooInputDto.content).toContain(`bars: FooNestedBarInput[];`); expect(fooInputDto.content).toContain(`import { FooNestedBarInput } from "./foo-nested-bar.input";`); diff --git a/packages/api/api-generator/src/commands/generate/utils/__tests__/find-hooks-service.spec.ts b/packages/api/api-generator/src/commands/generate/utils/__tests__/find-hooks-service.spec.ts index e7706d4cbaa..663c261c338 100644 --- a/packages/api/api-generator/src/commands/generate/utils/__tests__/find-hooks-service.spec.ts +++ b/packages/api/api-generator/src/commands/generate/utils/__tests__/find-hooks-service.spec.ts @@ -42,7 +42,9 @@ describe("find-hooks-service", () => { metadata: orm.em.getMetadata().get("TestEntity"), targetDirectory: __dirname, }); - if (!hooksService) throw new Error("hooksService not found"); + if (!hooksService) { + throw new Error("hooksService not found"); + } expect(hooksService.className).toEqual("TestEntityService"); expect(hooksService.imports).toEqual([]); expect(hooksService.validateCreateInput).toBeDefined(); From 8b0f7975818601dabda1c688fb50d6ffb5cf89b0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 17 Feb 2026 12:20:16 +0000 Subject: [PATCH 7/7] Move inline comments inside braces for better code style --- demo/admin/src/documents/pages/EditPage.tsx | 3 ++- demo/admin/src/mainMenu/components/EditMainMenuItem.tsx | 3 ++- demo/site/src/middleware/redirectToMainHost.ts | 3 ++- .../src/commands/generate/config/transformConfig.ts | 6 ++++-- .../src/commands/generate/utils/findRootBlocks.ts | 3 ++- .../src/commands/generate/utils/isFieldOptional.ts | 3 ++- packages/admin/admin/src/stack/Switch.tsx | 3 ++- packages/admin/admin/src/table/usePersistedState.tsx | 3 ++- packages/admin/cms-admin/src/warnings/WarningActions.tsx | 3 ++- packages/api/cms-api/src/dam/files/file-warning.service.ts | 3 ++- packages/api/cms-api/src/file-utils/images.util.ts | 6 ++++-- packages/api/cms-api/src/page-tree/page-tree-read-api.ts | 3 ++- 12 files changed, 28 insertions(+), 14 deletions(-) diff --git a/demo/admin/src/documents/pages/EditPage.tsx b/demo/admin/src/documents/pages/EditPage.tsx index c4e9040052d..0e136535b36 100644 --- a/demo/admin/src/documents/pages/EditPage.tsx +++ b/demo/admin/src/documents/pages/EditPage.tsx @@ -154,9 +154,10 @@ export const EditPage = ({ id }: Props) => { {hasChanges && ( { + //we navigated within our self if (location.pathname.startsWith(match.url)) { return true; - } //we navigated within our self + } return intl.formatMessage({ id: "editPage.discardChanges", defaultMessage: "Discard unsaved changes?", diff --git a/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx b/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx index 45510e6c500..271fdfbe710 100644 --- a/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx +++ b/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx @@ -156,9 +156,10 @@ const EditMainMenuItem = ({ item }: EditMainMenuItemProps) => { {hasChanges && ( { + //we navigated within our self if (location.pathname.startsWith(match.url)) { return true; - } //we navigated within our self + } return intl.formatMessage(messages.saveUnsavedChanges); }} saveAction={handleSaveAction} diff --git a/demo/site/src/middleware/redirectToMainHost.ts b/demo/site/src/middleware/redirectToMainHost.ts index b12009c8d7e..0985e09a24e 100644 --- a/demo/site/src/middleware/redirectToMainHost.ts +++ b/demo/site/src/middleware/redirectToMainHost.ts @@ -7,9 +7,10 @@ import { type CustomMiddleware } from "./chain"; const normalizeDomain = (host: string) => (host.startsWith("www.") ? host.substring(4) : host); const matchesHostWithAdditionalDomain = (siteConfig: PublicSiteConfig, host: string) => { + // non-www redirect if (normalizeDomain(siteConfig.domains.main) === normalizeDomain(host)) { return true; - } // non-www redirect + } if (siteConfig.domains.additional?.map(normalizeDomain).includes(normalizeDomain(host))) { return true; } diff --git a/packages/admin/admin-generator/src/commands/generate/config/transformConfig.ts b/packages/admin/admin-generator/src/commands/generate/config/transformConfig.ts index ef826e2dabf..7be21cc853b 100644 --- a/packages/admin/admin-generator/src/commands/generate/config/transformConfig.ts +++ b/packages/admin/admin-generator/src/commands/generate/config/transformConfig.ts @@ -69,9 +69,10 @@ export function transformConfigFile(fileName: string, sourceText: string) { if (ts.isArrowFunction(node)) { if (supportedInlineCodePaths.includes(path)) { let code = node.getText(); + // for some unknown reason node can contain the trailing comma if (code.endsWith(",")) { code = code.slice(0, -1); - } // for some unknown reason node can contain the trailing comma + } const imports = findUsedImports(node.body, importedIdentifiers); //find all imports used in the function body // replace inline code with { code, imports } object return ts.factory.createObjectLiteralExpression( @@ -122,9 +123,10 @@ export function transformConfigFile(fileName: string, sourceText: string) { throw new Error(`Only JsxAttributes are supported in FormattedMessage in this context: ${path}`); } let name = attr.name?.getText(); + // rename to identify as formattedMessage if (name === "id") { name = "formattedMessageId"; - } // rename to identify as formattedMessage + } if (!attr.initializer || !ts.isStringLiteral(attr.initializer)) { throw new Error(`Only string literals are supported in FormattedMessage in this context: ${path}.${name}`); } diff --git a/packages/admin/admin-generator/src/commands/generate/utils/findRootBlocks.ts b/packages/admin/admin-generator/src/commands/generate/utils/findRootBlocks.ts index 5463fcde0ef..bb046284575 100644 --- a/packages/admin/admin-generator/src/commands/generate/utils/findRootBlocks.ts +++ b/packages/admin/admin-generator/src/commands/generate/utils/findRootBlocks.ts @@ -21,9 +21,10 @@ export function findRootBlocks({ gqlType, targetDirectory }: { gqlType: string; throw new Error("didn't find entity in schema types"); } schemaEntity.fields.forEach((field) => { + // already defined if (ret[field.name]) { return; - } // already defined + } let type = field.type; if (type.kind == "NON_NULL") { type = type.ofType; diff --git a/packages/admin/admin-generator/src/commands/generate/utils/isFieldOptional.ts b/packages/admin/admin-generator/src/commands/generate/utils/isFieldOptional.ts index 333ec6518aa..88e8640d834 100644 --- a/packages/admin/admin-generator/src/commands/generate/utils/isFieldOptional.ts +++ b/packages/admin/admin-generator/src/commands/generate/utils/isFieldOptional.ts @@ -24,9 +24,10 @@ export const isFieldOptional = ({ if (!schemaEntity) { throw new Error(`didn't find entity ${gqlType} in schema types`); } + // this should not happen if (schemaEntity.kind !== "OBJECT") { throw new Error(`kind of ${gqlType} is not object, but should be.`); - } // this should not happen + } const fieldDef = schemaEntity.fields.find((field) => field.name === String(config.name)); if (!fieldDef) { return false; diff --git a/packages/admin/admin/src/stack/Switch.tsx b/packages/admin/admin/src/stack/Switch.tsx index 53911e2e7ff..3c5bda646bf 100644 --- a/packages/admin/admin/src/stack/Switch.tsx +++ b/packages/admin/admin/src/stack/Switch.tsx @@ -199,9 +199,10 @@ const StackSwitchInner: ForwardRefRenderFunction {Children.map(props.children, (page: ReactElement) => { + // don't render initial Page if (isInitialPage(page.props.name)) { return null; - } // don't render initial Page + } const path = `${removeTrailingSlash(subRoutePrefix)}/:id/${page.props.name}`; if (matchPath(location.pathname, { path })) { routeMatched = true; diff --git a/packages/admin/admin/src/table/usePersistedState.tsx b/packages/admin/admin/src/table/usePersistedState.tsx index 4f33e045e6d..56284281417 100644 --- a/packages/admin/admin/src/table/usePersistedState.tsx +++ b/packages/admin/admin/src/table/usePersistedState.tsx @@ -14,9 +14,10 @@ export function usePersistedState(defaultValue: T, options: IOptions = {}): [ const v = (stateId && allStates[stateId]) || defaultValue; const [state, setState] = useState(v); + // delete from allStates as the component is mounted now and handles it's state itself if (stateId) { delete allStates[stateId]; - } // delete from allStates as the component is mounted now and handles it's state itself + } useEffect(() => { return () => { diff --git a/packages/admin/cms-admin/src/warnings/WarningActions.tsx b/packages/admin/cms-admin/src/warnings/WarningActions.tsx index ad0fac75037..810348c006e 100644 --- a/packages/admin/cms-admin/src/warnings/WarningActions.tsx +++ b/packages/admin/cms-admin/src/warnings/WarningActions.tsx @@ -28,9 +28,10 @@ export function WarningActions({ sourceInfo, scope }: Props) { const dependencyObject = entityDependencyMap[sourceInfo.rootEntityName] as DependencyInterface | undefined; + // to some warnings it cannot be linked to. When missing a dependency or for example a failing job cannot be resolved in the admin and therefore cannot have a link if (!dependencyObject) { return null; - } // to some warnings it cannot be linked to. When missing a dependency or for example a failing job cannot be resolved in the admin and therefore cannot have a link + } if (dependencyObject === undefined) { if (process.env.NODE_ENV === "development") { diff --git a/packages/api/cms-api/src/dam/files/file-warning.service.ts b/packages/api/cms-api/src/dam/files/file-warning.service.ts index 949b0c9bd5a..6a626cd13ad 100644 --- a/packages/api/cms-api/src/dam/files/file-warning.service.ts +++ b/packages/api/cms-api/src/dam/files/file-warning.service.ts @@ -66,9 +66,10 @@ export class FileWarningService implements CreateWarningsServiceInterface area.width) { x -= x + crop.width - area.width; } + // Can happen because width is rounded and x not if (x < 0) { x = 0; - } // Can happen because width is rounded and x not + } let y = Math.max(focalPoint.y - crop.height / 2, 0); if (y + crop.height > area.height) { y -= y + crop.height - area.height; } + // Can happen because height is rounded and y not if (y < 0) { y = 0; - } // Can happen because height is rounded and y not + } return { x: x + area.x, y: y + area.y }; } diff --git a/packages/api/cms-api/src/page-tree/page-tree-read-api.ts b/packages/api/cms-api/src/page-tree/page-tree-read-api.ts index bd8b7c19c43..8123c5ac62b 100644 --- a/packages/api/cms-api/src/page-tree/page-tree-read-api.ts +++ b/packages/api/cms-api/src/page-tree/page-tree-read-api.ts @@ -377,9 +377,10 @@ export function createReadApi( async preloadNodes(scope?: ScopeInterface) { const hash = scopeHash(scope); + //don't double-preload if (preloadedNodes.has(hash)) { return; - } //don't double-preload + } return tracer.startActiveSpan("preload PageTreeNode", async (span) => { span.setAttribute("scope", JSON.stringify(scope)); preloadRunning = true;