diff --git a/.changeset/add-curly-eslint-rule.md b/.changeset/add-curly-eslint-rule.md new file mode 100644 index 00000000000..d2a044a25aa --- /dev/null +++ b/.changeset/add-curly-eslint-rule.md @@ -0,0 +1,7 @@ +--- +"@comet/eslint-config": major +--- + +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. 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..0e136535b36 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,10 @@ export const EditPage = ({ id }: Props) => { {hasChanges && ( { - if (location.pathname.startsWith(match.url)) return true; //we navigated within our self + //we navigated within our self + if (location.pathname.startsWith(match.url)) { + return true; + } 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..271fdfbe710 100644 --- a/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx +++ b/demo/admin/src/mainMenu/components/EditMainMenuItem.tsx @@ -156,7 +156,10 @@ const EditMainMenuItem = ({ item }: EditMainMenuItemProps) => { {hasChanges && ( { - if (location.pathname.startsWith(match.url)) return true; //we navigated within our self + //we navigated within our self + if (location.pathname.startsWith(match.url)) { + return true; + } 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..0985e09a24e 100644 --- a/demo/site/src/middleware/redirectToMainHost.ts +++ b/demo/site/src/middleware/redirectToMainHost.ts @@ -7,13 +7,20 @@ 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; + // non-www redirect + if (normalizeDomain(siteConfig.domains.main) === normalizeDomain(host)) { + return true; + } + 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..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,7 +69,10 @@ 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 + // for some unknown reason node can contain the trailing comma + if (code.endsWith(",")) { + code = code.slice(0, -1); + } 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 +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(); - if (name === "id") name = "formattedMessageId"; // rename to identify as formattedMessage + // rename to identify as formattedMessage + if (name === "id") { + name = "formattedMessageId"; + } if (!attr.initializer || !ts.isStringLiteral(attr.initializer)) { throw new Error(`Only string literals are supported in FormattedMessage in this context: ${path}.${name}`); } @@ -173,7 +179,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 51ee2627307..cc4f5aa1528 100644 --- a/packages/admin/admin-generator/src/commands/generate/generate-command.ts +++ b/packages/admin/admin-generator/src/commands/generate/generate-command.ts @@ -361,7 +361,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 d1c04e05dc5..23b28804621 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; localAliasName?: 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]; @@ -133,7 +137,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) => { @@ -270,7 +276,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 1586403e328..29a5e14e135 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 25f077cc576..033f8c2374f 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 @@ -160,7 +160,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 6cdc0f4369f..80c105b56c2 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) { @@ -298,7 +300,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 { @@ -389,16 +395,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"); @@ -410,7 +426,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 { @@ -483,7 +501,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..bb046284575 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,18 @@ 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 + // already defined + if (ret[field.name]) { + return; + } 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..88e8640d834 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,16 @@ 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`); + } + // this should not happen + if (schemaEntity.kind !== "OBJECT") { + throw new Error(`kind of ${gqlType} is not object, but should be.`); + } 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 8ab11594148..410579c1812 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 6307f78da9a..55df5b630be 100644 --- a/packages/admin/admin/src/mui/MasterLayout.tsx +++ b/packages/admin/admin/src/mui/MasterLayout.tsx @@ -78,7 +78,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..3c5bda646bf 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 + // don't render initial Page + if (isInitialPage(page.props.name)) { + return null; + } const path = `${removeTrailingSlash(subRoutePrefix)}/:id/${page.props.name}`; if (matchPath(location.pathname, { path })) { routeMatched = true; @@ -200,7 +211,9 @@ const StackSwitchInner: ForwardRefRenderFunction {(routeProps: RouteChildrenProps) => { - if (!routeProps.match) return null; + if (!routeProps.match) { + return null; + } return renderRoute(page, routeProps); }} @@ -209,7 +222,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..56284281417 100644 --- a/packages/admin/admin/src/table/usePersistedState.tsx +++ b/packages/admin/admin/src/table/usePersistedState.tsx @@ -14,12 +14,17 @@ 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 + // delete from allStates as the component is mounted now and handles it's state itself + if (stateId) { + delete allStates[stateId]; + } 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 6980aa12aa4..3299d3cf636 100644 --- a/packages/admin/cms-admin/src/userPermissions/hooks/currentUser.tsx +++ b/packages/admin/cms-admin/src/userPermissions/hooks/currentUser.tsx @@ -72,7 +72,9 @@ export const CurrentUserProvider = ({ isAllowed, children }: PropsWithChildren<{ ); } - if (!data) return ; + if (!data) { + return ; + } const context: CurrentUserContext = { currentUser: { @@ -93,7 +95,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 && @@ -107,13 +111,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..810348c006e 100644 --- a/packages/admin/cms-admin/src/warnings/WarningActions.tsx +++ b/packages/admin/cms-admin/src/warnings/WarningActions.tsx @@ -28,7 +28,10 @@ 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 + // 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; + } 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 4a878dff49e..6b7712cbbbb 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 @@ -250,7 +250,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"; @@ -473,7 +475,9 @@ export 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), @@ -486,7 +490,9 @@ export 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), @@ -499,7 +505,9 @@ export 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), @@ -662,7 +670,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)); @@ -720,7 +730,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)); } @@ -1235,7 +1247,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 @@ -1244,7 +1258,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/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__/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/__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/generateCrudInput/generate-crud-input.ts b/packages/api/api-generator/src/commands/generate/generateCrudInput/generate-crud-input.ts index 56b6fda36bd..04a96306f36 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/__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(); 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 38d414dc0c9..f8c755cb58b 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; } export 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..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,7 +66,10 @@ 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..a886582857f 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,22 @@ 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; + } + // Can happen because width is rounded and x not + if (x < 0) { + x = 0; + } 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; + } + // Can happen because height is rounded and y not + if (y < 0) { + y = 0; + } 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 4eb977ae5e3..52c0b697f0e 100644 --- a/packages/api/cms-api/src/mailer/mailer.service.ts +++ b/packages/api/cms-api/src/mailer/mailer.service.ts @@ -84,15 +84,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..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 @@ -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,18 @@ 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 + //don't double-preload + if (preloadedNodes.has(hash)) { + return; + } 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 a2f469fd027..db6ca93e68c 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 @@ -45,11 +45,21 @@ describe("UserPermissionsGuard", () => { affectedScope?: AffectedScopeMeta; }) => { 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 === AFFECTED_SCOPE_METADATA_KEY) return annotations.affectedScope; + 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 === AFFECTED_SCOPE_METADATA_KEY) { + return annotations.affectedScope; + } 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 72640714adb..68ea621ada9 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()/@AffectedScope()-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 ca161b815a9..23261e6c9b0 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 @@ -98,7 +98,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 }); @@ -106,24 +108,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 cd7940ad8eb..8304c3d8ae8 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/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", 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") { 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;