Сделать недействительным фрагмент Falcon jsonGraph с помощью jsonGraphEnvelope
Я пытаюсь сделать недействительной часть моего объекта jsonGraph через ответ от falcor-router после выполнения вызова CREATE. Я могу успешно сделать это при возврате списка pathValues, как этот вопрос SE ранее:
{
route: 'foldersById[{keys:ids}].folders.createSubFolder',
call(callPath, args, refPaths, thisPaths) {
return createNewFolderSomehow(...)
.subscribe(folder => {
const folderPathValue = {
path: ['foldersById', folder.parentId, 'folders', folder.parentSubFolderCount -1],
value: $ref(['foldersById', folder.id])
};
const folderCollectionLengthPathValue = {
path: ['folderList', 'length'],
invalidated: true
};
return [folderPathValue, folderCollectionLengthPathValue];
});
})
}
Однако при возврате эквивалентного (afaik) jsonGraphEnvelope, недействительный путь удаляется из ответа:
{
route: 'foldersById[{keys:ids}].folders.createSubFolder',
call(callPath, args, refPaths, thisPaths) {
return createNewFolderSomehow(...)
.subscribe(folder => {
const newFolderPath = ['foldersById', folder.parentId, 'folders', folder.parentSubFolderCount -1];
return {
jsonGraph: R.assocPath(folderPath, $ref(['foldersById', folder.id]), {})
paths: [newFolderPath],
invalidated: [['folderList', 'length']]
};
});
})
}
Неужели я не понимаю, как работает jsonGraphEnvelope (предполагал, что это произвольный формат, эквивалентный массиву PathValues)? Или это скорее всего ошибка?
1 ответ
Похоже, ошибка для меня.
Похоже, что недействительности не обрабатываются в той части кода, которая отвечает за объединение частичных конвертов JSONGraph, возвращаемых из маршрутов, в ответ конверта JSONGraph (см. Здесь), в то время как они обрабатываются слиянием пути (см. Здесь).
Я не могу найти никаких проблем по этому поводу на GitHub, поэтому я приглашаю вас открыть один.