@wordpress/data 10.41.0 → 10.41.1-next.v.202603102151.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.
Files changed (213) hide show
  1. package/README.md +20 -28
  2. package/build/components/async-mode-provider/context.cjs +1 -1
  3. package/build/components/async-mode-provider/context.cjs.map +3 -3
  4. package/build/components/async-mode-provider/index.cjs +1 -1
  5. package/build/components/async-mode-provider/index.cjs.map +1 -1
  6. package/build/components/async-mode-provider/use-async-mode.cjs +1 -1
  7. package/build/components/async-mode-provider/use-async-mode.cjs.map +3 -3
  8. package/build/components/registry-provider/context.cjs +1 -1
  9. package/build/components/registry-provider/context.cjs.map +1 -1
  10. package/build/components/registry-provider/index.cjs +1 -1
  11. package/build/components/registry-provider/index.cjs.map +1 -1
  12. package/build/components/registry-provider/use-registry.cjs +1 -1
  13. package/build/components/registry-provider/use-registry.cjs.map +3 -3
  14. package/build/components/use-dispatch/index.cjs +1 -1
  15. package/build/components/use-dispatch/index.cjs.map +1 -1
  16. package/build/components/use-dispatch/use-dispatch-with-map.cjs +1 -1
  17. package/build/components/use-dispatch/use-dispatch-with-map.cjs.map +3 -3
  18. package/build/components/use-dispatch/use-dispatch.cjs +1 -1
  19. package/build/components/use-dispatch/use-dispatch.cjs.map +3 -3
  20. package/build/components/use-select/index.cjs +2 -2
  21. package/build/components/use-select/index.cjs.map +3 -3
  22. package/build/components/with-dispatch/index.cjs +1 -1
  23. package/build/components/with-dispatch/index.cjs.map +3 -3
  24. package/build/components/with-registry/index.cjs +1 -1
  25. package/build/components/with-registry/index.cjs.map +3 -3
  26. package/build/components/with-select/index.cjs +1 -1
  27. package/build/components/with-select/index.cjs.map +3 -3
  28. package/build/controls.cjs +7 -6
  29. package/build/controls.cjs.map +3 -3
  30. package/build/default-registry.cjs +3 -2
  31. package/build/default-registry.cjs.map +3 -3
  32. package/build/dispatch.cjs +3 -1
  33. package/build/dispatch.cjs.map +2 -2
  34. package/build/factory.cjs.map +2 -2
  35. package/build/index.cjs +9 -8
  36. package/build/index.cjs.map +3 -3
  37. package/build/plugins/index.cjs +1 -1
  38. package/build/plugins/index.cjs.map +1 -1
  39. package/build/plugins/persistence/index.cjs +13 -8
  40. package/build/plugins/persistence/index.cjs.map +3 -3
  41. package/build/plugins/persistence/storage/default.cjs +1 -1
  42. package/build/plugins/persistence/storage/default.cjs.map +3 -3
  43. package/build/plugins/persistence/storage/object.cjs +1 -1
  44. package/build/plugins/persistence/storage/object.cjs.map +3 -3
  45. package/build/promise-middleware.cjs +2 -1
  46. package/build/promise-middleware.cjs.map +3 -3
  47. package/build/redux-store/index.cjs +32 -16
  48. package/build/redux-store/index.cjs.map +3 -3
  49. package/build/redux-store/metadata/selectors.cjs +1 -1
  50. package/build/redux-store/metadata/selectors.cjs.map +3 -3
  51. package/build/redux-store/metadata/types.cjs +19 -0
  52. package/build/redux-store/metadata/types.cjs.map +7 -0
  53. package/build/registry.cjs +11 -7
  54. package/build/registry.cjs.map +3 -3
  55. package/build/resolvers-cache-middleware.cjs +6 -3
  56. package/build/resolvers-cache-middleware.cjs.map +3 -3
  57. package/build/select.cjs +3 -1
  58. package/build/select.cjs.map +2 -2
  59. package/build/store/index.cjs +1 -1
  60. package/build/store/index.cjs.map +3 -3
  61. package/build/types.cjs.map +1 -1
  62. package/build-module/components/async-mode-provider/context.mjs +1 -1
  63. package/build-module/components/async-mode-provider/context.mjs.map +3 -3
  64. package/build-module/components/async-mode-provider/index.mjs +1 -1
  65. package/build-module/components/async-mode-provider/index.mjs.map +1 -1
  66. package/build-module/components/async-mode-provider/use-async-mode.mjs +1 -1
  67. package/build-module/components/async-mode-provider/use-async-mode.mjs.map +3 -3
  68. package/build-module/components/registry-provider/context.mjs +1 -1
  69. package/build-module/components/registry-provider/context.mjs.map +1 -1
  70. package/build-module/components/registry-provider/index.mjs +1 -1
  71. package/build-module/components/registry-provider/index.mjs.map +1 -1
  72. package/build-module/components/registry-provider/use-registry.mjs +1 -1
  73. package/build-module/components/registry-provider/use-registry.mjs.map +3 -3
  74. package/build-module/components/use-dispatch/index.mjs +1 -1
  75. package/build-module/components/use-dispatch/index.mjs.map +1 -1
  76. package/build-module/components/use-dispatch/use-dispatch-with-map.mjs +1 -1
  77. package/build-module/components/use-dispatch/use-dispatch-with-map.mjs.map +3 -3
  78. package/build-module/components/use-dispatch/use-dispatch.mjs +1 -1
  79. package/build-module/components/use-dispatch/use-dispatch.mjs.map +3 -3
  80. package/build-module/components/use-select/index.mjs +2 -2
  81. package/build-module/components/use-select/index.mjs.map +3 -3
  82. package/build-module/components/with-dispatch/index.mjs +1 -1
  83. package/build-module/components/with-dispatch/index.mjs.map +3 -3
  84. package/build-module/components/with-registry/index.mjs +1 -1
  85. package/build-module/components/with-registry/index.mjs.map +3 -3
  86. package/build-module/components/with-select/index.mjs +1 -1
  87. package/build-module/components/with-select/index.mjs.map +3 -3
  88. package/build-module/controls.mjs +7 -6
  89. package/build-module/controls.mjs.map +3 -3
  90. package/build-module/default-registry.mjs +3 -2
  91. package/build-module/default-registry.mjs.map +3 -3
  92. package/build-module/dispatch.mjs +3 -1
  93. package/build-module/dispatch.mjs.map +2 -2
  94. package/build-module/factory.mjs.map +2 -2
  95. package/build-module/index.mjs +4 -3
  96. package/build-module/index.mjs.map +2 -2
  97. package/build-module/plugins/index.mjs +1 -1
  98. package/build-module/plugins/index.mjs.map +1 -1
  99. package/build-module/plugins/persistence/index.mjs +13 -8
  100. package/build-module/plugins/persistence/index.mjs.map +3 -3
  101. package/build-module/plugins/persistence/storage/default.mjs +1 -1
  102. package/build-module/plugins/persistence/storage/default.mjs.map +3 -3
  103. package/build-module/plugins/persistence/storage/object.mjs +1 -1
  104. package/build-module/plugins/persistence/storage/object.mjs.map +3 -3
  105. package/build-module/promise-middleware.mjs +2 -1
  106. package/build-module/promise-middleware.mjs.map +3 -3
  107. package/build-module/redux-store/index.mjs +32 -16
  108. package/build-module/redux-store/index.mjs.map +3 -3
  109. package/build-module/redux-store/metadata/selectors.mjs +1 -1
  110. package/build-module/redux-store/metadata/selectors.mjs.map +3 -3
  111. package/build-module/redux-store/metadata/types.mjs +1 -0
  112. package/build-module/redux-store/metadata/types.mjs.map +7 -0
  113. package/build-module/registry.mjs +11 -7
  114. package/build-module/registry.mjs.map +3 -3
  115. package/build-module/resolvers-cache-middleware.mjs +6 -3
  116. package/build-module/resolvers-cache-middleware.mjs.map +3 -3
  117. package/build-module/select.mjs +3 -1
  118. package/build-module/select.mjs.map +2 -2
  119. package/build-module/store/index.mjs +1 -1
  120. package/build-module/store/index.mjs.map +3 -3
  121. package/build-types/components/async-mode-provider/context.d.ts +37 -3
  122. package/build-types/components/async-mode-provider/context.d.ts.map +1 -1
  123. package/build-types/components/async-mode-provider/index.d.ts +2 -2
  124. package/build-types/components/async-mode-provider/index.d.ts.map +1 -1
  125. package/build-types/components/async-mode-provider/use-async-mode.d.ts.map +1 -1
  126. package/build-types/components/registry-provider/context.d.ts +10 -3
  127. package/build-types/components/registry-provider/context.d.ts.map +1 -1
  128. package/build-types/components/registry-provider/index.d.ts +2 -2
  129. package/build-types/components/registry-provider/index.d.ts.map +1 -1
  130. package/build-types/components/registry-provider/use-registry.d.ts +3 -2
  131. package/build-types/components/registry-provider/use-registry.d.ts.map +1 -1
  132. package/build-types/components/use-dispatch/index.d.ts +2 -2
  133. package/build-types/components/use-dispatch/index.d.ts.map +1 -1
  134. package/build-types/components/use-dispatch/use-dispatch-with-map.d.ts +11 -9
  135. package/build-types/components/use-dispatch/use-dispatch-with-map.d.ts.map +1 -1
  136. package/build-types/components/use-dispatch/use-dispatch.d.ts +10 -19
  137. package/build-types/components/use-dispatch/use-dispatch.d.ts.map +1 -1
  138. package/build-types/components/use-select/index.d.ts +24 -28
  139. package/build-types/components/use-select/index.d.ts.map +1 -1
  140. package/build-types/components/with-dispatch/index.d.ts +10 -11
  141. package/build-types/components/with-dispatch/index.d.ts.map +1 -1
  142. package/build-types/components/with-registry/index.d.ts +2 -6
  143. package/build-types/components/with-registry/index.d.ts.map +1 -1
  144. package/build-types/components/with-select/index.d.ts +7 -8
  145. package/build-types/components/with-select/index.d.ts.map +1 -1
  146. package/build-types/controls.d.ts +57 -44
  147. package/build-types/controls.d.ts.map +1 -1
  148. package/build-types/default-registry.d.ts +2 -2
  149. package/build-types/default-registry.d.ts.map +1 -1
  150. package/build-types/dispatch.d.ts +4 -0
  151. package/build-types/dispatch.d.ts.map +1 -1
  152. package/build-types/factory.d.ts +2 -1
  153. package/build-types/factory.d.ts.map +1 -1
  154. package/build-types/index.d.ts.map +1 -1
  155. package/build-types/plugins/index.d.ts +1 -1
  156. package/build-types/plugins/index.d.ts.map +1 -1
  157. package/build-types/plugins/persistence/index.d.ts +38 -27
  158. package/build-types/plugins/persistence/index.d.ts.map +1 -1
  159. package/build-types/plugins/persistence/storage/default.d.ts +7 -1
  160. package/build-types/plugins/persistence/storage/default.d.ts.map +1 -1
  161. package/build-types/plugins/persistence/storage/object.d.ts +4 -5
  162. package/build-types/plugins/persistence/storage/object.d.ts.map +1 -1
  163. package/build-types/promise-middleware.d.ts +6 -4
  164. package/build-types/promise-middleware.d.ts.map +1 -1
  165. package/build-types/redux-store/index.d.ts +12 -15
  166. package/build-types/redux-store/index.d.ts.map +1 -1
  167. package/build-types/redux-store/metadata/selectors.d.ts +45 -50
  168. package/build-types/redux-store/metadata/selectors.d.ts.map +1 -1
  169. package/build-types/redux-store/metadata/types.d.ts +48 -0
  170. package/build-types/redux-store/metadata/types.d.ts.map +1 -0
  171. package/build-types/registry.d.ts +5 -49
  172. package/build-types/registry.d.ts.map +1 -1
  173. package/build-types/resolvers-cache-middleware.d.ts +13 -7
  174. package/build-types/resolvers-cache-middleware.d.ts.map +1 -1
  175. package/build-types/select.d.ts +3 -0
  176. package/build-types/select.d.ts.map +1 -1
  177. package/build-types/store/index.d.ts +5 -12
  178. package/build-types/store/index.d.ts.map +1 -1
  179. package/build-types/types.d.ts +201 -10
  180. package/build-types/types.d.ts.map +1 -1
  181. package/package.json +9 -9
  182. package/src/components/async-mode-provider/{context.js → context.ts} +0 -1
  183. package/src/components/async-mode-provider/{use-async-mode.js → use-async-mode.ts} +1 -1
  184. package/src/components/registry-provider/{use-registry.js → use-registry.ts} +3 -2
  185. package/src/components/use-dispatch/{use-dispatch-with-map.js → use-dispatch-with-map.ts} +18 -9
  186. package/src/components/use-dispatch/{use-dispatch.js → use-dispatch.ts} +25 -20
  187. package/src/components/use-select/{index.js → index.ts} +84 -70
  188. package/src/components/with-dispatch/{index.js → index.tsx} +20 -13
  189. package/src/components/with-registry/{index.js → index.tsx} +1 -5
  190. package/src/components/with-select/{index.js → index.tsx} +17 -10
  191. package/src/{controls.js → controls.ts} +53 -26
  192. package/src/{default-registry.js → default-registry.ts} +3 -1
  193. package/src/dispatch.ts +7 -1
  194. package/src/factory.ts +4 -3
  195. package/src/index.ts +4 -8
  196. package/src/plugins/persistence/{index.js → index.ts} +93 -54
  197. package/src/plugins/persistence/storage/{default.js → default.ts} +3 -2
  198. package/src/plugins/persistence/storage/object.ts +25 -0
  199. package/src/{promise-middleware.js → promise-middleware.ts} +3 -3
  200. package/src/redux-store/{index.js → index.ts} +218 -131
  201. package/src/redux-store/metadata/{selectors.js → selectors.ts} +83 -54
  202. package/src/redux-store/metadata/types.ts +100 -0
  203. package/src/{registry.js → registry.ts} +98 -88
  204. package/src/{resolvers-cache-middleware.js → resolvers-cache-middleware.ts} +22 -7
  205. package/src/select.ts +6 -1
  206. package/src/store/{index.js → index.ts} +13 -8
  207. package/src/types.ts +263 -24
  208. package/src/plugins/persistence/storage/object.js +0 -23
  209. /package/src/components/async-mode-provider/{index.js → index.ts} +0 -0
  210. /package/src/components/registry-provider/{context.js → context.ts} +0 -0
  211. /package/src/components/registry-provider/{index.js → index.ts} +0 -0
  212. /package/src/components/use-dispatch/{index.js → index.ts} +0 -0
  213. /package/src/plugins/{index.js → index.ts} +0 -0
