回答編集履歴

3

コード追加

2021/10/28 18:32

投稿

退会済みユーザー
test CHANGED
@@ -107,3 +107,35 @@
107
107
 
108
108
 
109
109
  GraphQLの仕様の詳細は確認しておりませんので、要件と異なる点などあれば、コメントからご教示ください。
110
+
111
+
112
+
113
+ ### 追記
114
+
115
+
116
+
117
+ 上記の回答では、lodash の _.omit を使いましたが、同じくlodashの [_.mapValues](https://lodash.com/docs/#mapValues) を使えば、`convert()`関数を以下のように書けました。(再帰の深さの上限は、先と同じく50としています。)
118
+
119
+
120
+
121
+ ```javascript
122
+
123
+ const convert = (obj, depth = 0) =>
124
+
125
+ depth === 50
126
+
127
+ ? {}
128
+
129
+ : _.mapValues(obj, value =>
130
+
131
+ value.edges
132
+
133
+ ? value.edges.map(({ node }) => convert(node, depth + 1))
134
+
135
+ : value,
136
+
137
+ );
138
+
139
+ ```
140
+
141
+ ???? [codepen.io/kilesa/pen/MWvoMgy](https://codepen.io/kilesa/pen/MWvoMgy?editors=0010)

2

コード追加

2021/10/28 18:32

投稿

退会済みユーザー
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- const nodes = obj[edgesHolderProp].edges.map((e, i) => {
19
+ const nodes = obj[edgesHolderProp].edges.map(e => {
20
20
 
21
21
  const node = _.omit(e.node, 'images');
22
22
 

1

コード追加

2021/10/28 16:30

投稿

退会済みユーザー
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  if (depth === 50) {
12
12
 
13
- return { images: [] };
13
+ return { [edgesHolderProp]: [] };
14
14
 
15
15
  }
16
16