Skip to content

chore: Prefetch module apis in service worker#34003

Merged
dvj1988 merged 16 commits intoreleasefrom
chore/pre-fetch-modules-api
Jun 14, 2024
Merged

chore: Prefetch module apis in service worker#34003
dvj1988 merged 16 commits intoreleasefrom
chore/pre-fetch-modules-api

Conversation

@dvj1988
Copy link

@dvj1988 dvj1988 commented Jun 5, 2024

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"

🔍 Cypress test results

Tip

🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/9511154598
Commit: 785197e
Cypress dashboard url: Click here!

Communication

Should the DevRel and Marketing teams inform users about this change?

  • Yes
  • No

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.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jun 5, 2024

Walkthrough

The change involves extensive updates to various service worker utilities and configurations in the project. Key alterations include the addition of new constants, interfaces, and functions to manage service worker operations, updates to the page load API and service worker paths, and adaptations to the build configurations to accommodate file extension changes. Integration and unit tests were also updated to cover new functionalities and dependencies.

Changes

File Path Summary
app/client/.../serviceWorkerUtils.ts Introduced utility functions for service workers, added constants, interfaces, and classes.
app/client/.../serviceWorkerUtils.ts (EE) Exported all entities from the common service worker utilities.
app/client/src/serviceWorker.ts Renamed strategy class, updated imports, and replaced HTML fetch handler.
app/client/src/.../ConsolidatedPageLoadApi.tsx Updated API URLs construction with new static variables.
app/client/craco.build.config.js Changed service worker source file extension from .js to .ts.
app/client/craco.dev.config.js Changed service worker source file extension from .js to .ts.
app/client/package.json Added @types/node-fetch dependency and updated several type definitions.
app/client/.../serviceWorkerUtils.test.ts Added test cases for new service worker utilities and updated imports.

Poem

In the code we wove a tale so grand,
Paths were set and caches spanned,
APIs fetched with utmost care,
New extensions handled in the air.
Tests that guard our fortress bright,
Updates bring sure future sight.
Oh, code in harmony, day and night! 🍃

Warning

Review ran into problems

Problems (1)
  • Git: Failed to clone repository. Please contact CodeRabbit support.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added the skip-changelog Adding this label to a PR prevents it from being listed in the changelog label Jun 5, 2024
@dvj1988
Copy link
Author

dvj1988 commented Jun 5, 2024

/build-deploy-preview skip-tests=true

@github-actions
Copy link

github-actions bot commented Jun 5, 2024

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9392808373.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 34003.
recreate: .

@dvj1988
Copy link
Author

dvj1988 commented Jun 6, 2024

/build-deploy-preview skip-tests=true

@github-actions
Copy link

github-actions bot commented Jun 6, 2024

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9393111316.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 34003.
recreate: .

@github-actions
Copy link

github-actions bot commented Jun 6, 2024

Deploy-Preview-URL: https://ce-34003.dp.appsmith.com

@dvj1988
Copy link
Author

dvj1988 commented Jun 6, 2024

/build-deploy-preview skip-tests=true

@github-actions
Copy link

github-actions bot commented Jun 6, 2024

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9395277246.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 34003.
recreate: .

@github-actions
Copy link

github-actions bot commented Jun 6, 2024

Deploy-Preview-URL: https://ce-34003.dp.appsmith.com

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: Revert this file with new test cases.

@dvj1988
Copy link
Author

dvj1988 commented Jun 7, 2024

/build-deploy-preview skip-tests=true

@github-actions
Copy link

github-actions bot commented Jun 7, 2024

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9410863760.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 34003.
recreate: .

@github-actions
Copy link

github-actions bot commented Jun 7, 2024

Deploy-Preview-URL: https://ce-34003.dp.appsmith.com

@dvj1988
Copy link
Author

dvj1988 commented Jun 7, 2024

/build-deploy-preview skip-tests=true

@github-actions
Copy link

github-actions bot commented Jun 7, 2024

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9411847411.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 34003.
recreate: .

@github-actions
Copy link

github-actions bot commented Jun 7, 2024

Deploy-Preview-URL: https://ce-34003.dp.appsmith.com

@dvj1988 dvj1988 added the ok-to-test Required label for CI label Jun 7, 2024
@dvj1988 dvj1988 force-pushed the chore/pre-fetch-modules-api branch from 931fae5 to 700da97 Compare June 7, 2024 07:08
@dvj1988 dvj1988 marked this pull request as ready for review June 7, 2024 07:15
@dvj1988 dvj1988 requested a review from KelvinOm as a code owner June 7, 2024 07:15
@github-actions
Copy link

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9445780339.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 34003.
recreate: .

