MCPcopy Create free account
hub / github.com/zenstackhq/zenstack / loadImports

Function loadImports

packages/language/src/document.ts:158–174  ·  view source on GitHub ↗
(document: LangiumDocument, documents: LangiumDocuments, uris: Set<string> = new Set())

Source from the content-addressed store, hash-verified

156}
157
158async function loadImports(document: LangiumDocument, documents: LangiumDocuments, uris: Set<string> = new Set()) {
159 const uriString = document.uri.toString();
160 if (!uris.has(uriString)) {
161 uris.add(uriString);
162 const model = document.parseResult.value as Model;
163 for (const imp of model.imports) {
164 const importedModel = resolveImport(documents, imp);
165 if (importedModel) {
166 const importedDoc = getDocument(importedModel);
167 await loadImports(importedDoc, documents, uris);
168 }
169 }
170 }
171 return Array.from(uris)
172 .filter((x) => uriString != x)
173 .map((e) => URI.parse(e));
174}
175
176function mergeImportsDeclarations(documents: LangiumDocuments, model: Model) {
177 const importedModels = resolveTransitiveImports(documents, model);

Callers 1

loadDocumentFunction · 0.85

Calls 3

resolveImportFunction · 0.90
getDocumentFunction · 0.90
toStringMethod · 0.45

Tested by

no test coverage detected