@@ -45,11 +45,19 @@ export default (
4545 const rangeStart = ( page - 1 ) * perPage ;
4646 const rangeEnd = page * perPage - 1 ;
4747
48- const query = {
48+ const query : {
49+ sort : string ;
50+ range : string ;
51+ filter : string ;
52+ embed ?: string ;
53+ } = {
4954 sort : JSON . stringify ( [ field , order ] ) ,
5055 range : JSON . stringify ( [ rangeStart , rangeEnd ] ) ,
5156 filter : JSON . stringify ( params . filter ) ,
5257 } ;
58+ if ( params . meta && params . meta . embed ) {
59+ query . embed = JSON . stringify ( params . meta . embed ) ;
60+ }
5361 const url = `${ apiUrl } /${ resource } ?${ stringify ( query ) } ` ;
5462 const options =
5563 countHeader === 'Content-Range'
@@ -82,17 +90,26 @@ export default (
8290 } ) ;
8391 } ,
8492
85- getOne : ( resource , params ) =>
86- httpClient ( `${ apiUrl } /${ resource } /${ encodeURIComponent ( params . id ) } ` , {
87- signal : params ?. signal ,
88- } ) . then ( ( { json } ) => ( {
89- data : json ,
90- } ) ) ,
93+ getOne : async ( resource , params ) => {
94+ let query : string = '' ;
95+ if ( params . meta && params . meta . embed ) {
96+ query =
97+ '?' + stringify ( { embed : JSON . stringify ( params . meta . embed ) } ) ;
98+ }
99+ const { json } = await httpClient (
100+ `${ apiUrl } /${ resource } /${ encodeURIComponent ( params . id ) } ${ query } ` ,
101+ { signal : params ?. signal }
102+ ) ;
103+ return { data : json } ;
104+ } ,
91105
92106 getMany : ( resource , params ) => {
93- const query = {
107+ const query : { filter : string ; embed ?: string } = {
94108 filter : JSON . stringify ( { id : params . ids } ) ,
95109 } ;
110+ if ( params . meta && params . meta . embed ) {
111+ query . embed = JSON . stringify ( params . meta . embed ) ;
112+ }
96113 const url = `${ apiUrl } /${ resource } ?${ stringify ( query ) } ` ;
97114 return httpClient ( url , { signal : params ?. signal } ) . then ( ( { json } ) => ( {
98115 data : json ,
@@ -106,14 +123,22 @@ export default (
106123 const rangeStart = ( page - 1 ) * perPage ;
107124 const rangeEnd = page * perPage - 1 ;
108125
109- const query = {
126+ const query : {
127+ sort : string ;
128+ range : string ;
129+ filter : string ;
130+ embed ?: string ;
131+ } = {
110132 sort : JSON . stringify ( [ field , order ] ) ,
111133 range : JSON . stringify ( [ ( page - 1 ) * perPage , page * perPage - 1 ] ) ,
112134 filter : JSON . stringify ( {
113135 ...params . filter ,
114136 [ params . target ] : params . id ,
115137 } ) ,
116138 } ;
139+ if ( params . meta && params . meta . embed ) {
140+ query . embed = JSON . stringify ( params . meta . embed ) ;
141+ }
117142 const url = `${ apiUrl } /${ resource } ?${ stringify ( query ) } ` ;
118143 const options =
119144 countHeader === 'Content-Range'
0 commit comments