@dvj1988 dvj1988 added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jun 10, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between ddd578e and fda023a.

Files selected for processing (3)
  • app/client/src/ce/utils/serviceWorkerUtils.test.ts (1 hunks)
  • app/client/src/ce/utils/serviceWorkerUtils.ts (1 hunks)
  • app/client/src/serviceWorker.ts (3 hunks)
Additional context used
Biome
app/client/src/ce/utils/serviceWorkerUtils.ts

[error] 53-53: This default parameter should follow the last required parameter or should be a required parameter. (lint/style/useDefaultParameterLast)

The last required parameter is here:

A default parameter that precedes a required parameter cannot be omitted at call site.
Unsafe fix: Turn the parameter into a required parameter.


[error] 162-162: This constructor is unnecessary. (lint/complexity/noUselessConstructor)

Unsafe fix: Remove the unnecessary constructor.


[error] 29-29: Use a regular expression literal instead of the RegExp constructor. (lint/complexity/useRegexLiterals)

Regular expression literals avoid some escaping required in a string literal, and are easier to analyze statically.
Safe fix: Use a literal notation instead.

Additional comments not posted (1)
app/client/src/serviceWorker.ts (1)

92-94: Verify route registration logic.

Ensure that the route registration for HTML documents is correctly scoped and does not unintentionally capture unwanted requests.

Verification successful

The context around the new Route registration shows that the route is scoped to handle requests where sameOrigin is true and the request destination is "document". This indicates that the route is specifically targeting HTML document requests and should not unintentionally capture other types of requests.

  • The route registration logic appears to be correctly scoped to handle only HTML document requests.
Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Description: Verify route registration logic for HTML documents.

# Test: Search for route registration logic. Expect: Correct scoping of routes.
rg --type python $'new Route'

Length of output: 61



Script:

#!/bin/bash
# Description: Verify route registration logic for HTML documents.

# Test: Search for route registration logic. Expect: Correct scoping of routes.
rg --type ts 'new Route'

Length of output: 101



Script:

#!/bin/bash
# Description: Extract and review the context around the route registration logic for HTML documents.

# Extract 10 lines before and after the match to review the context.
rg --type ts -C 10 'new Route' app/client/src/serviceWorker.ts

Length of output: 646

Comment on lines +431 to +465
describe("getRequestKey", () => {
it("should return the correct request key", () => {
const request = new Request("https://app.appsmith.com", {
method: "GET",
});
request.headers.append("branchname", "main");
const key = prefetchApiService.getRequestKey(request);
expect(key).toBe("GET:https://app.appsmith.com/:branchname:main");
});
});

