From 048620884b5d458b109ac496e7a2056c202bd459 Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Wed, 18 Dec 2024 18:12:31 +0100 Subject: [PATCH] chore(types): Keep intelisense while being more loosen (#10657) **What** Keep the autocompletion for the fields API in Query APIs while being more flexible in order to prevent limitation from our depth limit but also to be more flexible when assigning string[] coming from the API for example. --- .changeset/pink-ways-count.md | 5 ++++ .../__tests__/remote-query.spec.ts | 29 ++++++++++--------- .../remote-query-object-from-string.ts | 16 ++++++---- 3 files changed, 30 insertions(+), 20 deletions(-) create mode 100644 .changeset/pink-ways-count.md diff --git a/.changeset/pink-ways-count.md b/.changeset/pink-ways-count.md new file mode 100644 index 0000000000000..b68038ea58326 --- /dev/null +++ b/.changeset/pink-ways-count.md @@ -0,0 +1,5 @@ +--- +"@medusajs/types": patch +--- + +chore(types): Keep intelisense while being more loosen diff --git a/packages/core/types/src/modules-sdk/__tests__/remote-query.spec.ts b/packages/core/types/src/modules-sdk/__tests__/remote-query.spec.ts index 96614a45b9997..31fb3680861db 100644 --- a/packages/core/types/src/modules-sdk/__tests__/remote-query.spec.ts +++ b/packages/core/types/src/modules-sdk/__tests__/remote-query.spec.ts @@ -14,20 +14,21 @@ describe("RemoteQuery", () => { it("should return the correct type for fields when using a string entry point", () => { type Result = RemoteQueryObjectConfig<"simple_product">["fields"] expectTypeOf().toEqualTypeOf< - ( - | "*" - | "id" - | "handle" - | "title" - | "variants.id" - | "variants.*" - | "sales_channels.id" - | "sales_channels.*" - | "sales_channels.name" - | "sales_channels_link.*" - | "sales_channels_link.product_id" - | "sales_channels_link.sales_channel_id" - )[] + | ( + | "*" + | "id" + | "handle" + | "title" + | "variants.id" + | "variants.*" + | "sales_channels.id" + | "sales_channels.*" + | "sales_channels.name" + | "sales_channels_link.*" + | "sales_channels_link.product_id" + | "sales_channels_link.sales_channel_id" + )[] + | string[] >() }) diff --git a/packages/core/types/src/modules-sdk/remote-query-object-from-string.ts b/packages/core/types/src/modules-sdk/remote-query-object-from-string.ts index 405f142ff3a03..d91279133a877 100644 --- a/packages/core/types/src/modules-sdk/remote-query-object-from-string.ts +++ b/packages/core/types/src/modules-sdk/remote-query-object-from-string.ts @@ -11,9 +11,11 @@ export type RemoteQueryObjectConfig = { RemoteQueryEntryPoints[TEntry & keyof RemoteQueryEntryPoints] > extends never ? string[] - : ObjectToRemoteQueryFields< - RemoteQueryEntryPoints[TEntry & keyof RemoteQueryEntryPoints] - >[] + : + | ObjectToRemoteQueryFields< + RemoteQueryEntryPoints[TEntry & keyof RemoteQueryEntryPoints] + >[] + | string[] } export type RemoteQueryObjectFromStringResult< @@ -36,9 +38,11 @@ export type RemoteQueryInput = { RemoteQueryEntryPoints[TEntry & keyof RemoteQueryEntryPoints] > extends never ? string[] - : ObjectToRemoteQueryFields< - RemoteQueryEntryPoints[TEntry & keyof RemoteQueryEntryPoints] - >[] + : + | ObjectToRemoteQueryFields< + RemoteQueryEntryPoints[TEntry & keyof RemoteQueryEntryPoints] + >[] + | string[] /** * Pagination configurations for the returned list of items. */