@wordpress/core-data 7.32.0 → 7.32.1-next.ff1cebbba.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/build/actions.js +375 -632
- package/build/actions.js.map +7 -1
- package/build/batch/create-batch.js +49 -62
- package/build/batch/create-batch.js.map +7 -1
- package/build/batch/default-processor.js +43 -39
- package/build/batch/default-processor.js.map +7 -1
- package/build/batch/index.js +38 -17
- package/build/batch/index.js.map +7 -1
- package/build/dynamic-entities.js +30 -32
- package/build/dynamic-entities.js.map +7 -1
- package/build/entities.js +298 -410
- package/build/entities.js.map +7 -1
- package/build/entity-context.js +29 -12
- package/build/entity-context.js.map +7 -1
- package/build/entity-provider.js +38 -46
- package/build/entity-provider.js.map +7 -1
- package/build/entity-types/attachment.js +16 -5
- package/build/entity-types/attachment.js.map +7 -1
- package/build/entity-types/base-entity-records.js +16 -42
- package/build/entity-types/base-entity-records.js.map +7 -1
- package/build/entity-types/base.js +16 -5
- package/build/entity-types/base.js.map +7 -1
- package/build/entity-types/comment.js +16 -5
- package/build/entity-types/comment.js.map +7 -1
- package/build/entity-types/global-styles-revision.js +16 -5
- package/build/entity-types/global-styles-revision.js.map +7 -1
- package/build/entity-types/helpers.js +16 -5
- package/build/entity-types/helpers.js.map +7 -1
- package/build/entity-types/index.js +16 -5
- package/build/entity-types/index.js.map +7 -1
- package/build/entity-types/menu-location.js +16 -5
- package/build/entity-types/menu-location.js.map +7 -1
- package/build/entity-types/nav-menu-item.js +16 -5
- package/build/entity-types/nav-menu-item.js.map +7 -1
- package/build/entity-types/nav-menu.js +16 -5
- package/build/entity-types/nav-menu.js.map +7 -1
- package/build/entity-types/page.js +16 -5
- package/build/entity-types/page.js.map +7 -1
- package/build/entity-types/plugin.js +16 -5
- package/build/entity-types/plugin.js.map +7 -1
- package/build/entity-types/post-revision.js +16 -5
- package/build/entity-types/post-revision.js.map +7 -1
- package/build/entity-types/post-status.js +16 -5
- package/build/entity-types/post-status.js.map +7 -1
- package/build/entity-types/post.js +16 -5
- package/build/entity-types/post.js.map +7 -1
- package/build/entity-types/settings.js +16 -5
- package/build/entity-types/settings.js.map +7 -1
- package/build/entity-types/sidebar.js +16 -5
- package/build/entity-types/sidebar.js.map +7 -1
- package/build/entity-types/taxonomy.js +16 -5
- package/build/entity-types/taxonomy.js.map +7 -1
- package/build/entity-types/term.js +16 -5
- package/build/entity-types/term.js.map +7 -1
- package/build/entity-types/theme.js +16 -5
- package/build/entity-types/theme.js.map +7 -1
- package/build/entity-types/type.js +16 -5
- package/build/entity-types/type.js.map +7 -1
- package/build/entity-types/user.js +16 -5
- package/build/entity-types/user.js.map +7 -1
- package/build/entity-types/widget-type.js +16 -5
- package/build/entity-types/widget-type.js.map +7 -1
- package/build/entity-types/widget.js +16 -5
- package/build/entity-types/widget.js.map +7 -1
- package/build/entity-types/wp-template-part.js +16 -5
- package/build/entity-types/wp-template-part.js.map +7 -1
- package/build/entity-types/wp-template.js +16 -5
- package/build/entity-types/wp-template.js.map +7 -1
- package/build/fetch/__experimental-fetch-link-suggestions.js +141 -154
- package/build/fetch/__experimental-fetch-link-suggestions.js.map +7 -1
- package/build/fetch/__experimental-fetch-url-data.js +47 -59
- package/build/fetch/__experimental-fetch-url-data.js.map +7 -1
- package/build/fetch/index.js +53 -32
- package/build/fetch/index.js.map +7 -1
- package/build/footnotes/get-footnotes-order.js +38 -25
- package/build/footnotes/get-footnotes-order.js.map +7 -1
- package/build/footnotes/get-rich-text-values-cached.js +26 -27
- package/build/footnotes/get-rich-text-values-cached.js.map +7 -1
- package/build/footnotes/index.js +68 -55
- package/build/footnotes/index.js.map +7 -1
- package/build/hooks/constants.js +33 -12
- package/build/hooks/constants.js.map +7 -1
- package/build/hooks/index.js +59 -68
- package/build/hooks/index.js.map +7 -1
- package/build/hooks/memoize.js +34 -12
- package/build/hooks/memoize.js.map +7 -1
- package/build/hooks/use-entity-block-editor.js +111 -119
- package/build/hooks/use-entity-block-editor.js.map +7 -1
- package/build/hooks/use-entity-id.js +25 -23
- package/build/hooks/use-entity-id.js.map +7 -1
- package/build/hooks/use-entity-prop.js +59 -60
- package/build/hooks/use-entity-prop.js.map +7 -1
- package/build/hooks/use-entity-record.js +95 -155
- package/build/hooks/use-entity-record.js.map +7 -1
- package/build/hooks/use-entity-records.js +131 -139
- package/build/hooks/use-entity-records.js.map +7 -1
- package/build/hooks/use-query-select.js +65 -84
- package/build/hooks/use-query-select.js.map +7 -1
- package/build/hooks/use-resource-permissions.js +92 -145
- package/build/hooks/use-resource-permissions.js.map +7 -1
- package/build/index.js +96 -153
- package/build/index.js.map +7 -1
- package/build/lock-unlock.js +31 -14
- package/build/lock-unlock.js.map +7 -1
- package/build/locks/actions.js +36 -19
- package/build/locks/actions.js.map +7 -1
- package/build/locks/engine.js +48 -47
- package/build/locks/engine.js.map +7 -1
- package/build/locks/reducer.js +54 -63
- package/build/locks/reducer.js.map +7 -1
- package/build/locks/selectors.js +35 -30
- package/build/locks/selectors.js.map +7 -1
- package/build/locks/utils.js +37 -16
- package/build/locks/utils.js.map +7 -1
- package/build/name.js +27 -12
- package/build/name.js.map +7 -1
- package/build/private-actions.js +67 -75
- package/build/private-actions.js.map +7 -1
- package/build/private-apis.js +33 -16
- package/build/private-apis.js.map +7 -1
- package/build/private-selectors.js +204 -184
- package/build/private-selectors.js.map +7 -1
- package/build/queried-data/actions.js +32 -41
- package/build/queried-data/actions.js.map +7 -1
- package/build/queried-data/get-query-parts.js +41 -79
- package/build/queried-data/get-query-parts.js.map +7 -1
- package/build/queried-data/index.js +39 -36
- package/build/queried-data/index.js.map +7 -1
- package/build/queried-data/reducer.js +162 -193
- package/build/queried-data/reducer.js.map +7 -1
- package/build/queried-data/selectors.js +57 -85
- package/build/queried-data/selectors.js.map +7 -1
- package/build/reducer.js +279 -404
- package/build/reducer.js.map +7 -1
- package/build/resolvers.js +553 -600
- package/build/resolvers.js.map +7 -1
- package/build/selectors.js +456 -981
- package/build/selectors.js.map +7 -1
- package/build/sync.js +34 -22
- package/build/sync.js.map +7 -1
- package/build/types.js +16 -5
- package/build/types.js.map +7 -1
- package/build/utils/conservative-map-item.js +34 -27
- package/build/utils/conservative-map-item.js.map +7 -1
- package/build/utils/crdt-blocks.js +289 -0
- package/build/utils/crdt-blocks.js.map +7 -0
- package/build/utils/crdt.js +202 -0
- package/build/utils/crdt.js.map +7 -0
- package/build/utils/forward-resolver.js +24 -16
- package/build/utils/forward-resolver.js.map +7 -1
- package/build/utils/get-nested-value.js +26 -21
- package/build/utils/get-nested-value.js.map +7 -1
- package/build/utils/get-normalized-comma-separable.js +25 -17
- package/build/utils/get-normalized-comma-separable.js.map +7 -1
- package/build/utils/if-matching-action.js +25 -19
- package/build/utils/if-matching-action.js.map +7 -1
- package/build/utils/index.js +77 -108
- package/build/utils/index.js.map +7 -1
- package/build/utils/is-numeric-id.js +22 -12
- package/build/utils/is-numeric-id.js.map +7 -1
- package/build/utils/is-raw-attribute.js +22 -13
- package/build/utils/is-raw-attribute.js.map +7 -1
- package/build/utils/log-entity-deprecation.js +37 -38
- package/build/utils/log-entity-deprecation.js.map +7 -1
- package/build/utils/on-sub-key.js +30 -24
- package/build/utils/on-sub-key.js.map +7 -1
- package/build/utils/receive-intermediate-results.js +29 -6
- package/build/utils/receive-intermediate-results.js.map +7 -1
- package/build/utils/replace-action.js +24 -17
- package/build/utils/replace-action.js.map +7 -1
- package/build/utils/set-nested-value.js +25 -30
- package/build/utils/set-nested-value.js.map +7 -1
- package/build/utils/user-permissions.js +41 -13
- package/build/utils/user-permissions.js.map +7 -1
- package/build/utils/with-weak-map-cache.js +26 -22
- package/build/utils/with-weak-map-cache.js.map +7 -1
- package/build-module/actions.js +322 -601
- package/build-module/actions.js.map +7 -1
- package/build-module/batch/create-batch.js +21 -57
- package/build-module/batch/create-batch.js.map +7 -1
- package/build-module/batch/default-processor.js +14 -33
- package/build-module/batch/default-processor.js.map +7 -1
- package/build-module/batch/index.js +7 -3
- package/build-module/batch/index.js.map +7 -1
- package/build-module/dynamic-entities.js +7 -28
- package/build-module/dynamic-entities.js.map +7 -1
- package/build-module/entities.js +263 -399
- package/build-module/entities.js.map +7 -1
- package/build-module/entity-context.js +7 -7
- package/build-module/entity-context.js.map +7 -1
- package/build-module/entity-provider.js +19 -42
- package/build-module/entity-provider.js.map +7 -1
- package/build-module/entity-types/attachment.js +1 -2
- package/build-module/entity-types/attachment.js.map +7 -1
- package/build-module/entity-types/base-entity-records.js +1 -37
- package/build-module/entity-types/base-entity-records.js.map +7 -1
- package/build-module/entity-types/base.js +1 -2
- package/build-module/entity-types/base.js.map +7 -1
- package/build-module/entity-types/comment.js +1 -2
- package/build-module/entity-types/comment.js.map +7 -1
- package/build-module/entity-types/global-styles-revision.js +1 -2
- package/build-module/entity-types/global-styles-revision.js.map +7 -1
- package/build-module/entity-types/helpers.js +1 -2
- package/build-module/entity-types/helpers.js.map +7 -1
- package/build-module/entity-types/index.js +1 -2
- package/build-module/entity-types/index.js.map +7 -1
- package/build-module/entity-types/menu-location.js +1 -2
- package/build-module/entity-types/menu-location.js.map +7 -1
- package/build-module/entity-types/nav-menu-item.js +1 -2
- package/build-module/entity-types/nav-menu-item.js.map +7 -1
- package/build-module/entity-types/nav-menu.js +1 -2
- package/build-module/entity-types/nav-menu.js.map +7 -1
- package/build-module/entity-types/page.js +1 -2
- package/build-module/entity-types/page.js.map +7 -1
- package/build-module/entity-types/plugin.js +1 -2
- package/build-module/entity-types/plugin.js.map +7 -1
- package/build-module/entity-types/post-revision.js +1 -2
- package/build-module/entity-types/post-revision.js.map +7 -1
- package/build-module/entity-types/post-status.js +1 -2
- package/build-module/entity-types/post-status.js.map +7 -1
- package/build-module/entity-types/post.js +1 -2
- package/build-module/entity-types/post.js.map +7 -1
- package/build-module/entity-types/settings.js +1 -2
- package/build-module/entity-types/settings.js.map +7 -1
- package/build-module/entity-types/sidebar.js +1 -2
- package/build-module/entity-types/sidebar.js.map +7 -1
- package/build-module/entity-types/taxonomy.js +1 -2
- package/build-module/entity-types/taxonomy.js.map +7 -1
- package/build-module/entity-types/term.js +1 -2
- package/build-module/entity-types/term.js.map +7 -1
- package/build-module/entity-types/theme.js +1 -2
- package/build-module/entity-types/theme.js.map +7 -1
- package/build-module/entity-types/type.js +1 -2
- package/build-module/entity-types/type.js.map +7 -1
- package/build-module/entity-types/user.js +1 -2
- package/build-module/entity-types/user.js.map +7 -1
- package/build-module/entity-types/widget-type.js +1 -2
- package/build-module/entity-types/widget-type.js.map +7 -1
- package/build-module/entity-types/widget.js +1 -2
- package/build-module/entity-types/widget.js.map +7 -1
- package/build-module/entity-types/wp-template-part.js +1 -2
- package/build-module/entity-types/wp-template-part.js.map +7 -1
- package/build-module/entity-types/wp-template.js +1 -2
- package/build-module/entity-types/wp-template.js.map +7 -1
- package/build-module/fetch/__experimental-fetch-link-suggestions.js +111 -149
- package/build-module/fetch/__experimental-fetch-link-suggestions.js.map +7 -1
- package/build-module/fetch/__experimental-fetch-url-data.js +20 -49
- package/build-module/fetch/__experimental-fetch-url-data.js.map +7 -1
- package/build-module/fetch/index.js +20 -15
- package/build-module/fetch/index.js.map +7 -1
- package/build-module/footnotes/get-footnotes-order.js +10 -19
- package/build-module/footnotes/get-footnotes-order.js.map +7 -1
- package/build-module/footnotes/get-rich-text-values-cached.js +8 -23
- package/build-module/footnotes/get-rich-text-values-cached.js.map +7 -1
- package/build-module/footnotes/index.js +34 -47
- package/build-module/footnotes/index.js.map +7 -1
- package/build-module/hooks/constants.js +11 -8
- package/build-module/hooks/constants.js.map +7 -1
- package/build-module/hooks/index.js +27 -15
- package/build-module/hooks/index.js.map +7 -1
- package/build-module/hooks/memoize.js +6 -8
- package/build-module/hooks/memoize.js.map +7 -1
- package/build-module/hooks/use-entity-block-editor.js +80 -110
- package/build-module/hooks/use-entity-block-editor.js.map +7 -1
- package/build-module/hooks/use-entity-id.js +7 -19
- package/build-module/hooks/use-entity-id.js.map +7 -1
- package/build-module/hooks/use-entity-prop.js +31 -55
- package/build-module/hooks/use-entity-prop.js.map +7 -1
- package/build-module/hooks/use-entity-record.js +63 -148
- package/build-module/hooks/use-entity-record.js.map +7 -1
- package/build-module/hooks/use-entity-records.js +98 -131
- package/build-module/hooks/use-entity-records.js.map +7 -1
- package/build-module/hooks/use-query-select.js +27 -71
- package/build-module/hooks/use-query-select.js.map +7 -1
- package/build-module/hooks/use-resource-permissions.js +57 -136
- package/build-module/hooks/use-resource-permissions.js.map +7 -1
- package/build-module/index.js +49 -71
- package/build-module/index.js.map +7 -1
- package/build-module/lock-unlock.js +8 -7
- package/build-module/lock-unlock.js.map +7 -1
- package/build-module/locks/actions.js +8 -13
- package/build-module/locks/actions.js.map +7 -1
- package/build-module/locks/engine.js +17 -38
- package/build-module/locks/engine.js.map +7 -1
- package/build-module/locks/reducer.js +37 -59
- package/build-module/locks/reducer.js.map +7 -1
- package/build-module/locks/selectors.js +16 -23
- package/build-module/locks/selectors.js.map +7 -1
- package/build-module/locks/utils.js +15 -12
- package/build-module/locks/utils.js.map +7 -1
- package/build-module/name.js +5 -8
- package/build-module/name.js.map +7 -1
- package/build-module/private-actions.js +35 -69
- package/build-module/private-actions.js.map +7 -1
- package/build-module/private-apis.js +8 -8
- package/build-module/private-apis.js.map +7 -1
- package/build-module/private-selectors.js +167 -174
- package/build-module/private-selectors.js.map +7 -1
- package/build-module/queried-data/actions.js +11 -38
- package/build-module/queried-data/actions.js.map +7 -1
- package/build-module/queried-data/get-query-parts.js +20 -75
- package/build-module/queried-data/get-query-parts.js.map +7 -1
- package/build-module/queried-data/index.js +7 -4
- package/build-module/queried-data/index.js.map +7 -1
- package/build-module/queried-data/reducer.js +134 -185
- package/build-module/queried-data/reducer.js.map +7 -1
- package/build-module/queried-data/selectors.js +23 -78
- package/build-module/queried-data/selectors.js.map +7 -1
- package/build-module/reducer.js +243 -393
- package/build-module/reducer.js.map +7 -1
- package/build-module/resolvers.js +478 -549
- package/build-module/resolvers.js.map +7 -1
- package/build-module/selectors.js +410 -953
- package/build-module/selectors.js.map +7 -1
- package/build-module/sync.js +14 -17
- package/build-module/sync.js.map +7 -1
- package/build-module/types.js +1 -2
- package/build-module/types.js.map +7 -1
- package/build-module/utils/conservative-map-item.js +6 -22
- package/build-module/utils/conservative-map-item.js.map +7 -1
- package/build-module/utils/crdt-blocks.js +255 -0
- package/build-module/utils/crdt-blocks.js.map +7 -0
- package/build-module/utils/crdt.js +167 -0
- package/build-module/utils/crdt.js.map +7 -0
- package/build-module/utils/forward-resolver.js +6 -12
- package/build-module/utils/forward-resolver.js.map +7 -1
- package/build-module/utils/get-nested-value.js +9 -18
- package/build-module/utils/get-nested-value.js.map +7 -1
- package/build-module/utils/get-normalized-comma-separable.js +7 -13
- package/build-module/utils/get-normalized-comma-separable.js.map +7 -1
- package/build-module/utils/if-matching-action.js +7 -15
- package/build-module/utils/if-matching-action.js.map +7 -1
- package/build-module/utils/index.js +35 -14
- package/build-module/utils/index.js.map +7 -1
- package/build-module/utils/is-numeric-id.js +5 -9
- package/build-module/utils/is-numeric-id.js.map +7 -1
- package/build-module/utils/is-raw-attribute.js +5 -10
- package/build-module/utils/is-raw-attribute.js.map +7 -1
- package/build-module/utils/log-entity-deprecation.js +8 -31
- package/build-module/utils/log-entity-deprecation.js.map +7 -1
- package/build-module/utils/on-sub-key.js +8 -19
- package/build-module/utils/on-sub-key.js.map +7 -1
- package/build-module/utils/receive-intermediate-results.js +7 -2
- package/build-module/utils/receive-intermediate-results.js.map +7 -1
- package/build-module/utils/replace-action.js +6 -13
- package/build-module/utils/replace-action.js.map +7 -1
- package/build-module/utils/set-nested-value.js +8 -27
- package/build-module/utils/set-nested-value.js.map +7 -1
- package/build-module/utils/user-permissions.js +19 -9
- package/build-module/utils/user-permissions.js.map +7 -1
- package/build-module/utils/with-weak-map-cache.js +8 -18
- package/build-module/utils/with-weak-map-cache.js.map +7 -1
- package/build-types/actions.d.ts.map +1 -1
- package/build-types/entities.d.ts +0 -56
- package/build-types/entities.d.ts.map +1 -1
- package/build-types/index.d.ts.map +1 -1
- package/build-types/private-selectors.d.ts.map +1 -1
- package/build-types/resolvers.d.ts +3 -0
- package/build-types/resolvers.d.ts.map +1 -1
- package/build-types/selectors.d.ts.map +1 -1
- package/build-types/sync.d.ts +6 -1
- package/build-types/sync.d.ts.map +1 -1
- package/build-types/types.d.ts +9 -0
- package/build-types/types.d.ts.map +1 -1
- package/build-types/utils/crdt-blocks.d.ts +30 -0
- package/build-types/utils/crdt-blocks.d.ts.map +1 -0
- package/build-types/utils/crdt.d.ts +49 -0
- package/build-types/utils/crdt.d.ts.map +1 -0
- package/package.json +26 -19
- package/src/actions.js +56 -74
- package/src/entities.js +59 -113
- package/src/private-selectors.ts +32 -7
- package/src/resolvers.js +173 -120
- package/src/selectors.ts +0 -13
- package/src/sync.ts +12 -0
- package/src/test/resolvers.js +183 -0
- package/src/types.ts +12 -0
- package/src/utils/crdt-blocks.ts +503 -0
- package/src/utils/crdt.ts +310 -0
- package/src/utils/test/crdt-blocks.ts +375 -0
- package/src/utils/test/crdt.ts +254 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/sync.js +0 -27
|
@@ -1,246 +1,215 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
Object.
|
|
5
|
-
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var reducer_exports = {};
|
|
30
|
+
__export(reducer_exports, {
|
|
31
|
+
default: () => reducer_default,
|
|
32
|
+
getMergedItemIds: () => getMergedItemIds,
|
|
33
|
+
itemIsComplete: () => itemIsComplete,
|
|
34
|
+
items: () => items
|
|
6
35
|
});
|
|
7
|
-
exports
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var _utils = require("../utils");
|
|
14
|
-
var _entities = require("../entities");
|
|
15
|
-
var _getQueryParts = _interopRequireDefault(require("./get-query-parts"));
|
|
16
|
-
/**
|
|
17
|
-
* WordPress dependencies
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Internal dependencies
|
|
22
|
-
*/
|
|
23
|
-
|
|
36
|
+
module.exports = __toCommonJS(reducer_exports);
|
|
37
|
+
var import_data = require("@wordpress/data");
|
|
38
|
+
var import_compose = require("@wordpress/compose");
|
|
39
|
+
var import_utils = require("../utils");
|
|
40
|
+
var import_entities = require("../entities");
|
|
41
|
+
var import_get_query_parts = __toESM(require("./get-query-parts"));
|
|
24
42
|
function getContextFromAction(action) {
|
|
25
|
-
const {
|
|
26
|
-
query
|
|
27
|
-
} = action;
|
|
43
|
+
const { query } = action;
|
|
28
44
|
if (!query) {
|
|
29
|
-
return
|
|
45
|
+
return "default";
|
|
30
46
|
}
|
|
31
|
-
const queryParts = (0,
|
|
47
|
+
const queryParts = (0, import_get_query_parts.default)(query);
|
|
32
48
|
return queryParts.context;
|
|
33
49
|
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Returns a merged array of item IDs, given details of the received paginated
|
|
37
|
-
* items. The array is sparse-like with `undefined` entries where holes exist.
|
|
38
|
-
*
|
|
39
|
-
* @param {?Array<number>} itemIds Original item IDs (default empty array).
|
|
40
|
-
* @param {number[]} nextItemIds Item IDs to merge.
|
|
41
|
-
* @param {number} page Page of items merged.
|
|
42
|
-
* @param {number} perPage Number of items per page.
|
|
43
|
-
*
|
|
44
|
-
* @return {number[]} Merged array of item IDs.
|
|
45
|
-
*/
|
|
46
50
|
function getMergedItemIds(itemIds, nextItemIds, page, perPage) {
|
|
47
|
-
var _itemIds$length;
|
|
48
51
|
const receivedAllIds = page === 1 && perPage === -1;
|
|
49
52
|
if (receivedAllIds) {
|
|
50
53
|
return nextItemIds;
|
|
51
54
|
}
|
|
52
55
|
const nextItemIdsStartIndex = (page - 1) * perPage;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
// Preallocate array since size is known.
|
|
56
|
+
const size = Math.max(
|
|
57
|
+
itemIds?.length ?? 0,
|
|
58
|
+
nextItemIdsStartIndex + nextItemIds.length
|
|
59
|
+
);
|
|
59
60
|
const mergedItemIds = new Array(size);
|
|
60
61
|
for (let i = 0; i < size; i++) {
|
|
61
|
-
// Preserve existing item ID except for subset of range of next items.
|
|
62
|
-
// We need to check against the possible maximum upper boundary because
|
|
63
|
-
// a page could receive fewer than what was previously stored.
|
|
64
62
|
const isInNextItemsRange = i >= nextItemIdsStartIndex && i < nextItemIdsStartIndex + perPage;
|
|
65
63
|
mergedItemIds[i] = isInNextItemsRange ? nextItemIds[i - nextItemIdsStartIndex] : itemIds?.[i];
|
|
66
64
|
}
|
|
67
65
|
return mergedItemIds;
|
|
68
66
|
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Helper function to filter out entities with certain IDs.
|
|
72
|
-
* Entities are keyed by their ID.
|
|
73
|
-
*
|
|
74
|
-
* @param {Object} entities Entity objects, keyed by entity ID.
|
|
75
|
-
* @param {Array} ids Entity IDs to filter out.
|
|
76
|
-
*
|
|
77
|
-
* @return {Object} Filtered entities.
|
|
78
|
-
*/
|
|
79
67
|
function removeEntitiesById(entities, ids) {
|
|
80
|
-
return Object.fromEntries(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
68
|
+
return Object.fromEntries(
|
|
69
|
+
Object.entries(entities).filter(
|
|
70
|
+
([id]) => !ids.some((itemId) => {
|
|
71
|
+
if (Number.isInteger(itemId)) {
|
|
72
|
+
return itemId === +id;
|
|
73
|
+
}
|
|
74
|
+
return itemId === id;
|
|
75
|
+
})
|
|
76
|
+
)
|
|
77
|
+
);
|
|
86
78
|
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Reducer tracking items state, keyed by ID. Items are assumed to be normal,
|
|
90
|
-
* where identifiers are common across all queries.
|
|
91
|
-
*
|
|
92
|
-
* @param {Object} state Current state.
|
|
93
|
-
* @param {Object} action Dispatched action.
|
|
94
|
-
*
|
|
95
|
-
* @return {Object} Next state.
|
|
96
|
-
*/
|
|
97
79
|
function items(state = {}, action) {
|
|
98
80
|
switch (action.type) {
|
|
99
|
-
case
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
[context]
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
81
|
+
case "RECEIVE_ITEMS": {
|
|
82
|
+
const context = getContextFromAction(action);
|
|
83
|
+
const key = action.key || import_entities.DEFAULT_ENTITY_KEY;
|
|
84
|
+
return {
|
|
85
|
+
...state,
|
|
86
|
+
[context]: {
|
|
87
|
+
...state[context],
|
|
88
|
+
...action.items.reduce((accumulator, value) => {
|
|
89
|
+
const itemId = value?.[key];
|
|
90
|
+
accumulator[itemId] = (0, import_utils.conservativeMapItem)(
|
|
91
|
+
state?.[context]?.[itemId],
|
|
92
|
+
value
|
|
93
|
+
);
|
|
94
|
+
return accumulator;
|
|
95
|
+
}, {})
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
case "REMOVE_ITEMS":
|
|
100
|
+
return Object.fromEntries(
|
|
101
|
+
Object.entries(state).map(([itemId, contextState]) => [
|
|
102
|
+
itemId,
|
|
103
|
+
removeEntitiesById(contextState, action.itemIds)
|
|
104
|
+
])
|
|
105
|
+
);
|
|
117
106
|
}
|
|
118
107
|
return state;
|
|
119
108
|
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Reducer tracking item completeness, keyed by ID. A complete item is one for
|
|
123
|
-
* which all fields are known. This is used in supporting `_fields` queries,
|
|
124
|
-
* where not all properties associated with an entity are necessarily returned.
|
|
125
|
-
* In such cases, completeness is used as an indication of whether it would be
|
|
126
|
-
* safe to use queried data for a non-`_fields`-limited request.
|
|
127
|
-
*
|
|
128
|
-
* @param {Object<string,Object<string,boolean>>} state Current state.
|
|
129
|
-
* @param {Object} action Dispatched action.
|
|
130
|
-
*
|
|
131
|
-
* @return {Object<string,Object<string,boolean>>} Next state.
|
|
132
|
-
*/
|
|
133
109
|
function itemIsComplete(state = {}, action) {
|
|
134
110
|
switch (action.type) {
|
|
135
|
-
case
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
// data may be outdated if receiving items for a field subset.
|
|
160
|
-
result[itemId] = state?.[context]?.[itemId] || isCompleteQuery;
|
|
161
|
-
return result;
|
|
162
|
-
}, {})
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
case 'REMOVE_ITEMS':
|
|
167
|
-
return Object.fromEntries(Object.entries(state).map(([itemId, contextState]) => [itemId, removeEntitiesById(contextState, action.itemIds)]));
|
|
111
|
+
case "RECEIVE_ITEMS": {
|
|
112
|
+
const context = getContextFromAction(action);
|
|
113
|
+
const { query, key = import_entities.DEFAULT_ENTITY_KEY } = action;
|
|
114
|
+
const queryParts = query ? (0, import_get_query_parts.default)(query) : {};
|
|
115
|
+
const isCompleteQuery = !query || !Array.isArray(queryParts.fields);
|
|
116
|
+
return {
|
|
117
|
+
...state,
|
|
118
|
+
[context]: {
|
|
119
|
+
...state[context],
|
|
120
|
+
...action.items.reduce((result, item) => {
|
|
121
|
+
const itemId = item?.[key];
|
|
122
|
+
result[itemId] = state?.[context]?.[itemId] || isCompleteQuery;
|
|
123
|
+
return result;
|
|
124
|
+
}, {})
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
case "REMOVE_ITEMS":
|
|
129
|
+
return Object.fromEntries(
|
|
130
|
+
Object.entries(state).map(([itemId, contextState]) => [
|
|
131
|
+
itemId,
|
|
132
|
+
removeEntitiesById(contextState, action.itemIds)
|
|
133
|
+
])
|
|
134
|
+
);
|
|
168
135
|
}
|
|
169
136
|
return state;
|
|
170
137
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
//
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
...action,
|
|
193
|
-
...(0, _getQueryParts.default)(action.query)
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
return action;
|
|
197
|
-
}), (0, _utils.onSubKey)('context'),
|
|
198
|
-
// Queries shape is shared, but keyed by query `stableKey` part. Original
|
|
199
|
-
// reducer tracks only a single query object.
|
|
200
|
-
(0, _utils.onSubKey)('stableKey')])((state = {}, action) => {
|
|
201
|
-
const {
|
|
202
|
-
type,
|
|
203
|
-
page,
|
|
204
|
-
perPage,
|
|
205
|
-
key = _entities.DEFAULT_ENTITY_KEY
|
|
206
|
-
} = action;
|
|
207
|
-
if (type !== 'RECEIVE_ITEMS') {
|
|
138
|
+
const receiveQueries = (0, import_compose.compose)([
|
|
139
|
+
// Limit to matching action type so we don't attempt to replace action on
|
|
140
|
+
// an unhandled action.
|
|
141
|
+
(0, import_utils.ifMatchingAction)((action) => "query" in action),
|
|
142
|
+
// Inject query parts into action for use both in `onSubKey` and reducer.
|
|
143
|
+
(0, import_utils.replaceAction)((action) => {
|
|
144
|
+
if (action.query) {
|
|
145
|
+
return {
|
|
146
|
+
...action,
|
|
147
|
+
...(0, import_get_query_parts.default)(action.query)
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
return action;
|
|
151
|
+
}),
|
|
152
|
+
(0, import_utils.onSubKey)("context"),
|
|
153
|
+
// Queries shape is shared, but keyed by query `stableKey` part. Original
|
|
154
|
+
// reducer tracks only a single query object.
|
|
155
|
+
(0, import_utils.onSubKey)("stableKey")
|
|
156
|
+
])((state = {}, action) => {
|
|
157
|
+
const { type, page, perPage, key = import_entities.DEFAULT_ENTITY_KEY } = action;
|
|
158
|
+
if (type !== "RECEIVE_ITEMS") {
|
|
208
159
|
return state;
|
|
209
160
|
}
|
|
210
161
|
return {
|
|
211
|
-
itemIds: getMergedItemIds(
|
|
162
|
+
itemIds: getMergedItemIds(
|
|
163
|
+
state?.itemIds || [],
|
|
164
|
+
action.items.map((item) => item?.[key]).filter(Boolean),
|
|
165
|
+
page,
|
|
166
|
+
perPage
|
|
167
|
+
),
|
|
212
168
|
meta: action.meta
|
|
213
169
|
};
|
|
214
170
|
});
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Reducer tracking queries state.
|
|
218
|
-
*
|
|
219
|
-
* @param {Object} state Current state.
|
|
220
|
-
* @param {Object} action Dispatched action.
|
|
221
|
-
*
|
|
222
|
-
* @return {Object} Next state.
|
|
223
|
-
*/
|
|
224
171
|
const queries = (state = {}, action) => {
|
|
225
172
|
switch (action.type) {
|
|
226
|
-
case
|
|
173
|
+
case "RECEIVE_ITEMS":
|
|
227
174
|
return receiveQueries(state, action);
|
|
228
|
-
case
|
|
175
|
+
case "REMOVE_ITEMS":
|
|
229
176
|
const removedItems = action.itemIds.reduce((result, itemId) => {
|
|
230
177
|
result[itemId] = true;
|
|
231
178
|
return result;
|
|
232
179
|
}, {});
|
|
233
|
-
return Object.fromEntries(
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
180
|
+
return Object.fromEntries(
|
|
181
|
+
Object.entries(state).map(
|
|
182
|
+
([queryGroup, contextQueries]) => [
|
|
183
|
+
queryGroup,
|
|
184
|
+
Object.fromEntries(
|
|
185
|
+
Object.entries(contextQueries).map(
|
|
186
|
+
([query, queryItems]) => [
|
|
187
|
+
query,
|
|
188
|
+
{
|
|
189
|
+
...queryItems,
|
|
190
|
+
itemIds: queryItems.itemIds.filter(
|
|
191
|
+
(queryId) => !removedItems[queryId]
|
|
192
|
+
)
|
|
193
|
+
}
|
|
194
|
+
]
|
|
195
|
+
)
|
|
196
|
+
)
|
|
197
|
+
]
|
|
198
|
+
)
|
|
199
|
+
);
|
|
237
200
|
default:
|
|
238
201
|
return state;
|
|
239
202
|
}
|
|
240
203
|
};
|
|
241
|
-
var
|
|
204
|
+
var reducer_default = (0, import_data.combineReducers)({
|
|
242
205
|
items,
|
|
243
206
|
itemIsComplete,
|
|
244
207
|
queries
|
|
245
208
|
});
|
|
246
|
-
|
|
209
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
210
|
+
0 && (module.exports = {
|
|
211
|
+
getMergedItemIds,
|
|
212
|
+
itemIsComplete,
|
|
213
|
+
items
|
|
214
|
+
});
|
|
215
|
+
//# sourceMappingURL=reducer.js.map
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_compose","_utils","_entities","_getQueryParts","_interopRequireDefault","getContextFromAction","action","query","queryParts","getQueryParts","context","getMergedItemIds","itemIds","nextItemIds","page","perPage","_itemIds$length","receivedAllIds","nextItemIdsStartIndex","size","Math","max","length","mergedItemIds","Array","i","isInNextItemsRange","removeEntitiesById","entities","ids","Object","fromEntries","entries","filter","id","some","itemId","Number","isInteger","items","state","type","key","DEFAULT_ENTITY_KEY","reduce","accumulator","value","conservativeMapItem","map","contextState","itemIsComplete","isCompleteQuery","isArray","fields","result","item","receiveQueries","compose","ifMatchingAction","replaceAction","onSubKey","Boolean","meta","queries","removedItems","queryGroup","contextQueries","queryItems","queryId","_default","exports","default","combineReducers"],"sources":["@wordpress/core-data/src/queried-data/reducer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tconservativeMapItem,\n\tifMatchingAction,\n\treplaceAction,\n\tonSubKey,\n} from '../utils';\nimport { DEFAULT_ENTITY_KEY } from '../entities';\nimport getQueryParts from './get-query-parts';\n\nfunction getContextFromAction( action ) {\n\tconst { query } = action;\n\tif ( ! query ) {\n\t\treturn 'default';\n\t}\n\n\tconst queryParts = getQueryParts( query );\n\treturn queryParts.context;\n}\n\n/**\n * Returns a merged array of item IDs, given details of the received paginated\n * items. The array is sparse-like with `undefined` entries where holes exist.\n *\n * @param {?Array<number>} itemIds Original item IDs (default empty array).\n * @param {number[]} nextItemIds Item IDs to merge.\n * @param {number} page Page of items merged.\n * @param {number} perPage Number of items per page.\n *\n * @return {number[]} Merged array of item IDs.\n */\nexport function getMergedItemIds( itemIds, nextItemIds, page, perPage ) {\n\tconst receivedAllIds = page === 1 && perPage === -1;\n\tif ( receivedAllIds ) {\n\t\treturn nextItemIds;\n\t}\n\tconst nextItemIdsStartIndex = ( page - 1 ) * perPage;\n\n\t// If later page has already been received, default to the larger known\n\t// size of the existing array, else calculate as extending the existing.\n\tconst size = Math.max(\n\t\titemIds?.length ?? 0,\n\t\tnextItemIdsStartIndex + nextItemIds.length\n\t);\n\n\t// Preallocate array since size is known.\n\tconst mergedItemIds = new Array( size );\n\n\tfor ( let i = 0; i < size; i++ ) {\n\t\t// Preserve existing item ID except for subset of range of next items.\n\t\t// We need to check against the possible maximum upper boundary because\n\t\t// a page could receive fewer than what was previously stored.\n\t\tconst isInNextItemsRange =\n\t\t\ti >= nextItemIdsStartIndex && i < nextItemIdsStartIndex + perPage;\n\t\tmergedItemIds[ i ] = isInNextItemsRange\n\t\t\t? nextItemIds[ i - nextItemIdsStartIndex ]\n\t\t\t: itemIds?.[ i ];\n\t}\n\n\treturn mergedItemIds;\n}\n\n/**\n * Helper function to filter out entities with certain IDs.\n * Entities are keyed by their ID.\n *\n * @param {Object} entities Entity objects, keyed by entity ID.\n * @param {Array} ids Entity IDs to filter out.\n *\n * @return {Object} Filtered entities.\n */\nfunction removeEntitiesById( entities, ids ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( entities ).filter(\n\t\t\t( [ id ] ) =>\n\t\t\t\t! ids.some( ( itemId ) => {\n\t\t\t\t\tif ( Number.isInteger( itemId ) ) {\n\t\t\t\t\t\treturn itemId === +id;\n\t\t\t\t\t}\n\t\t\t\t\treturn itemId === id;\n\t\t\t\t} )\n\t\t)\n\t);\n}\n\n/**\n * Reducer tracking items state, keyed by ID. Items are assumed to be normal,\n * where identifiers are common across all queries.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Next state.\n */\nexport function items( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_ITEMS': {\n\t\t\tconst context = getContextFromAction( action );\n\t\t\tconst key = action.key || DEFAULT_ENTITY_KEY;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ context ]: {\n\t\t\t\t\t...state[ context ],\n\t\t\t\t\t...action.items.reduce( ( accumulator, value ) => {\n\t\t\t\t\t\tconst itemId = value?.[ key ];\n\n\t\t\t\t\t\taccumulator[ itemId ] = conservativeMapItem(\n\t\t\t\t\t\t\tstate?.[ context ]?.[ itemId ],\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t}, {} ),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\tcase 'REMOVE_ITEMS':\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries( state ).map( ( [ itemId, contextState ] ) => [\n\t\t\t\t\titemId,\n\t\t\t\t\tremoveEntitiesById( contextState, action.itemIds ),\n\t\t\t\t] )\n\t\t\t);\n\t}\n\treturn state;\n}\n\n/**\n * Reducer tracking item completeness, keyed by ID. A complete item is one for\n * which all fields are known. This is used in supporting `_fields` queries,\n * where not all properties associated with an entity are necessarily returned.\n * In such cases, completeness is used as an indication of whether it would be\n * safe to use queried data for a non-`_fields`-limited request.\n *\n * @param {Object<string,Object<string,boolean>>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object<string,Object<string,boolean>>} Next state.\n */\nexport function itemIsComplete( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_ITEMS': {\n\t\t\tconst context = getContextFromAction( action );\n\t\t\tconst { query, key = DEFAULT_ENTITY_KEY } = action;\n\n\t\t\t// An item is considered complete if it is received without an associated\n\t\t\t// fields query. Ideally, this would be implemented in such a way where the\n\t\t\t// complete aggregate of all fields would satisfy completeness. Since the\n\t\t\t// fields are not consistent across all entities, this would require\n\t\t\t// introspection on the REST schema for each entity to know which fields\n\t\t\t// compose a complete item for that entity.\n\t\t\tconst queryParts = query ? getQueryParts( query ) : {};\n\t\t\tconst isCompleteQuery =\n\t\t\t\t! query || ! Array.isArray( queryParts.fields );\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ context ]: {\n\t\t\t\t\t...state[ context ],\n\t\t\t\t\t...action.items.reduce( ( result, item ) => {\n\t\t\t\t\t\tconst itemId = item?.[ key ];\n\n\t\t\t\t\t\t// Defer to completeness if already assigned. Technically the\n\t\t\t\t\t\t// data may be outdated if receiving items for a field subset.\n\t\t\t\t\t\tresult[ itemId ] =\n\t\t\t\t\t\t\tstate?.[ context ]?.[ itemId ] || isCompleteQuery;\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}, {} ),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\tcase 'REMOVE_ITEMS':\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries( state ).map( ( [ itemId, contextState ] ) => [\n\t\t\t\t\titemId,\n\t\t\t\t\tremoveEntitiesById( contextState, action.itemIds ),\n\t\t\t\t] )\n\t\t\t);\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer tracking queries state, keyed by stable query key. Each reducer\n * query object includes `itemIds` and `requestingPageByPerPage`.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Next state.\n */\nconst receiveQueries = compose( [\n\t// Limit to matching action type so we don't attempt to replace action on\n\t// an unhandled action.\n\tifMatchingAction( ( action ) => 'query' in action ),\n\n\t// Inject query parts into action for use both in `onSubKey` and reducer.\n\treplaceAction( ( action ) => {\n\t\t// `ifMatchingAction` still passes on initialization, where state is\n\t\t// undefined and a query is not assigned. Avoid attempting to parse\n\t\t// parts. `onSubKey` will omit by lack of `stableKey`.\n\t\tif ( action.query ) {\n\t\t\treturn {\n\t\t\t\t...action,\n\t\t\t\t...getQueryParts( action.query ),\n\t\t\t};\n\t\t}\n\n\t\treturn action;\n\t} ),\n\n\tonSubKey( 'context' ),\n\n\t// Queries shape is shared, but keyed by query `stableKey` part. Original\n\t// reducer tracks only a single query object.\n\tonSubKey( 'stableKey' ),\n] )( ( state = {}, action ) => {\n\tconst { type, page, perPage, key = DEFAULT_ENTITY_KEY } = action;\n\n\tif ( type !== 'RECEIVE_ITEMS' ) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\titemIds: getMergedItemIds(\n\t\t\tstate?.itemIds || [],\n\t\t\taction.items.map( ( item ) => item?.[ key ] ).filter( Boolean ),\n\t\t\tpage,\n\t\t\tperPage\n\t\t),\n\t\tmeta: action.meta,\n\t};\n} );\n\n/**\n * Reducer tracking queries state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Next state.\n */\nconst queries = ( state = {}, action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_ITEMS':\n\t\t\treturn receiveQueries( state, action );\n\t\tcase 'REMOVE_ITEMS':\n\t\t\tconst removedItems = action.itemIds.reduce( ( result, itemId ) => {\n\t\t\t\tresult[ itemId ] = true;\n\t\t\t\treturn result;\n\t\t\t}, {} );\n\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries( state ).map(\n\t\t\t\t\t( [ queryGroup, contextQueries ] ) => [\n\t\t\t\t\t\tqueryGroup,\n\t\t\t\t\t\tObject.fromEntries(\n\t\t\t\t\t\t\tObject.entries( contextQueries ).map(\n\t\t\t\t\t\t\t\t( [ query, queryItems ] ) => [\n\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t...queryItems,\n\t\t\t\t\t\t\t\t\t\titemIds: queryItems.itemIds.filter(\n\t\t\t\t\t\t\t\t\t\t\t( queryId ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t! removedItems[ queryId ]\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t),\n\t\t\t\t\t]\n\t\t\t\t)\n\t\t\t);\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport default combineReducers( {\n\titems,\n\titemIsComplete,\n\tqueries,\n} );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/queried-data/reducer.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tconservativeMapItem,\n\tifMatchingAction,\n\treplaceAction,\n\tonSubKey,\n} from '../utils';\nimport { DEFAULT_ENTITY_KEY } from '../entities';\nimport getQueryParts from './get-query-parts';\n\nfunction getContextFromAction( action ) {\n\tconst { query } = action;\n\tif ( ! query ) {\n\t\treturn 'default';\n\t}\n\n\tconst queryParts = getQueryParts( query );\n\treturn queryParts.context;\n}\n\n/**\n * Returns a merged array of item IDs, given details of the received paginated\n * items. The array is sparse-like with `undefined` entries where holes exist.\n *\n * @param {?Array<number>} itemIds Original item IDs (default empty array).\n * @param {number[]} nextItemIds Item IDs to merge.\n * @param {number} page Page of items merged.\n * @param {number} perPage Number of items per page.\n *\n * @return {number[]} Merged array of item IDs.\n */\nexport function getMergedItemIds( itemIds, nextItemIds, page, perPage ) {\n\tconst receivedAllIds = page === 1 && perPage === -1;\n\tif ( receivedAllIds ) {\n\t\treturn nextItemIds;\n\t}\n\tconst nextItemIdsStartIndex = ( page - 1 ) * perPage;\n\n\t// If later page has already been received, default to the larger known\n\t// size of the existing array, else calculate as extending the existing.\n\tconst size = Math.max(\n\t\titemIds?.length ?? 0,\n\t\tnextItemIdsStartIndex + nextItemIds.length\n\t);\n\n\t// Preallocate array since size is known.\n\tconst mergedItemIds = new Array( size );\n\n\tfor ( let i = 0; i < size; i++ ) {\n\t\t// Preserve existing item ID except for subset of range of next items.\n\t\t// We need to check against the possible maximum upper boundary because\n\t\t// a page could receive fewer than what was previously stored.\n\t\tconst isInNextItemsRange =\n\t\t\ti >= nextItemIdsStartIndex && i < nextItemIdsStartIndex + perPage;\n\t\tmergedItemIds[ i ] = isInNextItemsRange\n\t\t\t? nextItemIds[ i - nextItemIdsStartIndex ]\n\t\t\t: itemIds?.[ i ];\n\t}\n\n\treturn mergedItemIds;\n}\n\n/**\n * Helper function to filter out entities with certain IDs.\n * Entities are keyed by their ID.\n *\n * @param {Object} entities Entity objects, keyed by entity ID.\n * @param {Array} ids Entity IDs to filter out.\n *\n * @return {Object} Filtered entities.\n */\nfunction removeEntitiesById( entities, ids ) {\n\treturn Object.fromEntries(\n\t\tObject.entries( entities ).filter(\n\t\t\t( [ id ] ) =>\n\t\t\t\t! ids.some( ( itemId ) => {\n\t\t\t\t\tif ( Number.isInteger( itemId ) ) {\n\t\t\t\t\t\treturn itemId === +id;\n\t\t\t\t\t}\n\t\t\t\t\treturn itemId === id;\n\t\t\t\t} )\n\t\t)\n\t);\n}\n\n/**\n * Reducer tracking items state, keyed by ID. Items are assumed to be normal,\n * where identifiers are common across all queries.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Next state.\n */\nexport function items( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_ITEMS': {\n\t\t\tconst context = getContextFromAction( action );\n\t\t\tconst key = action.key || DEFAULT_ENTITY_KEY;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ context ]: {\n\t\t\t\t\t...state[ context ],\n\t\t\t\t\t...action.items.reduce( ( accumulator, value ) => {\n\t\t\t\t\t\tconst itemId = value?.[ key ];\n\n\t\t\t\t\t\taccumulator[ itemId ] = conservativeMapItem(\n\t\t\t\t\t\t\tstate?.[ context ]?.[ itemId ],\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t}, {} ),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\tcase 'REMOVE_ITEMS':\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries( state ).map( ( [ itemId, contextState ] ) => [\n\t\t\t\t\titemId,\n\t\t\t\t\tremoveEntitiesById( contextState, action.itemIds ),\n\t\t\t\t] )\n\t\t\t);\n\t}\n\treturn state;\n}\n\n/**\n * Reducer tracking item completeness, keyed by ID. A complete item is one for\n * which all fields are known. This is used in supporting `_fields` queries,\n * where not all properties associated with an entity are necessarily returned.\n * In such cases, completeness is used as an indication of whether it would be\n * safe to use queried data for a non-`_fields`-limited request.\n *\n * @param {Object<string,Object<string,boolean>>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object<string,Object<string,boolean>>} Next state.\n */\nexport function itemIsComplete( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_ITEMS': {\n\t\t\tconst context = getContextFromAction( action );\n\t\t\tconst { query, key = DEFAULT_ENTITY_KEY } = action;\n\n\t\t\t// An item is considered complete if it is received without an associated\n\t\t\t// fields query. Ideally, this would be implemented in such a way where the\n\t\t\t// complete aggregate of all fields would satisfy completeness. Since the\n\t\t\t// fields are not consistent across all entities, this would require\n\t\t\t// introspection on the REST schema for each entity to know which fields\n\t\t\t// compose a complete item for that entity.\n\t\t\tconst queryParts = query ? getQueryParts( query ) : {};\n\t\t\tconst isCompleteQuery =\n\t\t\t\t! query || ! Array.isArray( queryParts.fields );\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ context ]: {\n\t\t\t\t\t...state[ context ],\n\t\t\t\t\t...action.items.reduce( ( result, item ) => {\n\t\t\t\t\t\tconst itemId = item?.[ key ];\n\n\t\t\t\t\t\t// Defer to completeness if already assigned. Technically the\n\t\t\t\t\t\t// data may be outdated if receiving items for a field subset.\n\t\t\t\t\t\tresult[ itemId ] =\n\t\t\t\t\t\t\tstate?.[ context ]?.[ itemId ] || isCompleteQuery;\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}, {} ),\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t\tcase 'REMOVE_ITEMS':\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries( state ).map( ( [ itemId, contextState ] ) => [\n\t\t\t\t\titemId,\n\t\t\t\t\tremoveEntitiesById( contextState, action.itemIds ),\n\t\t\t\t] )\n\t\t\t);\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer tracking queries state, keyed by stable query key. Each reducer\n * query object includes `itemIds` and `requestingPageByPerPage`.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Next state.\n */\nconst receiveQueries = compose( [\n\t// Limit to matching action type so we don't attempt to replace action on\n\t// an unhandled action.\n\tifMatchingAction( ( action ) => 'query' in action ),\n\n\t// Inject query parts into action for use both in `onSubKey` and reducer.\n\treplaceAction( ( action ) => {\n\t\t// `ifMatchingAction` still passes on initialization, where state is\n\t\t// undefined and a query is not assigned. Avoid attempting to parse\n\t\t// parts. `onSubKey` will omit by lack of `stableKey`.\n\t\tif ( action.query ) {\n\t\t\treturn {\n\t\t\t\t...action,\n\t\t\t\t...getQueryParts( action.query ),\n\t\t\t};\n\t\t}\n\n\t\treturn action;\n\t} ),\n\n\tonSubKey( 'context' ),\n\n\t// Queries shape is shared, but keyed by query `stableKey` part. Original\n\t// reducer tracks only a single query object.\n\tonSubKey( 'stableKey' ),\n] )( ( state = {}, action ) => {\n\tconst { type, page, perPage, key = DEFAULT_ENTITY_KEY } = action;\n\n\tif ( type !== 'RECEIVE_ITEMS' ) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\titemIds: getMergedItemIds(\n\t\t\tstate?.itemIds || [],\n\t\t\taction.items.map( ( item ) => item?.[ key ] ).filter( Boolean ),\n\t\t\tpage,\n\t\t\tperPage\n\t\t),\n\t\tmeta: action.meta,\n\t};\n} );\n\n/**\n * Reducer tracking queries state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Next state.\n */\nconst queries = ( state = {}, action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'RECEIVE_ITEMS':\n\t\t\treturn receiveQueries( state, action );\n\t\tcase 'REMOVE_ITEMS':\n\t\t\tconst removedItems = action.itemIds.reduce( ( result, itemId ) => {\n\t\t\t\tresult[ itemId ] = true;\n\t\t\t\treturn result;\n\t\t\t}, {} );\n\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries( state ).map(\n\t\t\t\t\t( [ queryGroup, contextQueries ] ) => [\n\t\t\t\t\t\tqueryGroup,\n\t\t\t\t\t\tObject.fromEntries(\n\t\t\t\t\t\t\tObject.entries( contextQueries ).map(\n\t\t\t\t\t\t\t\t( [ query, queryItems ] ) => [\n\t\t\t\t\t\t\t\t\tquery,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t...queryItems,\n\t\t\t\t\t\t\t\t\t\titemIds: queryItems.itemIds.filter(\n\t\t\t\t\t\t\t\t\t\t\t( queryId ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t! removedItems[ queryId ]\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t),\n\t\t\t\t\t]\n\t\t\t\t)\n\t\t\t);\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nexport default combineReducers( {\n\titems,\n\titemIsComplete,\n\tqueries,\n} );\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["getQueryParts"]
|
|
7
|
+
}
|