@fornari-lanza/domain-design-language-language 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -3,6 +3,7 @@ export declare class DomainDesignLanguageScopeProvider extends DefaultScopeProvi
|
|
|
3
3
|
getScope(context: ReferenceInfo): Scope;
|
|
4
4
|
private searchParent;
|
|
5
5
|
private getBoundedContextsFromGlobalScope;
|
|
6
|
+
private getBoundedContextUris;
|
|
6
7
|
private getScopeForDomainAttribute;
|
|
7
8
|
private getScopeForDomainEvents;
|
|
8
9
|
private getScopeForDomainExceptions;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { DefaultScopeProvider,
|
|
1
|
+
import { DefaultScopeProvider, } from 'langium';
|
|
2
2
|
import { isAggregateRoot, isCommand, isAsymmetricRelationship, isBoundedContext, isDomainAttribute, isEntity, isMethod, isProcessFlow, isReactionStep, isSymmetricRelationship, isValueObject, } from './generated/ast.js';
|
|
3
|
-
import { glob } from 'glob';
|
|
4
3
|
export class DomainDesignLanguageScopeProvider extends DefaultScopeProvider {
|
|
5
4
|
getScope(context) {
|
|
6
5
|
if (isDomainAttribute(context.container) && context.property === 'type')
|
|
@@ -27,15 +26,22 @@ export class DomainDesignLanguageScopeProvider extends DefaultScopeProvider {
|
|
|
27
26
|
return predicate(node) ? node : undefined;
|
|
28
27
|
}
|
|
29
28
|
getBoundedContextsFromGlobalScope() {
|
|
30
|
-
const
|
|
31
|
-
const uris = new Set();
|
|
32
|
-
for (const filePath of files)
|
|
33
|
-
uris.add(URI.file(filePath).toString());
|
|
29
|
+
const uris = this.getBoundedContextUris();
|
|
34
30
|
const astNodeDescriptions = this.indexManager
|
|
35
31
|
.allElements('BoundedContext', uris)
|
|
36
32
|
.toArray();
|
|
37
33
|
return this.createScope(astNodeDescriptions);
|
|
38
34
|
}
|
|
35
|
+
getBoundedContextUris() {
|
|
36
|
+
const uris = new Set();
|
|
37
|
+
this.indexManager
|
|
38
|
+
.allElements('BoundedContext')
|
|
39
|
+
.forEach((description) => {
|
|
40
|
+
if (/\/boundedContexts\/[^/]+\.ddd$/i.test(description.documentUri.path))
|
|
41
|
+
uris.add(description.documentUri.toString());
|
|
42
|
+
});
|
|
43
|
+
return uris;
|
|
44
|
+
}
|
|
39
45
|
getScopeForDomainAttribute(context) {
|
|
40
46
|
const boundedContext = this.searchParent(context, isBoundedContext);
|
|
41
47
|
const validReferences = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-design-language-scope.js","sourceRoot":"","sources":["../src/domain-design-language-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,oBAAoB,
|
|
1
|
+
{"version":3,"file":"domain-design-language-scope.js","sourceRoot":"","sources":["../src/domain-design-language-scope.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
DefaultScopeProvider,
|
|
5
5
|
ReferenceInfo,
|
|
6
6
|
Scope,
|
|
7
|
-
URI,
|
|
8
7
|
} from 'langium';
|
|
9
8
|
import {
|
|
10
9
|
AggregateRoot,
|
|
@@ -23,7 +22,6 @@ import {
|
|
|
23
22
|
isValueObject,
|
|
24
23
|
ProcessFlow,
|
|
25
24
|
} from './generated/ast.js';
|
|
26
|
-
import { glob } from 'glob';
|
|
27
25
|
|
|
28
26
|
export class DomainDesignLanguageScopeProvider extends DefaultScopeProvider {
|
|
29
27
|
override getScope(context: ReferenceInfo): Scope {
|
|
@@ -61,15 +59,24 @@ export class DomainDesignLanguageScopeProvider extends DefaultScopeProvider {
|
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
private getBoundedContextsFromGlobalScope(): Scope {
|
|
64
|
-
const
|
|
65
|
-
const uris = new Set<string>();
|
|
66
|
-
for (const filePath of files) uris.add(URI.file(filePath).toString());
|
|
62
|
+
const uris = this.getBoundedContextUris();
|
|
67
63
|
const astNodeDescriptions = this.indexManager
|
|
68
64
|
.allElements('BoundedContext', uris)
|
|
69
65
|
.toArray();
|
|
70
66
|
return this.createScope(astNodeDescriptions);
|
|
71
67
|
}
|
|
72
68
|
|
|
69
|
+
private getBoundedContextUris(): Set<string> {
|
|
70
|
+
const uris = new Set<string>();
|
|
71
|
+
this.indexManager
|
|
72
|
+
.allElements('BoundedContext')
|
|
73
|
+
.forEach((description) => {
|
|
74
|
+
if (/\/boundedContexts\/[^/]+\.ddd$/i.test(description.documentUri.path))
|
|
75
|
+
uris.add(description.documentUri.toString());
|
|
76
|
+
});
|
|
77
|
+
return uris;
|
|
78
|
+
}
|
|
79
|
+
|
|
73
80
|
private getScopeForDomainAttribute(context: ReferenceInfo): Scope {
|
|
74
81
|
const boundedContext = this.searchParent<BoundedContext>(
|
|
75
82
|
context,
|