@wordpress/data 9.9.0 → 9.10.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/CHANGELOG.md +6 -0
- package/build/components/async-mode-provider/context.js +2 -3
- package/build/components/async-mode-provider/context.js.map +1 -1
- package/build/components/async-mode-provider/index.js +0 -5
- package/build/components/async-mode-provider/index.js.map +1 -1
- package/build/components/async-mode-provider/use-async-mode.js +1 -3
- package/build/components/async-mode-provider/use-async-mode.js.map +1 -1
- package/build/components/registry-provider/context.js +3 -6
- package/build/components/registry-provider/context.js.map +1 -1
- package/build/components/registry-provider/index.js +0 -5
- package/build/components/registry-provider/index.js.map +1 -1
- package/build/components/registry-provider/use-registry.js +0 -3
- package/build/components/registry-provider/use-registry.js.map +1 -1
- package/build/components/use-dispatch/index.js +0 -3
- package/build/components/use-dispatch/index.js.map +1 -1
- package/build/components/use-dispatch/use-dispatch-with-map.js +0 -7
- package/build/components/use-dispatch/use-dispatch-with-map.js.map +1 -1
- package/build/components/use-dispatch/use-dispatch.js +0 -5
- package/build/components/use-dispatch/use-dispatch.js.map +1 -1
- package/build/components/use-select/index.js +35 -53
- package/build/components/use-select/index.js.map +1 -1
- package/build/components/with-dispatch/index.js +2 -7
- package/build/components/with-dispatch/index.js.map +1 -1
- package/build/components/with-registry/index.js +2 -5
- package/build/components/with-registry/index.js.map +1 -1
- package/build/components/with-select/index.js +2 -8
- package/build/components/with-select/index.js.map +1 -1
- package/build/controls.js +4 -10
- package/build/controls.js.map +1 -1
- package/build/default-registry.js +0 -3
- package/build/default-registry.js.map +1 -1
- package/build/dispatch.js +0 -3
- package/build/dispatch.js.map +1 -1
- package/build/factory.js +2 -5
- package/build/factory.js.map +1 -1
- package/build/index.js +7 -28
- package/build/index.js.map +1 -1
- package/build/lock-unlock.js +1 -2
- package/build/lock-unlock.js.map +1 -1
- package/build/plugins/index.js +0 -2
- package/build/plugins/index.js.map +1 -1
- package/build/plugins/persistence/index.js +13 -37
- package/build/plugins/persistence/index.js.map +1 -1
- package/build/plugins/persistence/storage/default.js +1 -5
- package/build/plugins/persistence/storage/default.js.map +1 -1
- package/build/plugins/persistence/storage/object.js +0 -5
- package/build/plugins/persistence/storage/object.js.map +1 -1
- package/build/promise-middleware.js +0 -5
- package/build/promise-middleware.js.map +1 -1
- package/build/redux-store/index.js +36 -117
- package/build/redux-store/index.js.map +1 -1
- package/build/redux-store/metadata/actions.js +8 -17
- package/build/redux-store/metadata/actions.js.map +1 -1
- package/build/redux-store/metadata/equivalent-key-map.d.js.map +1 -1
- package/build/redux-store/metadata/reducer.js +1 -23
- package/build/redux-store/metadata/reducer.js.map +1 -1
- package/build/redux-store/metadata/selectors.js +8 -22
- package/build/redux-store/metadata/selectors.js.map +1 -1
- package/build/redux-store/metadata/utils.js +6 -14
- package/build/redux-store/metadata/utils.js.map +1 -1
- package/build/redux-store/thunk-middleware.js +0 -2
- package/build/redux-store/thunk-middleware.js.map +1 -1
- package/build/registry.js +29 -73
- package/build/registry.js.map +1 -1
- package/build/resolvers-cache-middleware.js +2 -8
- package/build/resolvers-cache-middleware.js.map +1 -1
- package/build/select.js +0 -3
- package/build/select.js.map +1 -1
- package/build/store/index.js +0 -7
- package/build/store/index.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/utils/emitter.js +2 -11
- package/build/utils/emitter.js.map +1 -1
- package/build-module/components/async-mode-provider/context.js +1 -1
- package/build-module/components/async-mode-provider/context.js.map +1 -1
- package/build-module/components/async-mode-provider/index.js.map +1 -1
- package/build-module/components/async-mode-provider/use-async-mode.js +1 -1
- package/build-module/components/async-mode-provider/use-async-mode.js.map +1 -1
- package/build-module/components/registry-provider/context.js +3 -3
- package/build-module/components/registry-provider/context.js.map +1 -1
- package/build-module/components/registry-provider/index.js.map +1 -1
- package/build-module/components/registry-provider/use-registry.js +2 -2
- package/build-module/components/registry-provider/use-registry.js.map +1 -1
- package/build-module/components/use-dispatch/index.js.map +1 -1
- package/build-module/components/use-dispatch/use-dispatch-with-map.js +2 -4
- package/build-module/components/use-dispatch/use-dispatch-with-map.js.map +1 -1
- package/build-module/components/use-dispatch/use-dispatch.js +1 -3
- package/build-module/components/use-dispatch/use-dispatch.js.map +1 -1
- package/build-module/components/use-select/index.js +35 -46
- package/build-module/components/use-select/index.js.map +1 -1
- package/build-module/components/with-dispatch/index.js +4 -6
- package/build-module/components/with-dispatch/index.js.map +1 -1
- package/build-module/components/with-registry/index.js +4 -4
- package/build-module/components/with-registry/index.js.map +1 -1
- package/build-module/components/with-select/index.js +4 -6
- package/build-module/components/with-select/index.js.map +1 -1
- package/build-module/controls.js +4 -8
- package/build-module/controls.js.map +1 -1
- package/build-module/default-registry.js.map +1 -1
- package/build-module/dispatch.js +2 -1
- package/build-module/dispatch.js.map +1 -1
- package/build-module/factory.js +2 -3
- package/build-module/factory.js.map +1 -1
- package/build-module/index.js +11 -10
- package/build-module/index.js.map +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/plugins/index.js.map +1 -1
- package/build-module/plugins/persistence/index.js +15 -30
- package/build-module/plugins/persistence/index.js.map +1 -1
- package/build-module/plugins/persistence/storage/default.js +0 -2
- package/build-module/plugins/persistence/storage/default.js.map +1 -1
- package/build-module/plugins/persistence/storage/object.js +0 -5
- package/build-module/plugins/persistence/storage/object.js.map +1 -1
- package/build-module/promise-middleware.js +1 -3
- package/build-module/promise-middleware.js.map +1 -1
- package/build-module/redux-store/index.js +38 -101
- package/build-module/redux-store/index.js.map +1 -1
- package/build-module/redux-store/metadata/actions.js +8 -8
- package/build-module/redux-store/metadata/actions.js.map +1 -1
- package/build-module/redux-store/metadata/equivalent-key-map.d.js.map +1 -1
- package/build-module/redux-store/metadata/reducer.js +1 -21
- package/build-module/redux-store/metadata/reducer.js.map +1 -1
- package/build-module/redux-store/metadata/selectors.js +9 -13
- package/build-module/redux-store/metadata/selectors.js.map +1 -1
- package/build-module/redux-store/metadata/utils.js +6 -11
- package/build-module/redux-store/metadata/utils.js.map +1 -1
- package/build-module/redux-store/thunk-middleware.js +0 -1
- package/build-module/redux-store/thunk-middleware.js.map +1 -1
- package/build-module/registry.js +30 -67
- package/build-module/registry.js.map +1 -1
- package/build-module/resolvers-cache-middleware.js +3 -6
- package/build-module/resolvers-cache-middleware.js.map +1 -1
- package/build-module/select.js +2 -1
- package/build-module/select.js.map +1 -1
- package/build-module/store/index.js +0 -7
- package/build-module/store/index.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/utils/emitter.js +2 -10
- package/build-module/utils/emitter.js.map +1 -1
- package/build-types/components/use-select/index.d.ts.map +1 -1
- package/build-types/index.d.ts +1 -1
- package/build-types/index.d.ts.map +1 -1
- package/build-types/plugins/persistence/index.d.ts.map +1 -1
- package/build-types/private-apis.d.ts +3 -0
- package/build-types/private-apis.d.ts.map +1 -0
- package/build-types/store/index.d.ts +1 -1
- package/package.json +9 -9
- package/src/components/use-select/index.js +14 -0
- package/src/plugins/persistence/index.js +0 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -14,6 +14,7 @@ export function startResolution(selectorName, args) {
|
|
|
14
14
|
args
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
+
|
|
17
18
|
/**
|
|
18
19
|
* Returns an action object used in signalling that selector resolution has
|
|
19
20
|
* completed.
|
|
@@ -23,7 +24,6 @@ export function startResolution(selectorName, args) {
|
|
|
23
24
|
*
|
|
24
25
|
* @return {{ type: 'FINISH_RESOLUTION', selectorName: string, args: unknown[] }} Action object.
|
|
25
26
|
*/
|
|
26
|
-
|
|
27
27
|
export function finishResolution(selectorName, args) {
|
|
28
28
|
return {
|
|
29
29
|
type: 'FINISH_RESOLUTION',
|
|
@@ -31,6 +31,7 @@ export function finishResolution(selectorName, args) {
|
|
|
31
31
|
args
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
+
|
|
34
35
|
/**
|
|
35
36
|
* Returns an action object used in signalling that selector resolution has
|
|
36
37
|
* failed.
|
|
@@ -41,7 +42,6 @@ export function finishResolution(selectorName, args) {
|
|
|
41
42
|
*
|
|
42
43
|
* @return {{ type: 'FAIL_RESOLUTION', selectorName: string, args: unknown[], error: Error|unknown }} Action object.
|
|
43
44
|
*/
|
|
44
|
-
|
|
45
45
|
export function failResolution(selectorName, args, error) {
|
|
46
46
|
return {
|
|
47
47
|
type: 'FAIL_RESOLUTION',
|
|
@@ -50,6 +50,7 @@ export function failResolution(selectorName, args, error) {
|
|
|
50
50
|
error
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
+
|
|
53
54
|
/**
|
|
54
55
|
* Returns an action object used in signalling that a batch of selector resolutions has
|
|
55
56
|
* started.
|
|
@@ -60,7 +61,6 @@ export function failResolution(selectorName, args, error) {
|
|
|
60
61
|
*
|
|
61
62
|
* @return {{ type: 'START_RESOLUTIONS', selectorName: string, args: unknown[][] }} Action object.
|
|
62
63
|
*/
|
|
63
|
-
|
|
64
64
|
export function startResolutions(selectorName, args) {
|
|
65
65
|
return {
|
|
66
66
|
type: 'START_RESOLUTIONS',
|
|
@@ -68,6 +68,7 @@ export function startResolutions(selectorName, args) {
|
|
|
68
68
|
args
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
|
+
|
|
71
72
|
/**
|
|
72
73
|
* Returns an action object used in signalling that a batch of selector resolutions has
|
|
73
74
|
* completed.
|
|
@@ -78,7 +79,6 @@ export function startResolutions(selectorName, args) {
|
|
|
78
79
|
*
|
|
79
80
|
* @return {{ type: 'FINISH_RESOLUTIONS', selectorName: string, args: unknown[][] }} Action object.
|
|
80
81
|
*/
|
|
81
|
-
|
|
82
82
|
export function finishResolutions(selectorName, args) {
|
|
83
83
|
return {
|
|
84
84
|
type: 'FINISH_RESOLUTIONS',
|
|
@@ -86,6 +86,7 @@ export function finishResolutions(selectorName, args) {
|
|
|
86
86
|
args
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
|
+
|
|
89
90
|
/**
|
|
90
91
|
* Returns an action object used in signalling that a batch of selector resolutions has
|
|
91
92
|
* completed and at least one of them has failed.
|
|
@@ -97,7 +98,6 @@ export function finishResolutions(selectorName, args) {
|
|
|
97
98
|
* is associated to a resolution.
|
|
98
99
|
* @return {{ type: 'FAIL_RESOLUTIONS', selectorName: string, args: unknown[], errors: Array<Error|unknown> }} Action object.
|
|
99
100
|
*/
|
|
100
|
-
|
|
101
101
|
export function failResolutions(selectorName, args, errors) {
|
|
102
102
|
return {
|
|
103
103
|
type: 'FAIL_RESOLUTIONS',
|
|
@@ -106,6 +106,7 @@ export function failResolutions(selectorName, args, errors) {
|
|
|
106
106
|
errors
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
|
+
|
|
109
110
|
/**
|
|
110
111
|
* Returns an action object used in signalling that we should invalidate the resolution cache.
|
|
111
112
|
*
|
|
@@ -114,7 +115,6 @@ export function failResolutions(selectorName, args, errors) {
|
|
|
114
115
|
*
|
|
115
116
|
* @return {{ type: 'INVALIDATE_RESOLUTION', selectorName: string, args: any[] }} Action object.
|
|
116
117
|
*/
|
|
117
|
-
|
|
118
118
|
export function invalidateResolution(selectorName, args) {
|
|
119
119
|
return {
|
|
120
120
|
type: 'INVALIDATE_RESOLUTION',
|
|
@@ -122,18 +122,19 @@ export function invalidateResolution(selectorName, args) {
|
|
|
122
122
|
args
|
|
123
123
|
};
|
|
124
124
|
}
|
|
125
|
+
|
|
125
126
|
/**
|
|
126
127
|
* Returns an action object used in signalling that the resolution
|
|
127
128
|
* should be invalidated.
|
|
128
129
|
*
|
|
129
130
|
* @return {{ type: 'INVALIDATE_RESOLUTION_FOR_STORE' }} Action object.
|
|
130
131
|
*/
|
|
131
|
-
|
|
132
132
|
export function invalidateResolutionForStore() {
|
|
133
133
|
return {
|
|
134
134
|
type: 'INVALIDATE_RESOLUTION_FOR_STORE'
|
|
135
135
|
};
|
|
136
136
|
}
|
|
137
|
+
|
|
137
138
|
/**
|
|
138
139
|
* Returns an action object used in signalling that the resolution cache for a
|
|
139
140
|
* given selectorName should be invalidated.
|
|
@@ -143,7 +144,6 @@ export function invalidateResolutionForStore() {
|
|
|
143
144
|
*
|
|
144
145
|
* @return {{ type: 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR', selectorName: string }} Action object.
|
|
145
146
|
*/
|
|
146
|
-
|
|
147
147
|
export function invalidateResolutionForStoreSelector(selectorName) {
|
|
148
148
|
return {
|
|
149
149
|
type: 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["startResolution","selectorName","args","type","finishResolution","failResolution","error","startResolutions","finishResolutions","failResolutions","errors","invalidateResolution","invalidateResolutionForStore","invalidateResolutionForStoreSelector"],"sources":["@wordpress/data/src/redux-store/metadata/actions.js"],"sourcesContent":["/**\n * Returns an action object used in signalling that selector resolution has\n * started.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args Arguments to associate for uniqueness.\n *\n * @return {{ type: 'START_RESOLUTION', selectorName: string, args: unknown[] }} Action object.\n */\nexport function startResolution( selectorName, args ) {\n\treturn {\n\t\ttype: 'START_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that selector resolution has\n * completed.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args Arguments to associate for uniqueness.\n *\n * @return {{ type: 'FINISH_RESOLUTION', selectorName: string, args: unknown[] }} Action object.\n */\nexport function finishResolution( selectorName, args ) {\n\treturn {\n\t\ttype: 'FINISH_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that selector resolution has\n * failed.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args Arguments to associate for uniqueness.\n * @param {Error|unknown} error The error that caused the failure.\n *\n * @return {{ type: 'FAIL_RESOLUTION', selectorName: string, args: unknown[], error: Error|unknown }} Action object.\n */\nexport function failResolution( selectorName, args, error ) {\n\treturn {\n\t\ttype: 'FAIL_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t\terror,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a batch of selector resolutions has\n * started.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[][]} args Array of arguments to associate for uniqueness, each item\n * is associated to a resolution.\n *\n * @return {{ type: 'START_RESOLUTIONS', selectorName: string, args: unknown[][] }} Action object.\n */\nexport function startResolutions( selectorName, args ) {\n\treturn {\n\t\ttype: 'START_RESOLUTIONS',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a batch of selector resolutions has\n * completed.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[][]} args Array of arguments to associate for uniqueness, each item\n * is associated to a resolution.\n *\n * @return {{ type: 'FINISH_RESOLUTIONS', selectorName: string, args: unknown[][] }} Action object.\n */\nexport function finishResolutions( selectorName, args ) {\n\treturn {\n\t\ttype: 'FINISH_RESOLUTIONS',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that a batch of selector resolutions has\n * completed and at least one of them has failed.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {unknown[]} args Array of arguments to associate for uniqueness, each item\n * is associated to a resolution.\n * @param {(Error|unknown)[]} errors Array of errors to associate for uniqueness, each item\n * is associated to a resolution.\n * @return {{ type: 'FAIL_RESOLUTIONS', selectorName: string, args: unknown[], errors: Array<Error|unknown> }} Action object.\n */\nexport function failResolutions( selectorName, args, errors ) {\n\treturn {\n\t\ttype: 'FAIL_RESOLUTIONS',\n\t\tselectorName,\n\t\targs,\n\t\terrors,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that we should invalidate the resolution cache.\n *\n * @param {string} selectorName Name of selector for which resolver should be invalidated.\n * @param {unknown[]} args Arguments to associate for uniqueness.\n *\n * @return {{ type: 'INVALIDATE_RESOLUTION', selectorName: string, args: any[] }} Action object.\n */\nexport function invalidateResolution( selectorName, args ) {\n\treturn {\n\t\ttype: 'INVALIDATE_RESOLUTION',\n\t\tselectorName,\n\t\targs,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the resolution\n * should be invalidated.\n *\n * @return {{ type: 'INVALIDATE_RESOLUTION_FOR_STORE' }} Action object.\n */\nexport function invalidateResolutionForStore() {\n\treturn {\n\t\ttype: 'INVALIDATE_RESOLUTION_FOR_STORE',\n\t};\n}\n\n/**\n * Returns an action object used in signalling that the resolution cache for a\n * given selectorName should be invalidated.\n *\n * @param {string} selectorName Name of selector for which all resolvers should\n * be invalidated.\n *\n * @return {{ type: 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR', selectorName: string }} Action object.\n */\nexport function invalidateResolutionForStoreSelector( selectorName ) {\n\treturn {\n\t\ttype: 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR',\n\t\tselectorName,\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAAEC,YAAY,EAAEC,IAAI,EAAG;EACrD,OAAO;IACNC,IAAI,EAAE,kBAAkB;IACxBF,YAAY;IACZC;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,gBAAgBA,CAAEH,YAAY,EAAEC,IAAI,EAAG;EACtD,OAAO;IACNC,IAAI,EAAE,mBAAmB;IACzBF,YAAY;IACZC;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,cAAcA,CAAEJ,YAAY,EAAEC,IAAI,EAAEI,KAAK,EAAG;EAC3D,OAAO;IACNH,IAAI,EAAE,iBAAiB;IACvBF,YAAY;IACZC,IAAI;IACJI;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEN,YAAY,EAAEC,IAAI,EAAG;EACtD,OAAO;IACNC,IAAI,EAAE,mBAAmB;IACzBF,YAAY;IACZC;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASM,iBAAiBA,CAAEP,YAAY,EAAEC,IAAI,EAAG;EACvD,OAAO;IACNC,IAAI,EAAE,oBAAoB;IAC1BF,YAAY;IACZC;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,eAAeA,CAAER,YAAY,EAAEC,IAAI,EAAEQ,MAAM,EAAG;EAC7D,OAAO;IACNP,IAAI,EAAE,kBAAkB;IACxBF,YAAY;IACZC,IAAI;IACJQ;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAAEV,YAAY,EAAEC,IAAI,EAAG;EAC1D,OAAO;IACNC,IAAI,EAAE,uBAAuB;IAC7BF,YAAY;IACZC;EACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASU,4BAA4BA,CAAA,EAAG;EAC9C,OAAO;IACNT,IAAI,EAAE;EACP,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASU,oCAAoCA,CAAEZ,YAAY,EAAG;EACpE,OAAO;IACNE,IAAI,EAAE,0CAA0C;IAChDF;EACD,CAAC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["@wordpress/data/src/redux-store/metadata/equivalent-key-map.d.ts"],"sourcesContent":["declare module 'equivalent-key-map' {\n\tclass EquivalentKeyMap< K, V > extends Map< K, V > {}\n\texport = EquivalentKeyMap;\n}\n"],"mappings":""}
|
|
@@ -2,12 +2,10 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import EquivalentKeyMap from 'equivalent-key-map';
|
|
5
|
-
|
|
6
5
|
/**
|
|
7
6
|
* Internal dependencies
|
|
8
7
|
*/
|
|
9
8
|
import { selectorArgsToStateKey, onSubKey } from './utils';
|
|
10
|
-
|
|
11
9
|
/**
|
|
12
10
|
* Reducer function returning next state for selector resolution of
|
|
13
11
|
* subkeys, object form:
|
|
@@ -24,7 +22,6 @@ const subKeysIsResolved = onSubKey('selectorName')((state = new EquivalentKeyMap
|
|
|
24
22
|
});
|
|
25
23
|
return nextState;
|
|
26
24
|
}
|
|
27
|
-
|
|
28
25
|
case 'FINISH_RESOLUTION':
|
|
29
26
|
{
|
|
30
27
|
const nextState = new EquivalentKeyMap(state);
|
|
@@ -33,7 +30,6 @@ const subKeysIsResolved = onSubKey('selectorName')((state = new EquivalentKeyMap
|
|
|
33
30
|
});
|
|
34
31
|
return nextState;
|
|
35
32
|
}
|
|
36
|
-
|
|
37
33
|
case 'FAIL_RESOLUTION':
|
|
38
34
|
{
|
|
39
35
|
const nextState = new EquivalentKeyMap(state);
|
|
@@ -43,33 +39,26 @@ const subKeysIsResolved = onSubKey('selectorName')((state = new EquivalentKeyMap
|
|
|
43
39
|
});
|
|
44
40
|
return nextState;
|
|
45
41
|
}
|
|
46
|
-
|
|
47
42
|
case 'START_RESOLUTIONS':
|
|
48
43
|
{
|
|
49
44
|
const nextState = new EquivalentKeyMap(state);
|
|
50
|
-
|
|
51
45
|
for (const resolutionArgs of action.args) {
|
|
52
46
|
nextState.set(selectorArgsToStateKey(resolutionArgs), {
|
|
53
47
|
status: 'resolving'
|
|
54
48
|
});
|
|
55
49
|
}
|
|
56
|
-
|
|
57
50
|
return nextState;
|
|
58
51
|
}
|
|
59
|
-
|
|
60
52
|
case 'FINISH_RESOLUTIONS':
|
|
61
53
|
{
|
|
62
54
|
const nextState = new EquivalentKeyMap(state);
|
|
63
|
-
|
|
64
55
|
for (const resolutionArgs of action.args) {
|
|
65
56
|
nextState.set(selectorArgsToStateKey(resolutionArgs), {
|
|
66
57
|
status: 'finished'
|
|
67
58
|
});
|
|
68
59
|
}
|
|
69
|
-
|
|
70
60
|
return nextState;
|
|
71
61
|
}
|
|
72
|
-
|
|
73
62
|
case 'FAIL_RESOLUTIONS':
|
|
74
63
|
{
|
|
75
64
|
const nextState = new EquivalentKeyMap(state);
|
|
@@ -79,16 +68,13 @@ const subKeysIsResolved = onSubKey('selectorName')((state = new EquivalentKeyMap
|
|
|
79
68
|
error: undefined
|
|
80
69
|
};
|
|
81
70
|
const error = action.errors[idx];
|
|
82
|
-
|
|
83
71
|
if (error) {
|
|
84
72
|
resolutionState.error = error;
|
|
85
73
|
}
|
|
86
|
-
|
|
87
74
|
nextState.set(selectorArgsToStateKey(resolutionArgs), resolutionState);
|
|
88
75
|
});
|
|
89
76
|
return nextState;
|
|
90
77
|
}
|
|
91
|
-
|
|
92
78
|
case 'INVALIDATE_RESOLUTION':
|
|
93
79
|
{
|
|
94
80
|
const nextState = new EquivalentKeyMap(state);
|
|
@@ -96,9 +82,9 @@ const subKeysIsResolved = onSubKey('selectorName')((state = new EquivalentKeyMap
|
|
|
96
82
|
return nextState;
|
|
97
83
|
}
|
|
98
84
|
}
|
|
99
|
-
|
|
100
85
|
return state;
|
|
101
86
|
});
|
|
87
|
+
|
|
102
88
|
/**
|
|
103
89
|
* Reducer function returning next state for selector resolution, object form:
|
|
104
90
|
*
|
|
@@ -109,12 +95,10 @@ const subKeysIsResolved = onSubKey('selectorName')((state = new EquivalentKeyMap
|
|
|
109
95
|
*
|
|
110
96
|
* @return Next state.
|
|
111
97
|
*/
|
|
112
|
-
|
|
113
98
|
const isResolved = (state = {}, action) => {
|
|
114
99
|
switch (action.type) {
|
|
115
100
|
case 'INVALIDATE_RESOLUTION_FOR_STORE':
|
|
116
101
|
return {};
|
|
117
|
-
|
|
118
102
|
case 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR':
|
|
119
103
|
{
|
|
120
104
|
if (action.selectorName in state) {
|
|
@@ -124,10 +108,8 @@ const isResolved = (state = {}, action) => {
|
|
|
124
108
|
} = state;
|
|
125
109
|
return restState;
|
|
126
110
|
}
|
|
127
|
-
|
|
128
111
|
return state;
|
|
129
112
|
}
|
|
130
|
-
|
|
131
113
|
case 'START_RESOLUTION':
|
|
132
114
|
case 'FINISH_RESOLUTION':
|
|
133
115
|
case 'FAIL_RESOLUTION':
|
|
@@ -137,9 +119,7 @@ const isResolved = (state = {}, action) => {
|
|
|
137
119
|
case 'INVALIDATE_RESOLUTION':
|
|
138
120
|
return subKeysIsResolved(state, action);
|
|
139
121
|
}
|
|
140
|
-
|
|
141
122
|
return state;
|
|
142
123
|
};
|
|
143
|
-
|
|
144
124
|
export default isResolved;
|
|
145
125
|
//# sourceMappingURL=reducer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["EquivalentKeyMap","selectorArgsToStateKey","onSubKey","subKeysIsResolved","state","action","type","nextState","set","args","status","error","resolutionArgs","forEach","idx","resolutionState","undefined","errors","delete","isResolved","selectorName","removedSelector","restState"],"sources":["@wordpress/data/src/redux-store/metadata/reducer.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport EquivalentKeyMap from 'equivalent-key-map';\nimport type { Reducer } from 'redux';\n\n/**\n * Internal dependencies\n */\nimport { selectorArgsToStateKey, onSubKey } from './utils';\n\ntype Action =\n\t| ReturnType< typeof import('./actions').startResolution >\n\t| ReturnType< typeof import('./actions').finishResolution >\n\t| ReturnType< typeof import('./actions').failResolution >\n\t| ReturnType< typeof import('./actions').startResolutions >\n\t| ReturnType< typeof import('./actions').finishResolutions >\n\t| ReturnType< typeof import('./actions').failResolutions >\n\t| ReturnType< typeof import('./actions').invalidateResolution >\n\t| ReturnType< typeof import('./actions').invalidateResolutionForStore >\n\t| ReturnType<\n\t\t\ttypeof import('./actions').invalidateResolutionForStoreSelector\n\t >;\n\ntype StateKey = unknown[] | unknown;\nexport type StateValue =\n\t| { status: 'resolving' | 'finished' }\n\t| { status: 'error'; error: Error | unknown };\n\nexport type Status = StateValue[ 'status' ];\nexport type State = EquivalentKeyMap< StateKey, StateValue >;\n\n/**\n * Reducer function returning next state for selector resolution of\n * subkeys, object form:\n *\n * selectorName -> EquivalentKeyMap<Array,boolean>\n */\nconst subKeysIsResolved: Reducer< Record< string, State >, Action > = onSubKey<\n\tState,\n\tAction\n>( 'selectorName' )( ( state = new EquivalentKeyMap(), action: Action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'START_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.set( selectorArgsToStateKey( action.args ), {\n\t\t\t\tstatus: 'resolving',\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FINISH_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.set( selectorArgsToStateKey( action.args ), {\n\t\t\t\tstatus: 'finished',\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FAIL_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.set( selectorArgsToStateKey( action.args ), {\n\t\t\t\tstatus: 'error',\n\t\t\t\terror: action.error,\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'START_RESOLUTIONS': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tfor ( const resolutionArgs of action.args ) {\n\t\t\t\tnextState.set( selectorArgsToStateKey( resolutionArgs ), {\n\t\t\t\t\tstatus: 'resolving',\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FINISH_RESOLUTIONS': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tfor ( const resolutionArgs of action.args ) {\n\t\t\t\tnextState.set( selectorArgsToStateKey( resolutionArgs ), {\n\t\t\t\t\tstatus: 'finished',\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'FAIL_RESOLUTIONS': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\taction.args.forEach( ( resolutionArgs, idx ) => {\n\t\t\t\tconst resolutionState: StateValue = {\n\t\t\t\t\tstatus: 'error',\n\t\t\t\t\terror: undefined,\n\t\t\t\t};\n\n\t\t\t\tconst error = action.errors[ idx ];\n\t\t\t\tif ( error ) {\n\t\t\t\t\tresolutionState.error = error;\n\t\t\t\t}\n\n\t\t\t\tnextState.set(\n\t\t\t\t\tselectorArgsToStateKey( resolutionArgs as unknown[] ),\n\t\t\t\t\tresolutionState\n\t\t\t\t);\n\t\t\t} );\n\t\t\treturn nextState;\n\t\t}\n\t\tcase 'INVALIDATE_RESOLUTION': {\n\t\t\tconst nextState = new EquivalentKeyMap( state );\n\t\t\tnextState.delete( selectorArgsToStateKey( action.args ) );\n\t\t\treturn nextState;\n\t\t}\n\t}\n\treturn state;\n} );\n\n/**\n * Reducer function returning next state for selector resolution, object form:\n *\n * selectorName -> EquivalentKeyMap<Array, boolean>\n *\n * @param state Current state.\n * @param action Dispatched action.\n *\n * @return Next state.\n */\nconst isResolved = ( state: Record< string, State > = {}, action: Action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'INVALIDATE_RESOLUTION_FOR_STORE':\n\t\t\treturn {};\n\t\tcase 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR': {\n\t\t\tif ( action.selectorName in state ) {\n\t\t\t\tconst {\n\t\t\t\t\t[ action.selectorName ]: removedSelector,\n\t\t\t\t\t...restState\n\t\t\t\t} = state;\n\t\t\t\treturn restState;\n\t\t\t}\n\t\t\treturn state;\n\t\t}\n\t\tcase 'START_RESOLUTION':\n\t\tcase 'FINISH_RESOLUTION':\n\t\tcase 'FAIL_RESOLUTION':\n\t\tcase 'START_RESOLUTIONS':\n\t\tcase 'FINISH_RESOLUTIONS':\n\t\tcase 'FAIL_RESOLUTIONS':\n\t\tcase 'INVALIDATE_RESOLUTION':\n\t\t\treturn subKeysIsResolved( state, action );\n\t}\n\treturn state;\n};\n\nexport default isResolved;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,gBAAgB,MAAM,oBAAoB;AAGjD;AACA;AACA;AACA,SAASC,sBAAsB,EAAEC,QAAQ,QAAQ,SAAS;AAuB1D;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAA6D,GAAGD,QAAQ,CAG3E,cAAe,CAAC,CAAE,CAAEE,KAAK,GAAG,IAAIJ,gBAAgB,CAAC,CAAC,EAAEK,MAAc,KAAM;EAC1E,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,kBAAkB;MAAE;QACxB,MAAMC,SAAS,GAAG,IAAIP,gBAAgB,CAAEI,KAAM,CAAC;QAC/CG,SAAS,CAACC,GAAG,CAAEP,sBAAsB,CAAEI,MAAM,CAACI,IAAK,CAAC,EAAE;UACrDC,MAAM,EAAE;QACT,CAAE,CAAC;QACH,OAAOH,SAAS;MACjB;IACA,KAAK,mBAAmB;MAAE;QACzB,MAAMA,SAAS,GAAG,IAAIP,gBAAgB,CAAEI,KAAM,CAAC;QAC/CG,SAAS,CAACC,GAAG,CAAEP,sBAAsB,CAAEI,MAAM,CAACI,IAAK,CAAC,EAAE;UACrDC,MAAM,EAAE;QACT,CAAE,CAAC;QACH,OAAOH,SAAS;MACjB;IACA,KAAK,iBAAiB;MAAE;QACvB,MAAMA,SAAS,GAAG,IAAIP,gBAAgB,CAAEI,KAAM,CAAC;QAC/CG,SAAS,CAACC,GAAG,CAAEP,sBAAsB,CAAEI,MAAM,CAACI,IAAK,CAAC,EAAE;UACrDC,MAAM,EAAE,OAAO;UACfC,KAAK,EAAEN,MAAM,CAACM;QACf,CAAE,CAAC;QACH,OAAOJ,SAAS;MACjB;IACA,KAAK,mBAAmB;MAAE;QACzB,MAAMA,SAAS,GAAG,IAAIP,gBAAgB,CAAEI,KAAM,CAAC;QAC/C,KAAM,MAAMQ,cAAc,IAAIP,MAAM,CAACI,IAAI,EAAG;UAC3CF,SAAS,CAACC,GAAG,CAAEP,sBAAsB,CAAEW,cAAe,CAAC,EAAE;YACxDF,MAAM,EAAE;UACT,CAAE,CAAC;QACJ;QACA,OAAOH,SAAS;MACjB;IACA,KAAK,oBAAoB;MAAE;QAC1B,MAAMA,SAAS,GAAG,IAAIP,gBAAgB,CAAEI,KAAM,CAAC;QAC/C,KAAM,MAAMQ,cAAc,IAAIP,MAAM,CAACI,IAAI,EAAG;UAC3CF,SAAS,CAACC,GAAG,CAAEP,sBAAsB,CAAEW,cAAe,CAAC,EAAE;YACxDF,MAAM,EAAE;UACT,CAAE,CAAC;QACJ;QACA,OAAOH,SAAS;MACjB;IACA,KAAK,kBAAkB;MAAE;QACxB,MAAMA,SAAS,GAAG,IAAIP,gBAAgB,CAAEI,KAAM,CAAC;QAC/CC,MAAM,CAACI,IAAI,CAACI,OAAO,CAAE,CAAED,cAAc,EAAEE,GAAG,KAAM;UAC/C,MAAMC,eAA2B,GAAG;YACnCL,MAAM,EAAE,OAAO;YACfC,KAAK,EAAEK;UACR,CAAC;UAED,MAAML,KAAK,GAAGN,MAAM,CAACY,MAAM,CAAEH,GAAG,CAAE;UAClC,IAAKH,KAAK,EAAG;YACZI,eAAe,CAACJ,KAAK,GAAGA,KAAK;UAC9B;UAEAJ,SAAS,CAACC,GAAG,CACZP,sBAAsB,CAAEW,cAA4B,CAAC,EACrDG,eACD,CAAC;QACF,CAAE,CAAC;QACH,OAAOR,SAAS;MACjB;IACA,KAAK,uBAAuB;MAAE;QAC7B,MAAMA,SAAS,GAAG,IAAIP,gBAAgB,CAAEI,KAAM,CAAC;QAC/CG,SAAS,CAACW,MAAM,CAAEjB,sBAAsB,CAAEI,MAAM,CAACI,IAAK,CAAE,CAAC;QACzD,OAAOF,SAAS;MACjB;EACD;EACA,OAAOH,KAAK;AACb,CAAE,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMe,UAAU,GAAGA,CAAEf,KAA8B,GAAG,CAAC,CAAC,EAAEC,MAAc,KAAM;EAC7E,QAASA,MAAM,CAACC,IAAI;IACnB,KAAK,iCAAiC;MACrC,OAAO,CAAC,CAAC;IACV,KAAK,0CAA0C;MAAE;QAChD,IAAKD,MAAM,CAACe,YAAY,IAAIhB,KAAK,EAAG;UACnC,MAAM;YACL,CAAEC,MAAM,CAACe,YAAY,GAAIC,eAAe;YACxC,GAAGC;UACJ,CAAC,GAAGlB,KAAK;UACT,OAAOkB,SAAS;QACjB;QACA,OAAOlB,KAAK;MACb;IACA,KAAK,kBAAkB;IACvB,KAAK,mBAAmB;IACxB,KAAK,iBAAiB;IACtB,KAAK,mBAAmB;IACxB,KAAK,oBAAoB;IACzB,KAAK,kBAAkB;IACvB,KAAK,uBAAuB;MAC3B,OAAOD,iBAAiB,CAAEC,KAAK,EAAEC,MAAO,CAAC;EAC3C;EACA,OAAOD,KAAK;AACb,CAAC;AAED,eAAee,UAAU"}
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { selectorArgsToStateKey } from './utils';
|
|
5
|
-
/** @typedef {Record<string, import('./reducer').State>} State */
|
|
6
5
|
|
|
6
|
+
/** @typedef {Record<string, import('./reducer').State>} State */
|
|
7
7
|
/** @typedef {import('./reducer').StateValue} StateValue */
|
|
8
|
-
|
|
9
8
|
/** @typedef {import('./reducer').Status} Status */
|
|
10
9
|
|
|
11
10
|
/**
|
|
@@ -20,16 +19,14 @@ import { selectorArgsToStateKey } from './utils';
|
|
|
20
19
|
*
|
|
21
20
|
* @return {StateValue|undefined} isResolving value.
|
|
22
21
|
*/
|
|
23
|
-
|
|
24
22
|
export function getResolutionState(state, selectorName, args) {
|
|
25
23
|
const map = state[selectorName];
|
|
26
|
-
|
|
27
24
|
if (!map) {
|
|
28
25
|
return;
|
|
29
26
|
}
|
|
30
|
-
|
|
31
27
|
return map.get(selectorArgsToStateKey(args));
|
|
32
28
|
}
|
|
29
|
+
|
|
33
30
|
/**
|
|
34
31
|
* Returns the raw `isResolving` value for a given selector name,
|
|
35
32
|
* and arguments set. May be undefined if the selector has never been resolved
|
|
@@ -42,11 +39,11 @@ export function getResolutionState(state, selectorName, args) {
|
|
|
42
39
|
*
|
|
43
40
|
* @return {boolean | undefined} isResolving value.
|
|
44
41
|
*/
|
|
45
|
-
|
|
46
42
|
export function getIsResolving(state, selectorName, args) {
|
|
47
43
|
const resolutionState = getResolutionState(state, selectorName, args);
|
|
48
44
|
return resolutionState && resolutionState.status === 'resolving';
|
|
49
45
|
}
|
|
46
|
+
|
|
50
47
|
/**
|
|
51
48
|
* Returns true if resolution has already been triggered for a given
|
|
52
49
|
* selector name, and arguments set.
|
|
@@ -57,10 +54,10 @@ export function getIsResolving(state, selectorName, args) {
|
|
|
57
54
|
*
|
|
58
55
|
* @return {boolean} Whether resolution has been triggered.
|
|
59
56
|
*/
|
|
60
|
-
|
|
61
57
|
export function hasStartedResolution(state, selectorName, args) {
|
|
62
58
|
return getResolutionState(state, selectorName, args) !== undefined;
|
|
63
59
|
}
|
|
60
|
+
|
|
64
61
|
/**
|
|
65
62
|
* Returns true if resolution has completed for a given selector
|
|
66
63
|
* name, and arguments set.
|
|
@@ -71,11 +68,11 @@ export function hasStartedResolution(state, selectorName, args) {
|
|
|
71
68
|
*
|
|
72
69
|
* @return {boolean} Whether resolution has completed.
|
|
73
70
|
*/
|
|
74
|
-
|
|
75
71
|
export function hasFinishedResolution(state, selectorName, args) {
|
|
76
72
|
const status = getResolutionState(state, selectorName, args)?.status;
|
|
77
73
|
return status === 'finished' || status === 'error';
|
|
78
74
|
}
|
|
75
|
+
|
|
79
76
|
/**
|
|
80
77
|
* Returns true if resolution has failed for a given selector
|
|
81
78
|
* name, and arguments set.
|
|
@@ -86,10 +83,10 @@ export function hasFinishedResolution(state, selectorName, args) {
|
|
|
86
83
|
*
|
|
87
84
|
* @return {boolean} Has resolution failed
|
|
88
85
|
*/
|
|
89
|
-
|
|
90
86
|
export function hasResolutionFailed(state, selectorName, args) {
|
|
91
87
|
return getResolutionState(state, selectorName, args)?.status === 'error';
|
|
92
88
|
}
|
|
89
|
+
|
|
93
90
|
/**
|
|
94
91
|
* Returns the resolution error for a given selector name, and arguments set.
|
|
95
92
|
* Note it may be of an Error type, but may also be null, undefined, or anything else
|
|
@@ -101,11 +98,11 @@ export function hasResolutionFailed(state, selectorName, args) {
|
|
|
101
98
|
*
|
|
102
99
|
* @return {Error|unknown} Last resolution error
|
|
103
100
|
*/
|
|
104
|
-
|
|
105
101
|
export function getResolutionError(state, selectorName, args) {
|
|
106
102
|
const resolutionState = getResolutionState(state, selectorName, args);
|
|
107
103
|
return resolutionState?.status === 'error' ? resolutionState.error : null;
|
|
108
104
|
}
|
|
105
|
+
|
|
109
106
|
/**
|
|
110
107
|
* Returns true if resolution has been triggered but has not yet completed for
|
|
111
108
|
* a given selector name, and arguments set.
|
|
@@ -116,10 +113,10 @@ export function getResolutionError(state, selectorName, args) {
|
|
|
116
113
|
*
|
|
117
114
|
* @return {boolean} Whether resolution is in progress.
|
|
118
115
|
*/
|
|
119
|
-
|
|
120
116
|
export function isResolving(state, selectorName, args) {
|
|
121
117
|
return getResolutionState(state, selectorName, args)?.status === 'resolving';
|
|
122
118
|
}
|
|
119
|
+
|
|
123
120
|
/**
|
|
124
121
|
* Returns the list of the cached resolvers.
|
|
125
122
|
*
|
|
@@ -127,10 +124,10 @@ export function isResolving(state, selectorName, args) {
|
|
|
127
124
|
*
|
|
128
125
|
* @return {State} Resolvers mapped by args and selectorName.
|
|
129
126
|
*/
|
|
130
|
-
|
|
131
127
|
export function getCachedResolvers(state) {
|
|
132
128
|
return state;
|
|
133
129
|
}
|
|
130
|
+
|
|
134
131
|
/**
|
|
135
132
|
* Whether the store has any currently resolving selectors.
|
|
136
133
|
*
|
|
@@ -138,7 +135,6 @@ export function getCachedResolvers(state) {
|
|
|
138
135
|
*
|
|
139
136
|
* @return {boolean} True if one or more selectors are resolving, false otherwise.
|
|
140
137
|
*/
|
|
141
|
-
|
|
142
138
|
export function hasResolvingSelectors(state) {
|
|
143
139
|
return Object.values(state).some(selectorState =>
|
|
144
140
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["selectorArgsToStateKey","getResolutionState","state","selectorName","args","map","get","getIsResolving","resolutionState","status","hasStartedResolution","undefined","hasFinishedResolution","hasResolutionFailed","getResolutionError","error","isResolving","getCachedResolvers","hasResolvingSelectors","Object","values","some","selectorState","Array","from","_map","resolution"],"sources":["@wordpress/data/src/redux-store/metadata/selectors.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { selectorArgsToStateKey } from './utils';\n\n/** @typedef {Record<string, import('./reducer').State>} State */\n/** @typedef {import('./reducer').StateValue} StateValue */\n/** @typedef {import('./reducer').Status} Status */\n\n/**\n * Returns the raw resolution state value for a given selector name,\n * and arguments set. May be undefined if the selector has never been resolved\n * or not resolved for the given set of arguments, otherwise true or false for\n * resolution started and completed respectively.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {StateValue|undefined} isResolving value.\n */\nexport function getResolutionState( state, selectorName, args ) {\n\tconst map = state[ selectorName ];\n\tif ( ! map ) {\n\t\treturn;\n\t}\n\n\treturn map.get( selectorArgsToStateKey( args ) );\n}\n\n/**\n * Returns the raw `isResolving` value for a given selector name,\n * and arguments set. May be undefined if the selector has never been resolved\n * or not resolved for the given set of arguments, otherwise true or false for\n * resolution started and completed respectively.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean | undefined} isResolving value.\n */\nexport function getIsResolving( state, selectorName, args ) {\n\tconst resolutionState = getResolutionState( state, selectorName, args );\n\n\treturn resolutionState && resolutionState.status === 'resolving';\n}\n\n/**\n * Returns true if resolution has already been triggered for a given\n * selector name, and arguments set.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean} Whether resolution has been triggered.\n */\nexport function hasStartedResolution( state, selectorName, args ) {\n\treturn getResolutionState( state, selectorName, args ) !== undefined;\n}\n\n/**\n * Returns true if resolution has completed for a given selector\n * name, and arguments set.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean} Whether resolution has completed.\n */\nexport function hasFinishedResolution( state, selectorName, args ) {\n\tconst status = getResolutionState( state, selectorName, args )?.status;\n\treturn status === 'finished' || status === 'error';\n}\n\n/**\n * Returns true if resolution has failed for a given selector\n * name, and arguments set.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean} Has resolution failed\n */\nexport function hasResolutionFailed( state, selectorName, args ) {\n\treturn getResolutionState( state, selectorName, args )?.status === 'error';\n}\n\n/**\n * Returns the resolution error for a given selector name, and arguments set.\n * Note it may be of an Error type, but may also be null, undefined, or anything else\n * that can be `throw`-n.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {Error|unknown} Last resolution error\n */\nexport function getResolutionError( state, selectorName, args ) {\n\tconst resolutionState = getResolutionState( state, selectorName, args );\n\treturn resolutionState?.status === 'error' ? resolutionState.error : null;\n}\n\n/**\n * Returns true if resolution has been triggered but has not yet completed for\n * a given selector name, and arguments set.\n *\n * @param {State} state Data state.\n * @param {string} selectorName Selector name.\n * @param {unknown[]?} args Arguments passed to selector.\n *\n * @return {boolean} Whether resolution is in progress.\n */\nexport function isResolving( state, selectorName, args ) {\n\treturn (\n\t\tgetResolutionState( state, selectorName, args )?.status === 'resolving'\n\t);\n}\n\n/**\n * Returns the list of the cached resolvers.\n *\n * @param {State} state Data state.\n *\n * @return {State} Resolvers mapped by args and selectorName.\n */\nexport function getCachedResolvers( state ) {\n\treturn state;\n}\n\n/**\n * Whether the store has any currently resolving selectors.\n *\n * @param {State} state Data state.\n *\n * @return {boolean} True if one or more selectors are resolving, false otherwise.\n */\nexport function hasResolvingSelectors( state ) {\n\treturn Object.values( state ).some( ( selectorState ) =>\n\t\t/**\n\t\t * This uses the internal `_map` property of `EquivalentKeyMap` for\n\t\t * optimization purposes, since the `EquivalentKeyMap` implementation\n\t\t * does not support a `.values()` implementation.\n\t\t *\n\t\t * @see https://github.com/aduth/equivalent-key-map\n\t\t */\n\t\tArray.from( selectorState._map.values() ).some(\n\t\t\t( resolution ) => resolution[ 1 ]?.status === 'resolving'\n\t\t)\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -13,23 +13,22 @@ export const onSubKey = actionProperty => reducer => (state = {}, action) => {
|
|
|
13
13
|
// Retrieve subkey from action. Do not track if undefined; useful for cases
|
|
14
14
|
// where reducer is scoped by action shape.
|
|
15
15
|
const key = action[actionProperty];
|
|
16
|
-
|
|
17
16
|
if (key === undefined) {
|
|
18
17
|
return state;
|
|
19
|
-
}
|
|
20
|
-
// reducer which returns undefined on a key which is not yet tracked.
|
|
21
|
-
|
|
18
|
+
}
|
|
22
19
|
|
|
20
|
+
// Avoid updating state if unchanged. Note that this also accounts for a
|
|
21
|
+
// reducer which returns undefined on a key which is not yet tracked.
|
|
23
22
|
const nextKeyState = reducer(state[key], action);
|
|
24
|
-
|
|
25
23
|
if (nextKeyState === state[key]) {
|
|
26
24
|
return state;
|
|
27
25
|
}
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
return {
|
|
27
|
+
...state,
|
|
30
28
|
[key]: nextKeyState
|
|
31
29
|
};
|
|
32
30
|
};
|
|
31
|
+
|
|
33
32
|
/**
|
|
34
33
|
* Normalize selector argument array by defaulting `undefined` value to an empty array
|
|
35
34
|
* and removing trailing `undefined` values.
|
|
@@ -37,19 +36,15 @@ export const onSubKey = actionProperty => reducer => (state = {}, action) => {
|
|
|
37
36
|
* @param args Selector argument array
|
|
38
37
|
* @return Normalized state key array
|
|
39
38
|
*/
|
|
40
|
-
|
|
41
39
|
export function selectorArgsToStateKey(args) {
|
|
42
40
|
if (args === undefined || args === null) {
|
|
43
41
|
return [];
|
|
44
42
|
}
|
|
45
|
-
|
|
46
43
|
const len = args.length;
|
|
47
44
|
let idx = len;
|
|
48
|
-
|
|
49
45
|
while (idx > 0 && args[idx - 1] === undefined) {
|
|
50
46
|
idx--;
|
|
51
47
|
}
|
|
52
|
-
|
|
53
48
|
return idx === len ? args : args.slice(0, idx);
|
|
54
49
|
}
|
|
55
50
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["onSubKey","actionProperty","reducer","state","action","key","undefined","nextKeyState","selectorArgsToStateKey","args","len","length","idx","slice"],"sources":["@wordpress/data/src/redux-store/metadata/utils.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { AnyAction, Reducer } from 'redux';\n\n/**\n * Higher-order reducer creator which creates a combined reducer object, keyed\n * by a property on the action object.\n *\n * @param actionProperty Action property by which to key object.\n * @return Higher-order reducer.\n */\nexport const onSubKey =\n\t< TState extends unknown, TAction extends AnyAction >(\n\t\tactionProperty: string\n\t) =>\n\t(\n\t\treducer: Reducer< TState, TAction >\n\t): Reducer< Record< string, TState >, TAction > =>\n\t( state: Record< string, TState > = {}, action ) => {\n\t\t// Retrieve subkey from action. Do not track if undefined; useful for cases\n\t\t// where reducer is scoped by action shape.\n\t\tconst key = action[ actionProperty ];\n\t\tif ( key === undefined ) {\n\t\t\treturn state;\n\t\t}\n\n\t\t// Avoid updating state if unchanged. Note that this also accounts for a\n\t\t// reducer which returns undefined on a key which is not yet tracked.\n\t\tconst nextKeyState = reducer( state[ key ], action );\n\t\tif ( nextKeyState === state[ key ] ) {\n\t\t\treturn state;\n\t\t}\n\n\t\treturn {\n\t\t\t...state,\n\t\t\t[ key ]: nextKeyState,\n\t\t};\n\t};\n\n/**\n * Normalize selector argument array by defaulting `undefined` value to an empty array\n * and removing trailing `undefined` values.\n *\n * @param args Selector argument array\n * @return Normalized state key array\n */\nexport function selectorArgsToStateKey( args: unknown[] | null | undefined ) {\n\tif ( args === undefined || args === null ) {\n\t\treturn [];\n\t}\n\n\tconst len = args.length;\n\tlet idx = len;\n\twhile ( idx > 0 && args[ idx - 1 ] === undefined ) {\n\t\tidx--;\n\t}\n\treturn idx === len ? args : args.slice( 0, idx );\n}\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,QAAQ,GAEnBC,cAAsB,IAGtBC,OAAmC,IAEpC,CAAEC,KAA+B,GAAG,CAAC,CAAC,EAAEC,MAAM,KAAM;EACnD;EACA;EACA,MAAMC,GAAG,GAAGD,MAAM,CAAEH,cAAc,CAAE;EACpC,IAAKI,GAAG,KAAKC,SAAS,EAAG;IACxB,OAAOH,KAAK;EACb;;EAEA;EACA;EACA,MAAMI,YAAY,GAAGL,OAAO,CAAEC,KAAK,CAAEE,GAAG,CAAE,EAAED,MAAO,CAAC;EACpD,IAAKG,YAAY,KAAKJ,KAAK,CAAEE,GAAG,CAAE,EAAG;IACpC,OAAOF,KAAK;EACb;EAEA,OAAO;IACN,GAAGA,KAAK;IACR,CAAEE,GAAG,GAAIE;EACV,CAAC;AACF,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAEC,IAAkC,EAAG;EAC5E,IAAKA,IAAI,KAAKH,SAAS,IAAIG,IAAI,KAAK,IAAI,EAAG;IAC1C,OAAO,EAAE;EACV;EAEA,MAAMC,GAAG,GAAGD,IAAI,CAACE,MAAM;EACvB,IAAIC,GAAG,GAAGF,GAAG;EACb,OAAQE,GAAG,GAAG,CAAC,IAAIH,IAAI,CAAEG,GAAG,GAAG,CAAC,CAAE,KAAKN,SAAS,EAAG;IAClDM,GAAG,EAAE;EACN;EACA,OAAOA,GAAG,KAAKF,GAAG,GAAGD,IAAI,GAAGA,IAAI,CAACI,KAAK,CAAE,CAAC,EAAED,GAAI,CAAC;AACjD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["createThunkMiddleware","args","next","action"],"sources":["@wordpress/data/src/redux-store/thunk-middleware.js"],"sourcesContent":["export default function createThunkMiddleware( args ) {\n\treturn () => ( next ) => ( action ) => {\n\t\tif ( typeof action === 'function' ) {\n\t\t\treturn action( args );\n\t\t}\n\n\t\treturn next( action );\n\t};\n}\n"],"mappings":"AAAA,eAAe,SAASA,qBAAqBA,CAAEC,IAAI,EAAG;EACrD,OAAO,MAAQC,IAAI,IAAQC,MAAM,IAAM;IACtC,IAAK,OAAOA,MAAM,KAAK,UAAU,EAAG;MACnC,OAAOA,MAAM,CAAEF,IAAK,CAAC;IACtB;IAEA,OAAOC,IAAI,CAAEC,MAAO,CAAC;EACtB,CAAC;AACF"}
|