describe("aqcuireFetchMutex", () => {
it("should acquire a new mutex if not present", async () => {
const request = new Request("https://app.appsmith.com", {
method: "GET",
});
const acquireSpy = jest.spyOn(Mutex.prototype, "acquire");
await prefetchApiService.aqcuireFetchMutex(request);
expect(acquireSpy).toHaveBeenCalled();
});

it("should reuse existing mutex if present", async () => {
const request = new Request("https://app.appsmith.com", {
method: "GET",
});
const mutex = new Mutex();
prefetchApiService.prefetchFetchMutexMap.set(
prefetchApiService.getRequestKey(request),
mutex,
);
const acquireSpy = jest.spyOn(mutex, "acquire");
await prefetchApiService.aqcuireFetchMutex(request);
expect(acquireSpy).toHaveBeenCalled();
});
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Improve mutex handling in tests.

Refactor the mutex handling in tests to ensure that it is correctly tested and mocked:

- const acquireSpy = jest.spyOn(Mutex.prototype, "acquire");
- await prefetchApiService.aqcuireFetchMutex(request);
- expect(acquireSpy).toHaveBeenCalled();
+ const mutexMock = new Mutex();
+ jest.spyOn(prefetchApiService.prefetchFetchMutexMap, 'get').mockReturnValue(mutexMock);
+ const acquireSpy = jest.spyOn(mutexMock, "acquire");
+ await prefetchApiService.aqcuireFetchMutex(request);
+ expect(acquireSpy).toHaveBeenCalledTimes(1);
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
describe("getRequestKey", () => {
it("should return the correct request key", () => {
const request = new Request("https://app.appsmith.com", {
method: "GET",
});
request.headers.append("branchname", "main");
const key = prefetchApiService.getRequestKey(request);
expect(key).toBe("GET:https://app.appsmith.com/:branchname:main");
});
});
describe("aqcuireFetchMutex", () => {
it("should acquire a new mutex if not present", async () => {
const request = new Request("https://app.appsmith.com", {
method: "GET",
});
const acquireSpy = jest.spyOn(Mutex.prototype, "acquire");
await prefetchApiService.aqcuireFetchMutex(request);
expect(acquireSpy).toHaveBeenCalled();
});
it("should reuse existing mutex if present", async () => {
const request = new Request("https://app.appsmith.com", {
method: "GET",
});
const mutex = new Mutex();
prefetchApiService.prefetchFetchMutexMap.set(
prefetchApiService.getRequestKey(request),
mutex,
);
const acquireSpy = jest.spyOn(mutex, "acquire");
await prefetchApiService.aqcuireFetchMutex(request);
expect(acquireSpy).toHaveBeenCalled();
});
});
describe("getRequestKey", () => {
it("should return the correct request key", () => {
const request = new Request("https://app.appsmith.com", {
method: "GET",
});
request.headers.append("branchname", "main");
const key = prefetchApiService.getRequestKey(request);
expect(key).toBe("GET:https://app.appsmith.com/:branchname:main");
});
});
describe("aqcuireFetchMutex", () => {
it("should acquire a new mutex if not present", async () => {
const request = new Request("https://app.appsmith.com", {
method: "GET",
});
const mutexMock = new Mutex();
jest.spyOn(prefetchApiService.prefetchFetchMutexMap, 'get').mockReturnValue(mutexMock);
const acquireSpy = jest.spyOn(mutexMock, "acquire");
await prefetchApiService.aqcuireFetchMutex(request);
expect(acquireSpy).toHaveBeenCalledTimes(1);
});
it("should reuse existing mutex if present", async () => {
const request = new Request("https://app.appsmith.com", {
method: "GET",
});
const mutex = new Mutex();
prefetchApiService.prefetchFetchMutexMap.set(
prefetchApiService.getRequestKey(request),
mutex,
);
const acquireSpy = jest.spyOn(mutex, "acquire");
await prefetchApiService.aqcuireFetchMutex(request);
expect(acquireSpy).toHaveBeenCalled();
});
});

Comment on lines +16 to +20
(global as any).fetch = jest.fn() as jest.Mock;
(global as any).caches = {
open: jest.fn(),
delete: jest.fn(),
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mock global objects properly for isolation.

Ensure that global objects are mocked in a way that isolates tests from external changes:

- (global as any).fetch = jest.fn() as jest.Mock;
- (global as any).caches = {
-   open: jest.fn(),
-   delete: jest.fn(),
- };
+ jest.mock('node-fetch', () => ({
+   fetch: jest.fn(),
+ }));
+ jest.mock('caches', () => ({
+   open: jest.fn(),
+   delete: jest.fn(),
+ }));

Committable suggestion was skipped due to low confidence.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between ddd578e and 5619d00.

Files selected for processing (3)
  • app/client/src/ce/utils/serviceWorkerUtils.test.ts (1 hunks)
  • app/client/src/ce/utils/serviceWorkerUtils.ts (1 hunks)
  • app/client/src/serviceWorker.ts (3 hunks)
Additional context used
Biome
app/client/src/ce/utils/serviceWorkerUtils.ts

[error] 53-53: This default parameter should follow the last required parameter or should be a required parameter. (lint/style/useDefaultParameterLast)

The last required parameter is here:

A default parameter that precedes a required parameter cannot be omitted at call site.
Unsafe fix: Turn the parameter into a required parameter.


[error] 162-162: This constructor is unnecessary. (lint/complexity/noUselessConstructor)

Unsafe fix: Remove the unnecessary constructor.


[error] 29-29: Use a regular expression literal instead of the RegExp constructor. (lint/complexity/useRegexLiterals)

Regular expression literals avoid some escaping required in a string literal, and are easier to analyze statically.
Safe fix: Use a literal notation instead.

Additional comments not posted (5)
app/client/src/serviceWorker.ts (4)

10-14: Update import paths to reflect TypeScript conversion.


51-67: Enhanced prefetching logic for HTML route handling.

Ensure that error handling is robust in the prefetching logic, as silent failures might lead to debugging difficulties.


92-94: Good use of route conditions to ensure that only document-type requests from the same origin are handled.


100-103: Efficient caching strategy for API requests.

Consider logging or handling cases where the network fetch is necessary because the cache is missed.

app/client/src/ce/utils/serviceWorkerUtils.test.ts (1)

22-619: Comprehensive test coverage for new utility functions.

Consider adding negative test cases for scenarios where exceptions might occur, to ensure robust error handling.

@dvj1988 dvj1988 requested a review from rajatagrawal June 10, 2024 10:52
@dvj1988 dvj1988 added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jun 11, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 5619d00 and 4b25d98.

Files selected for processing (1)
  • app/client/src/ce/utils/serviceWorkerUtils.test.ts (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • app/client/src/ce/utils/serviceWorkerUtils.test.ts

@dvj1988
Copy link
Author

dvj1988 commented Jun 11, 2024

/build-deploy-preview skip-tests=true

@github-actions
Copy link

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9459326015.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 34003.
recreate: .

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 4b25d98 and c23df88.

Files selected for processing (2)
  • app/client/src/ce/utils/serviceWorkerUtils.test.ts (1 hunks)
  • app/client/src/ce/utils/serviceWorkerUtils.ts (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • app/client/src/ce/utils/serviceWorkerUtils.test.ts
Additional context used
Biome
app/client/src/ce/utils/serviceWorkerUtils.ts

[error] 52-52: This default parameter should follow the last required parameter or should be a required parameter. (lint/style/useDefaultParameterLast)

The last required parameter is here:

A default parameter that precedes a required parameter cannot be omitted at call site.
Unsafe fix: Turn the parameter into a required parameter.


[error] 161-161: This constructor is unnecessary. (lint/complexity/noUselessConstructor)

Unsafe fix: Remove the unnecessary constructor.


[error] 28-28: Use a regular expression literal instead of the RegExp constructor. (lint/complexity/useRegexLiterals)

Regular expression literals avoid some escaping required in a string literal, and are easier to analyze statically.
Safe fix: Use a literal notation instead.

/**
* returns the value in the query string for a key
*/
export const getSearchQuery = (search = "", key: string) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adjust the default parameter to follow the last required parameter.

- export const getSearchQuery = (search = "", key: string) => {
+ export const getSearchQuery = (key: string, search = "") => {
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
export const getSearchQuery = (search = "", key: string) => {
export const getSearchQuery = (key: string, search = "") => {
Tools
Biome

[error] 52-52: This default parameter should follow the last required parameter or should be a required parameter. (lint/style/useDefaultParameterLast)

The last required parameter is here:

A default parameter that precedes a required parameter cannot be omitted at call site.
Unsafe fix: Turn the parameter into a required parameter.

// Mutex to lock the fetch and cache operation
prefetchFetchMutexMap = new Map<string, Mutex>();

constructor() {}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove the unnecessary constructor to simplify the class definition.

- constructor() {}
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
constructor() {}
Tools
Biome

[error] 161-161: This constructor is unnecessary. (lint/complexity/noUselessConstructor)

Unsafe fix: Remove the unnecessary constructor.


type TApplicationParamsOrNull = TApplicationParams | null;

export const cachedApiUrlRegex = new RegExp("/api/v1/consolidated-api/");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider using a regular expression literal for better performance and readability.

- export const cachedApiUrlRegex = new RegExp("/api/v1/consolidated-api/");
+ export const cachedApiUrlRegex = /\/api\/v1\/consolidated-api\//;
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
export const cachedApiUrlRegex = new RegExp("/api/v1/consolidated-api/");
export const cachedApiUrlRegex = /\/api\/v1\/consolidated-api\//;
Tools
Biome

[error] 28-28: Use a regular expression literal instead of the RegExp constructor. (lint/complexity/useRegexLiterals)

Regular expression literals avoid some escaping required in a string literal, and are easier to analyze statically.
Safe fix: Use a literal notation instead.

@dvj1988 dvj1988 added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jun 13, 2024
@dvj1988
Copy link
Author

dvj1988 commented Jun 13, 2024

/build-deploy-preview skip-tests=true

@github-actions
Copy link

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9499546811.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 34003.
recreate: .

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between c23df88 and 785197e.

Files ignored due to path filters (1)
  • app/client/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
Files selected for processing (1)
  • app/client/package.json (1 hunks)
Files skipped from review due to trivial changes (1)
  • app/client/package.json

@dvj1988 dvj1988 added ok-to-test Required label for CI and removed ok-to-test Required label for CI labels Jun 14, 2024
@dvj1988
Copy link
Author

dvj1988 commented Jun 14, 2024

/build-deploy-preview skip-tests=true

@github-actions
Copy link

Deploying Your Preview: https://github.com/appsmithorg/appsmith/actions/runs/9512917544.
Workflow: On demand build Docker image and deploy preview.
skip-tests: true.
env: ``.
PR: 34003.
recreate: .

@github-actions
Copy link

Deploy-Preview-URL: https://ce-34003.dp.appsmith.com

@dvj1988 dvj1988 merged commit 4cb6ff0 into release Jun 14, 2024
@dvj1988 dvj1988 deleted the chore/pre-fetch-modules-api branch June 14, 2024 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-test Required label for CI skip-changelog Adding this label to a PR prevents it from being listed in the changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants