@sanity/client 7.4.0 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -122,6 +122,7 @@ export async function updateDocumentTitle(_id, title) {
122
122
  - [Example: Using the async flag](#example-using-the-async-flag)
123
123
  - [Transforming Documents](#transforming-documents)
124
124
  - [Transforming images](#transforming-images)
125
+ - [Image descriptions](#image-descriptions)
125
126
  - [Example: Field-based transformation](#example-field-based-transformation)
126
127
  - [Translating Documents](#translating-documents)
127
128
  - [Example: Storing language in a field](#example-storing-language-in-a-field)
@@ -2111,6 +2112,32 @@ Image transform can have per-path instructions, just like any other target paths
2111
2112
 
2112
2113
  - `target: [{path: ['image', 'asset'], instruction: 'Make the sky blue' }`
2113
2114
 
2115
+ ##### Image descriptions
2116
+
2117
+ ## Image description
2118
+
2119
+ Images can be transformed to a textual description by targeting a `string`, `text` or Portable Text field (`array` with `block`)
2120
+ with `operation: {type: 'image-description'}`.
2121
+
2122
+ Custom instructions for image description targets will be used to generate the description.
2123
+
2124
+ ###### Targeting image fields
2125
+ If a target is a descendant field of an image object, no `sourcePath` is required in the operation:
2126
+
2127
+ For example:
2128
+ - `target: {path: ['image', 'description'], operation: {type: 'image-description'} }`
2129
+ - `target: {path: ['array', {_key: 'abc'}, 'alt'], operation: {type: 'image-description'} } //assuming the item in the array on the key-ed path is an image`
2130
+ - `target: {path: ['image'], include: ['portableTextField'], operation: {type: 'image-description'}, instruction: 'Use formatting and headings to describe the image in great detail' }`
2131
+
2132
+ ###### Targeting non-image fields
2133
+ If the target image description lives outside an image object, use the `sourcePath` option to specify the path to the image field.
2134
+ `sourcePath` must be an image or image asset field.
2135
+
2136
+ For example:
2137
+ - `target: {path: ['description'], operation: {type: 'image-description', sourcePath: ['image', 'asset'] }`
2138
+ - `target: {path: ['wrapper', 'title'], operation: {type: 'image-description', sourcePath: ['array', {_key: 'abc'}, 'image'] }`
2139
+ - `target: {path: ['wrapper'], include: ['portableTextField'], operation: {type: 'image-description', sourcePath: ['image', 'asset'] }, instruction: 'Use formatting and headings to describe the image in great detail' }`
2140
+
2114
2141
  ##### Example: Field-based transformation
2115
2142
 
2116
2143
  ```ts
@@ -853,7 +853,7 @@ const encodeQueryString = ({
853
853
  const searchParams = new URLSearchParams(), { tag, includeMutations, returnQuery, ...opts } = options;
854
854
  tag && searchParams.append("tag", tag), searchParams.append("query", query);
855
855
  for (const [key, value] of Object.entries(params))
856
- searchParams.append(`$${key}`, JSON.stringify(value));
856
+ value !== void 0 && searchParams.append(`$${key}`, JSON.stringify(value));
857
857
  for (const [key, value] of Object.entries(opts))
858
858
  value && searchParams.append(key, `${value}`);
859
859
  return returnQuery === !1 && searchParams.append("returnQuery", "false"), includeMutations === !1 && searchParams.append("includeMutations", "false"), `?${searchParams}`;