@@ -1,7 +1,12 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import type { combineReducers as reduxCombineReducers } from 'redux';
4
+ import type { combineReducers as reduxCombineReducers, Store as ReduxStore } from 'redux';
5
+ /**
6
+ * Internal dependencies
7
+ */
8
+ import type { DataEmitter } from './utils/emitter';
9
+ import type { MetadataSelectors, MetadataActions } from './redux-store/metadata/types';
5
10
  type MapOf<T> = {
6
11
  [name: string]: T;
7
12
  };
@@ -24,7 +29,7 @@ export interface StoreDescriptor<Config extends AnyConfig = AnyConfig> {
24
29
  */
25
30
  instantiate: (registry: DataRegistry) => StoreInstance<Config>;
26
31
  }
27
- export interface ReduxStoreConfig<State, ActionCreators extends MapOf<ActionCreator>, Selectors> {
32
+ export interface ReduxStoreConfig<State, ActionCreators, Selectors> {
28
33
  initialState?: State;
29
34
  reducer: (state: any, action: any) => any;
30
35
  actions?: ActionCreators;
@@ -33,9 +38,9 @@ export interface ReduxStoreConfig<State, ActionCreators extends MapOf<ActionCrea
33
38
  controls?: MapOf<Function>;
34
39
  }
35
40
  export type UseSelectReturn<F extends MapSelect | StoreDescriptor<any>> = F extends MapSelect ? ReturnType<F> : F extends StoreDescriptor<any> ? CurriedSelectorsOf<F> : never;
36
- export type UseDispatchReturn<StoreNameOrDescriptor> = StoreNameOrDescriptor extends StoreDescriptor<any> ? ActionCreatorsOf<ConfigOf<StoreNameOrDescriptor>> : StoreNameOrDescriptor extends undefined ? DispatchFunction : any;
41
+ export type UseDispatchReturn<StoreNameOrDescriptor> = StoreNameOrDescriptor extends StoreDescriptor<any> ? ActionCreatorsOf<StoreNameOrDescriptor> : StoreNameOrDescriptor extends undefined ? DispatchFunction : any;
37
42
  export type DispatchFunction = <StoreNameOrDescriptor>(store: StoreNameOrDescriptor) => DispatchReturn<StoreNameOrDescriptor>;
38
- export type DispatchReturn<StoreNameOrDescriptor> = StoreNameOrDescriptor extends StoreDescriptor<any> ? ActionCreatorsOf<ConfigOf<StoreNameOrDescriptor>> : unknown;
43
+ export type DispatchReturn<StoreNameOrDescriptor> = StoreNameOrDescriptor extends StoreDescriptor<any> ? ActionCreatorsOf<StoreNameOrDescriptor> : unknown;
39
44
  export type MapSelect = (select: SelectFunction, registry: DataRegistry) => any;
40
45
  export type SelectFunction = <S>(store: S) => CurriedSelectorsOf<S>;
41
46
  /**
@@ -45,7 +50,7 @@ export type SelectFunction = <S>(store: S) => CurriedSelectorsOf<S>;
45
50
  export type ListenerFunction = () => void;
46
51
  export type CurriedSelectorsOf<S> = S extends StoreDescriptor<ReduxStoreConfig<any, any, infer Selectors>> ? {
47
52
  [key in keyof Selectors]: CurriedState<Selectors[key]>;
48
- } : never;
53
+ } & MetadataSelectors<S> : never;
49
54
  /**
50
55
  * Like CurriedState but wraps the return type in a Promise.
51
56
  * Used for resolveSelect where selectors return promises.
@@ -131,20 +136,206 @@ export interface SelectorWithCustomCurrySignature {
131
136
  CurriedSignature: Function;
132
137
  PromiseCurriedSignature?: Function;
133
138
  }
139
+ /**
140
+ * A store name or store descriptor, used throughout the API.
141
+ */
142
+ export type StoreNameOrDescriptor = string | StoreDescriptor;
143
+ /**
144
+ * An isolated orchestrator of store registrations.
145
+ *
146
+ * Returned by `createRegistry`. Provides methods to register stores,
147
+ * select data, dispatch actions, and subscribe to changes.
148
+ */
134
149
  export interface DataRegistry {
150
+ batch: (callback: () => void) => void;
151
+ stores: Record<string, InternalStoreInstance>;
152
+ namespaces: Record<string, InternalStoreInstance>;
153
+ subscribe: (listener: ListenerFunction, storeNameOrDescriptor?: StoreNameOrDescriptor) => () => void;
154
+ select: {
155
+ <S extends StoreDescriptor<any>>(store: S): CurriedSelectorsOf<S>;
156
+ (store: StoreNameOrDescriptor): Record<string, (...args: any[]) => any>;
157
+ };
158
+ resolveSelect: {
159
+ <S extends StoreDescriptor<any>>(store: S): CurriedSelectorsResolveOf<S>;
160
+ (store: StoreNameOrDescriptor): Record<string, (...args: any[]) => Promise<any>>;
161
+ };
162
+ suspendSelect: {
163
+ <S extends StoreDescriptor<any>>(store: S): CurriedSelectorsOf<S>;
164
+ (store: StoreNameOrDescriptor): Record<string, (...args: any[]) => any>;
165
+ };
166
+ dispatch: {
167
+ <S extends StoreDescriptor<any>>(store: S): ActionCreatorsOf<S>;
168
+ (store: StoreNameOrDescriptor): Record<string, (...args: any[]) => any>;
169
+ };
170
+ use: (plugin: DataPlugin, options?: Record<string, unknown>) => DataRegistry;
135
171
  register: (store: StoreDescriptor<any>) => void;
136
- dispatch: <S extends StoreDescriptor<any>>(store: S) => ActionCreatorsOf<ConfigOf<S>>;
172
+ registerGenericStore: (name: string, store: StoreInstance<AnyConfig>) => void;
173
+ registerStore: (storeName: string, options: ReduxStoreConfig<any, any, any>) => ReduxStore;
174
+ __unstableMarkListeningStores: <T>(callback: () => T, ref: {
175
+ current: string[] | null;
176
+ }) => T;
177
+ }
178
+ /**
179
+ * The plugin function signature.
180
+ */
181
+ export type DataPlugin = (registry: DataRegistry, options?: Record<string, unknown>) => Partial<DataRegistry>;
182
+ /**
183
+ * Status of a selector resolution.
184
+ */
185
+ export type ResolutionStatus = 'resolving' | 'finished' | 'error';
186
+ /**
187
+ * State value for a single resolution.
188
+ */
189
+ export type ResolutionState = {
190
+ status: 'resolving';
191
+ } | {
192
+ status: 'finished';
193
+ } | {
194
+ status: 'error';
195
+ error: Error | unknown;
196
+ };
197
+ /**
198
+ * A normalized resolver with a `fulfill` method and optional `isFulfilled`.
199
+ */
200
+ export interface NormalizedResolver {
201
+ /**
202
+ * The function to call to fulfill the resolver.
203
+ */
204
+ fulfill: (...args: any[]) => any;
205
+ /**
206
+ * Optional function to check if the resolver is already fulfilled.
207
+ */
208
+ isFulfilled?: (state: any, ...args: any[]) => boolean;
209
+ /**
210
+ * Optional function to check if the resolver should be invalidated.
211
+ */
212
+ shouldInvalidate?: (action: any, ...args: any[]) => boolean;
213
+ }
214
+ /**
215
+ * A bound selector with optional resolver metadata.
216
+ */
217
+ export interface BoundSelector {
218
+ (...args: any[]): any;
219
+ /**
220
+ * Whether this selector has a resolver attached.
221
+ */
222
+ hasResolver: boolean;
223
+ /**
224
+ * Optional function to normalize the arguments.
225
+ */
226
+ __unstableNormalizeArgs?: (args: any[]) => any[];
227
+ /**
228
+ * Whether this selector is a registry selector.
229
+ */
230
+ isRegistrySelector?: boolean;
231
+ /**
232
+ * The registry instance this selector is bound to.
233
+ */
234
+ registry?: DataRegistry;
235
+ }
236
+ /**
237
+ * The shape of a store instance as seen internally by the registry.
238
+ * Extends the public StoreInstance with additional internal properties.
239
+ */
240
+ export interface InternalStoreInstance<Config extends AnyConfig = AnyConfig> extends StoreInstance<Config> {
241
+ /**
242
+ * The Redux store instance (only for Redux-based stores).
243
+ */
244
+ store?: ReduxStore;
245
+ /**
246
+ * The internal emitter for pause/resume batching.
247
+ */
248
+ emitter: DataEmitter;
249
+ /**
250
+ * The combined reducer.
251
+ */
252
+ reducer?: (state: any, action: any) => any;
253
+ /**
254
+ * Bound actions object.
255
+ */
256
+ actions?: Record<string, ActionCreator>;
257
+ /**
258
+ * Bound selectors object.
259
+ */
260
+ selectors?: Record<string, Selector>;
261
+ /**
262
+ * Resolver definitions.
263
+ */
264
+ resolvers?: Record<string, NormalizedResolver>;
265
+ /**
266
+ * Returns resolve-wrapped selectors.
267
+ */
268
+ getResolveSelectors?: () => Record<string, (...args: any[]) => Promise<any>>;
269
+ /**
270
+ * Returns suspense-wrapped selectors.
271
+ */
272
+ getSuspendSelectors?: () => Record<string, (...args: any[]) => any>;
273
+ }
274
+ /**
275
+ * Control descriptor for the controls system.
276
+ */
277
+ export interface ControlDescriptor {
278
+ /**
279
+ * The type of the control action.
280
+ */
281
+ type: string;
282
+ /**
283
+ * The store key to target.
284
+ */
285
+ storeKey: string;
286
+ /**
287
+ * The name of the selector (for select/resolveSelect controls).
288
+ */
289
+ selectorName?: string;
290
+ /**
291
+ * The name of the action (for dispatch controls).
292
+ */
293
+ actionName?: string;
294
+ /**
295
+ * Arguments for the selector or action.
296
+ */
297
+ args: any[];
298
+ }
299
+ /**
300
+ * Storage interface (Web Storage API subset).
301
+ */
302
+ export interface StorageInterface {
303
+ getItem: (key: string) => string | null;
304
+ setItem: (key: string, value: string) => void;
305
+ removeItem?: (key: string) => void;
306
+ clear?: VoidFunction;
137
307
  }
138
308
  export type ConfigOf<S> = S extends StoreDescriptor<infer C> ? C : never;
139
- export type ActionCreatorsOf<Config extends AnyConfig> = Config extends ReduxStoreConfig<any, infer ActionCreators, any> ? PromisifiedActionCreators<ActionCreators> : never;
140
- export type PromisifiedActionCreators<ActionCreators extends MapOf<ActionCreator>> = {
141
- [Action in keyof ActionCreators]: PromisifyActionCreator<ActionCreators[Action]>;
309
+ export type ActionCreatorsOf<T> = T extends StoreDescriptor<ReduxStoreConfig<any, infer ActionCreators, any>> ? PromisifiedActionCreators<ActionCreators> & MetadataActions<T> : T extends ReduxStoreConfig<any, infer ActionCreators, any> ? PromisifiedActionCreators<ActionCreators> : never;
310
+ export type PromisifiedActionCreators<ActionCreators> = {
311
+ [Action in keyof ActionCreators]: ActionCreators[Action] extends ActionCreator ? PromisifyActionCreator<ActionCreators[Action]> : ActionCreators[Action];
142
312
  };
143
- export type PromisifyActionCreator<Action extends ActionCreator> = (...args: Parameters<Action>) => Promise<ReturnType<Action> extends (..._args: any[]) => any ? ThunkReturnType<Action> : ReturnType<Action>>;
313
+ export type PromisifyActionCreator<Action extends ActionCreator> = (...args: Parameters<Action>) => Promise<ReturnType<Action> extends (..._args: any[]) => any ? ThunkReturnType<Action> : ReturnType<Action> extends Generator<any, infer TReturn, any> ? TReturn : ReturnType<Action>>;
144
314
  export type ThunkReturnType<Action extends ActionCreator> = Awaited<ReturnType<ReturnType<Action>>>;
145
315
  type SelectorsOf<Config extends AnyConfig> = Config extends ReduxStoreConfig<any, any, infer Selectors> ? {
146
316
  [name in keyof Selectors]: Function;
147
317
  } : never;
318
+ /**
319
+ * The argument object passed to every thunk function. When parameterized with
320
+ * a store descriptor, `dispatch`, `select`, and `resolveSelect` are fully
321
+ * typed against that store's actions and selectors.
322
+ *
323
+ * @example
324
+ * ```ts
325
+ * const myAction =
326
+ * ( id: number ) =>
327
+ * async ( { dispatch, select }: ThunkArgs< typeof myStore > ) => {
328
+ * const record = select.getRecord( id );
329
+ * dispatch.setLoading( true );
330
+ * };
331
+ * ```
332
+ */
333
+ export interface ThunkArgs<S extends StoreDescriptor = StoreDescriptor> {
334
+ dispatch: ActionCreatorsOf<S> & ((action: Record<string, unknown> | Function) => unknown);
335
+ select: CurriedSelectorsOf<S>;
336
+ resolveSelect: CurriedSelectorsResolveOf<S>;
337
+ registry: DataRegistry;
338
+ }
148
339
  export type combineReducers = typeof reduxCombineReducers;
149
340
  export {};
150
341
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/data",
3
- "version": "10.41.0",
3
+ "version": "10.41.1-next.v.202603102151.0+59e17f9ec",
4
4
  "description": "Data module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -45,13 +45,13 @@
45
45
  "types": "build-types",
46
46
  "sideEffects": false,
47
47
  "dependencies": {
48
- "@wordpress/compose": "^7.41.0",
49
- "@wordpress/deprecated": "^4.41.0",
50
- "@wordpress/element": "^6.41.0",
51
- "@wordpress/is-shallow-equal": "^5.41.0",
52
- "@wordpress/priority-queue": "^3.41.0",
53
- "@wordpress/private-apis": "^1.41.0",
54
- "@wordpress/redux-routine": "^5.41.0",
48
+ "@wordpress/compose": "^7.41.1-next.v.202603102151.0+59e17f9ec",
49
+ "@wordpress/deprecated": "^4.41.1-next.v.202603102151.0+59e17f9ec",
50
+ "@wordpress/element": "^6.41.1-next.v.202603102151.0+59e17f9ec",
51
+ "@wordpress/is-shallow-equal": "^5.41.1-next.v.202603102151.0+59e17f9ec",
52
+ "@wordpress/priority-queue": "^3.41.1-next.v.202603102151.0+59e17f9ec",
53
+ "@wordpress/private-apis": "^1.41.1-next.v.202603102151.0+59e17f9ec",
54
+ "@wordpress/redux-routine": "^5.41.1-next.v.202603102151.0+59e17f9ec",
55
55
  "deepmerge": "^4.3.0",
56
56
  "equivalent-key-map": "^0.2.2",
57
57
  "is-plain-object": "^5.0.0",
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "8bfc179b9aed74c0a6dd6e8edf7a49e40e4f87cc"
72
+ "gitHead": "86db21e727d89e8f0dbba9300d2f97fd22b08693"
73
73
  }
@@ -43,6 +43,5 @@ export const AsyncModeConsumer = Consumer;
43
43
  * It is possible to nest multiple levels of AsyncModeProvider to fine-tune the rendering behavior.
44
44
  *
45
45
  * @param {boolean} props.value Enable Async Mode.
46
- * @return {Component} The component to be rendered.
47
46
  */
48
47
  export default Provider;
@@ -8,6 +8,6 @@ import { useContext } from '@wordpress/element';
8
8
  */
9
9
  import { Context } from './context';
10
10
 
11
- export default function useAsyncMode() {
11
+ export default function useAsyncMode(): boolean {
12
12
  return useContext( Context );
13
13
  }
@@ -7,6 +7,7 @@ import { useContext } from '@wordpress/element';
7
7
  * Internal dependencies
8
8
  */
9
9
  import { Context } from './context';
10
+ import type { DataRegistry } from '../../types';
10
11
 
11
12
  /**
12
13
  * A custom react hook exposing the registry context for use.
@@ -45,8 +46,8 @@ import { Context } from './context';
45
46
  * };
46
47
  * ```
47
48
  *
48
- * @return {import('../../types').DataRegistry} A custom react hook exposing the registry context value.
49
+ * @return A custom react hook exposing the registry context value.
49
50
  */
50
- export default function useRegistry() {
51
+ export default function useRegistry(): DataRegistry {
51
52
  return useContext( Context );
52
53
  }
@@ -8,6 +8,12 @@ import { useIsomorphicLayoutEffect } from '@wordpress/compose';
8
8
  * Internal dependencies
9
9
  */
10
10
  import useRegistry from '../registry-provider/use-registry';
11
+ import type { DataRegistry } from '../../types';
12
+
13
+ type DispatchMap = (
14
+ dispatch: DataRegistry[ 'dispatch' ],
15
+ registry: DataRegistry
16
+ ) => Record< string, ( ...args: unknown[] ) => unknown >;
11
17
 
12
18
  /**
13
19
  * Custom react hook for returning aggregate dispatch actions using the provided
@@ -15,15 +21,18 @@ import useRegistry from '../registry-provider/use-registry';
15
21
  *
16
22
  * Currently this is an internal api only and is implemented by `withDispatch`
17
23
  *
18
- * @param {Function} dispatchMap Receives the `registry.dispatch` function as
19
- * the first argument and the `registry` object
20
- * as the second argument. Should return an
21
- * object mapping props to functions.
22
- * @param {Array} deps An array of dependencies for the hook.
23
- * @return {Object} An object mapping props to functions created by the passed
24
- * in dispatchMap.
24
+ * @param dispatchMap Receives the `registry.dispatch` function as
25
+ * the first argument and the `registry` object
26
+ * as the second argument. Should return an
27
+ * object mapping props to functions.
28
+ * @param deps An array of dependencies for the hook.
29
+ * @return An object mapping props to functions created by the passed
30
+ * in dispatchMap.
25
31
  */
26
- const useDispatchWithMap = ( dispatchMap, deps ) => {
32
+ const useDispatchWithMap = (
33
+ dispatchMap: DispatchMap,
34
+ deps: unknown[]
35
+ ): Record< string, ( ...args: unknown[] ) => unknown > => {
27
36
  const registry = useRegistry();
28
37
  const currentDispatchMapRef = useRef( dispatchMap );
29
38
 
@@ -47,7 +56,7 @@ const useDispatchWithMap = ( dispatchMap, deps ) => {
47
56
  }
48
57
  return [
49
58
  propName,
50
- ( ...args ) =>
59
+ ( ...args: unknown[] ) =>
51
60
  currentDispatchMapRef
52
61
  .current( registry.dispatch, registry )
53
62
  [ propName ]( ...args ),
@@ -2,15 +2,11 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import useRegistry from '../registry-provider/use-registry';
5
-
6
- /**
7
- * @typedef {import('../../types').StoreDescriptor<StoreConfig>} StoreDescriptor
8
- * @template {import('../../types').AnyConfig} StoreConfig
9
- */
10
- /**
11
- * @typedef {import('../../types').UseDispatchReturn<StoreNameOrDescriptor>} UseDispatchReturn
12
- * @template StoreNameOrDescriptor
13
- */
5
+ import type {
6
+ StoreDescriptor,
7
+ AnyConfig,
8
+ UseDispatchReturn,
9
+ } from '../../types';
14
10
 
15
11
  /**
16
12
  * A custom react hook returning the current registry dispatch actions creators.
@@ -18,12 +14,11 @@ import useRegistry from '../registry-provider/use-registry';
18
14
  * Note: The component using this hook must be within the context of a
19
15
  * RegistryProvider.
20
16
  *
21
- * @template {undefined | string | StoreDescriptor<any>} StoreNameOrDescriptor
22
- * @param {StoreNameOrDescriptor} [storeNameOrDescriptor] Optionally provide the name of the
23
- * store or its descriptor from which to
24
- * retrieve action creators. If not
25
- * provided, the registry.dispatch
26
- * function is returned instead.
17
+ * @param storeNameOrDescriptor Optionally provide the name of the
18
+ * store or its descriptor from which to
19
+ * retrieve action creators. If not
20
+ * provided, the registry.dispatch
21
+ * function is returned instead.
27
22
  *
28
23
  * @example
29
24
  * This illustrates a pattern where you may need to retrieve dynamic data from
@@ -56,13 +51,23 @@ import useRegistry from '../registry-provider/use-registry';
56
51
  * //
57
52
  * // <SaleButton>Start Sale!</SaleButton>
58
53
  * ```
59
- * @return {UseDispatchReturn<StoreNameOrDescriptor>} A custom react hook.
54
+ *
55
+ * @return The dispatch function or action creators for the store.
60
56
  */
61
- const useDispatch = ( storeNameOrDescriptor ) => {
57
+ const useDispatch = <
58
+ StoreNameOrDescriptor extends
59
+ | undefined
60
+ | string
61
+ | StoreDescriptor< AnyConfig > = undefined,
62
+ >(
63
+ storeNameOrDescriptor?: StoreNameOrDescriptor
64
+ ): UseDispatchReturn< StoreNameOrDescriptor > => {
62
65
  const { dispatch } = useRegistry();
63
- return storeNameOrDescriptor === void 0
64
- ? dispatch
65
- : dispatch( storeNameOrDescriptor );
66
+ return (
67
+ storeNameOrDescriptor === void 0
68
+ ? dispatch
69
+ : dispatch( storeNameOrDescriptor as StoreDescriptor< AnyConfig > )
70
+ ) as UseDispatchReturn< StoreNameOrDescriptor >;
66
71
  };
67
72
 
68
73
  export default useDispatch;