import { isArray } from 'lodash-es'; import { URI, UriComponents } from '@vscode-alt/monaco-editor/esm/vs/base/common/uri'; export const resourcePath = (resource: (URI | UriComponents) | string) => typeof resource === 'string' ? resource : `${resource.scheme}://${resource.path}`; export function findAllByTypename(id, items) { let i = 0, found, result: T[] = []; for (; i < items.length; i++) { if (items[i].__typename === id) { result.push(items[i]); } else if (isArray(items[i].children)) { found = findAllByTypename(id, items[i].children); if (found.length) { result = result.concat(found); } } } return result; }