PromucFlow_constructor/app/client/src/serviceWorker.ts

78 lines
2.3 KiB
TypeScript
Raw Normal View History

chore: add etag caching in consolidated api for application view mode (#38873) ## Description - Implement Etag caching for consolidated api in view mode. - Generate Etag for consolidated api in view mode - compare the if none match header with the computed etag and respond with either a 304 or 200 - add span for generate etag fn - Remove prefetching and caching of static assets in service worker ```mermaid sequenceDiagram Client->>Server: Request Consolidated API Server-->>Server: Compute ETag Server-->>Client: Respond with ETag, Cache-Control Client->>Server: Subsequent Request with If-None-Match alt ETag Matches Server-->>Client: 304 Not Modified else ETag Different Server-->>Client: Full Response with New ETag end ``` ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/13046610688> > Commit: c14d58da8a59b3bbfb10c7e308b518d2cd8e3b7d > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13046610688&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 30 Jan 2025 07:14:21 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added ETag support for consolidated API responses to improve caching efficiency. - Introduced a new route handler for the `/api/v1/consolidated-api/view` endpoint. - **Performance Improvements** - Optimized NGINX configuration for API responses. - Updated tracing endpoint for better monitoring. - **Dependency Updates** - Added Jackson datatype support for Java 8 date and time handling. - **Technical Enhancements** - Improved request handling in ConsolidatedAPIController. - Updated service worker configuration. - Refined feature flag handling in the client. - Enhanced API request headers for consolidated page load functions. - Simplified caching and routing logic in the service worker. - Adjusted service worker caching strategy for production environment. - Updated test specification path for Cypress limited tests. - Modified request handling to remove unnecessary headers in feature flag functions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-01-30 08:24:34 +00:00
import { clientsClaim, skipWaiting } from "workbox-core";
import { registerRoute, Route } from "workbox-routing";
chore: add etag caching in consolidated api for application view mode (#38873) ## Description - Implement Etag caching for consolidated api in view mode. - Generate Etag for consolidated api in view mode - compare the if none match header with the computed etag and respond with either a 304 or 200 - add span for generate etag fn - Remove prefetching and caching of static assets in service worker ```mermaid sequenceDiagram Client->>Server: Request Consolidated API Server-->>Server: Compute ETag Server-->>Client: Respond with ETag, Cache-Control Client->>Server: Subsequent Request with If-None-Match alt ETag Matches Server-->>Client: 304 Not Modified else ETag Different Server-->>Client: Full Response with New ETag end ``` ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/13046610688> > Commit: c14d58da8a59b3bbfb10c7e308b518d2cd8e3b7d > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13046610688&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 30 Jan 2025 07:14:21 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added ETag support for consolidated API responses to improve caching efficiency. - Introduced a new route handler for the `/api/v1/consolidated-api/view` endpoint. - **Performance Improvements** - Optimized NGINX configuration for API responses. - Updated tracing endpoint for better monitoring. - **Dependency Updates** - Added Jackson datatype support for Java 8 date and time handling. - **Technical Enhancements** - Improved request handling in ConsolidatedAPIController. - Updated service worker configuration. - Refined feature flag handling in the client. - Enhanced API request headers for consolidated page load functions. - Simplified caching and routing logic in the service worker. - Adjusted service worker caching strategy for production environment. - Updated test specification path for Cypress limited tests. - Modified request handling to remove unnecessary headers in feature flag functions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-01-30 08:24:34 +00:00
import { NetworkOnly } from "workbox-strategies";
import {
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
cachedApiUrlRegex,
getApplicationParamsFromUrl,
getPrefetchRequests,
PrefetchApiService,
} from "ee/utils/serviceWorkerUtils";
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
import type { RouteHandlerCallback } from "workbox-core/types";
2020-05-05 12:16:51 +00:00
chore: add etag caching in consolidated api for application view mode (#38873) ## Description - Implement Etag caching for consolidated api in view mode. - Generate Etag for consolidated api in view mode - compare the if none match header with the computed etag and respond with either a 304 or 200 - add span for generate etag fn - Remove prefetching and caching of static assets in service worker ```mermaid sequenceDiagram Client->>Server: Request Consolidated API Server-->>Server: Compute ETag Server-->>Client: Respond with ETag, Cache-Control Client->>Server: Subsequent Request with If-None-Match alt ETag Matches Server-->>Client: 304 Not Modified else ETag Different Server-->>Client: Full Response with New ETag end ``` ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/13046610688> > Commit: c14d58da8a59b3bbfb10c7e308b518d2cd8e3b7d > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13046610688&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 30 Jan 2025 07:14:21 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added ETag support for consolidated API responses to improve caching efficiency. - Introduced a new route handler for the `/api/v1/consolidated-api/view` endpoint. - **Performance Improvements** - Optimized NGINX configuration for API responses. - Updated tracing endpoint for better monitoring. - **Dependency Updates** - Added Jackson datatype support for Java 8 date and time handling. - **Technical Enhancements** - Improved request handling in ConsolidatedAPIController. - Updated service worker configuration. - Refined feature flag handling in the client. - Enhanced API request headers for consolidated page load functions. - Simplified caching and routing logic in the service worker. - Adjusted service worker caching strategy for production environment. - Updated test specification path for Cypress limited tests. - Modified request handling to remove unnecessary headers in feature flag functions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-01-30 08:24:34 +00:00
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
const wbManifest = (self as any).__WB_MANIFEST;
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
chore: add etag caching in consolidated api for application view mode (#38873) ## Description - Implement Etag caching for consolidated api in view mode. - Generate Etag for consolidated api in view mode - compare the if none match header with the computed etag and respond with either a 304 or 200 - add span for generate etag fn - Remove prefetching and caching of static assets in service worker ```mermaid sequenceDiagram Client->>Server: Request Consolidated API Server-->>Server: Compute ETag Server-->>Client: Respond with ETag, Cache-Control Client->>Server: Subsequent Request with If-None-Match alt ETag Matches Server-->>Client: 304 Not Modified else ETag Different Server-->>Client: Full Response with New ETag end ``` ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/13046610688> > Commit: c14d58da8a59b3bbfb10c7e308b518d2cd8e3b7d > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13046610688&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 30 Jan 2025 07:14:21 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added ETag support for consolidated API responses to improve caching efficiency. - Introduced a new route handler for the `/api/v1/consolidated-api/view` endpoint. - **Performance Improvements** - Optimized NGINX configuration for API responses. - Updated tracing endpoint for better monitoring. - **Dependency Updates** - Added Jackson datatype support for Java 8 date and time handling. - **Technical Enhancements** - Improved request handling in ConsolidatedAPIController. - Updated service worker configuration. - Refined feature flag handling in the client. - Enhanced API request headers for consolidated page load functions. - Simplified caching and routing logic in the service worker. - Adjusted service worker caching strategy for production environment. - Updated test specification path for Cypress limited tests. - Modified request handling to remove unnecessary headers in feature flag functions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-01-30 08:24:34 +00:00
// Delete the old pre-fetch cache. All static files are now cached by cache control headers.
caches.delete("appsmith-precache-v1");
chore: Remove some logs and errors from console - 1/n (#35674) ## Description This PR removes some of the errors and logs from the console. The following fixes were added to this PR - Remove the error => Refused to set unsafe header "Expect" - Remove the aria label warnings - Remove the logs from service worker in dev mode Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/10438062046> > Commit: 63fbfb22f40508ab298c765c4edbba7c42a125e1 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10438062046&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Sun, 18 Aug 2024 06:12:03 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Accessibility Improvements** - Added `aria-label` attributes to the `StyledSearchInput` and `Label` components for enhanced screen reader support. - Improved the semantic structure of the `Label` component by providing additional context for assistive technologies. - **Performance Enhancements** - Removed the `Expect` header from API requests to streamline the request process. - **Logging Adjustments** - Disabled development logs in the service worker to enhance performance in production environments. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-08-18 09:18:08 +00:00
self.__WB_DISABLE_DEV_LOGS = true;
2020-05-05 12:16:51 +00:00
skipWaiting();
clientsClaim();
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
const prefetchApiService = new PrefetchApiService();
/**
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
* Route handler callback for HTML pages.
* This callback is responsible for prefetching the API requests for the application page.
*/
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
const htmlRouteHandlerCallback: RouteHandlerCallback = async ({
event,
request,
url,
}) => {
// Extract application params from the URL
const applicationParams = getApplicationParamsFromUrl(url);
// If application params are present, prefetch the API requests for the application
if (applicationParams) {
const prefetchRequests = getPrefetchRequests(applicationParams);
prefetchRequests.forEach((prefetchRequest) => {
prefetchApiService.cacheApi(prefetchRequest).catch(() => {
// Silently fail
});
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
});
}
const networkHandler = new NetworkOnly();
chore: add blank line eslint rule (#36369) ## Description Added ESLint rule to force blank lines between statements. Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/10924926728> > Commit: 34f57714a1575ee04e94e03cbcaf95e57a96c86c > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10924926728&attempt=1&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank">Cypress dashboard</a>. > Tags: @tag.All > Spec: > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/Anvil/AnvilModal_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchGroupWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilTableWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilToolbarButtonWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts</ol> > <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">List of identified flaky tests</a>. > <hr>Wed, 18 Sep 2024 16:33:36 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No --------- Co-authored-by: Valera Melnikov <valera@appsmith.com>
2024-09-18 16:35:28 +00:00
return networkHandler.handle({ event, request });
};
registerRoute(
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
new Route(({ request, sameOrigin }) => {
return sameOrigin && request.destination === "document";
}, htmlRouteHandlerCallback),
);
// Route for fetching the API directly
registerRoute(
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
// Intercept requests to the consolidated API and module instances API
cachedApiUrlRegex,
async ({ event, request }) => {
// Check for cached response
chore: Prefetch module apis in service worker (#34003) ## Description This PR has the following changes - Modify the prefetch api cache strategy to handle multiple prefetch requests. - Convert the service worker files from js to ts - Code splitting of CE and EE for service worker utils to handle EE specific changes - Jest test cases for the updated logic Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9511154598> > Commit: 785197e27873e71ed457f785a73d4ea57f379213 > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9511154598&attempt=1" target="_blank">Click here!</a> <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request handling with new utility functions and caching strategies for service worker operations. - Updated service worker configuration to TypeScript for improved type safety and maintainability. - Added type definitions for `node-fetch` to support new service worker functionalities. - **Refactor** - Consolidated `view` and `edit` endpoint URL construction in `ConsolidatedPageLoadApi` for better code maintainability. - **Chores** - Updated dependencies in `package.json` for better development experience and compatibility. - Added tests for new service worker utility functions to ensure reliability and correctness. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-06-14 11:00:23 +00:00
const cachedResponse = await prefetchApiService.getCachedResponse(request);
// If the response is cached, return the response
if (cachedResponse) {
return cachedResponse;
}
// If the response is not cached, fetch the response
const networkHandler = new NetworkOnly();
chore: add blank line eslint rule (#36369) ## Description Added ESLint rule to force blank lines between statements. Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/10924926728> > Commit: 34f57714a1575ee04e94e03cbcaf95e57a96c86c > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10924926728&attempt=1&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank">Cypress dashboard</a>. > Tags: @tag.All > Spec: > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/Anvil/AnvilModal_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilButtonWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCheckboxGroupWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilCurrencyInputWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilIconButtonWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInlineButtonWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilInputWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilParagraphWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilPhoneInputWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilStatsWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchGroupWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilSwitchWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilTableWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilToolbarButtonWidgetSnapshot_spec.ts > <li>cypress/e2e/Regression/ClientSide/Anvil/Widgets/AnvilZoneSectionWidgetSnapshot_spec.ts</ol> > <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">List of identified flaky tests</a>. > <hr>Wed, 18 Sep 2024 16:33:36 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No --------- Co-authored-by: Valera Melnikov <valera@appsmith.com>
2024-09-18 16:35:28 +00:00
return networkHandler.handle({ event, request });
},
"GET",
);