@alloy-js/csharp 0.21.0-dev.2 → 0.21.0-dev.3
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.
- package/dist/src/components/enum/declaration.ref.test.js +1 -1
- package/dist/src/components/index.d.ts +1 -1
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +1 -2
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/components/namespace/namespace-name.d.ts +10 -0
- package/dist/src/components/namespace/namespace-name.d.ts.map +1 -0
- package/dist/src/components/namespace/namespace-name.js +20 -0
- package/dist/src/components/namespace/namespace-name.js.map +1 -0
- package/dist/src/components/{namespace.d.ts → namespace/namespace.d.ts} +1 -1
- package/dist/src/components/namespace/namespace.d.ts.map +1 -0
- package/dist/src/components/{namespace.js → namespace/namespace.js} +9 -12
- package/dist/src/components/namespace/namespace.js.map +1 -0
- package/dist/src/components/namespace/namespace.test.d.ts.map +1 -0
- package/dist/src/components/namespace/namespace.test.js +207 -0
- package/dist/src/components/namespace/namespace.test.js.map +1 -0
- package/dist/src/components/namespace.ref.test.js +1 -1
- package/dist/src/components/source-file/source-file.d.ts.map +1 -1
- package/dist/src/components/source-file/source-file.js +4 -2
- package/dist/src/components/source-file/source-file.js.map +1 -1
- package/dist/src/components/source-file/source-file.test.js +1 -1
- package/dist/src/components/source-file/using.test.js +1 -1
- package/dist/src/symbols/factories.d.ts +1 -1
- package/dist/src/symbols/factories.d.ts.map +1 -1
- package/dist/src/symbols/factories.js +24 -6
- package/dist/src/symbols/factories.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/enum/declaration.ref.test.tsx +1 -1
- package/src/components/index.ts +1 -1
- package/src/components/namespace/namespace-name.tsx +31 -0
- package/src/components/namespace/namespace.test.tsx +145 -0
- package/src/components/{namespace.tsx → namespace/namespace.tsx} +7 -13
- package/src/components/namespace.ref.test.tsx +1 -1
- package/src/components/source-file/source-file.test.tsx +1 -1
- package/src/components/source-file/source-file.tsx +2 -2
- package/src/components/source-file/using.test.tsx +1 -1
- package/src/symbols/factories.ts +39 -10
- package/temp/api.json +34 -8
- package/dist/src/components/namespace.d.ts.map +0 -1
- package/dist/src/components/namespace.js.map +0 -1
- package/dist/src/components/namespace.test.d.ts.map +0 -1
- package/dist/src/components/namespace.test.js +0 -93
- package/dist/src/components/namespace.test.js.map +0 -1
- package/src/components/namespace.test.tsx +0 -65
- /package/dist/src/components/{namespace.test.d.ts → namespace/namespace.test.d.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
-
import { Namespace } from "#components/namespace.js";
|
|
2
|
+
import { Namespace } from "#components/namespace/namespace.js";
|
|
3
3
|
import { SourceFile } from "#components/source-file/source-file.js";
|
|
4
4
|
import { Output, refkey } from "@alloy-js/core";
|
|
5
5
|
import { d } from "@alloy-js/core/testing";
|
|
@@ -15,7 +15,7 @@ export * from "./lexical-scope.jsx";
|
|
|
15
15
|
export * from "./method-scope.jsx";
|
|
16
16
|
export * from "./method/method.jsx";
|
|
17
17
|
export * from "./Name.js";
|
|
18
|
-
export
|
|
18
|
+
export { Namespace, type NamespaceProps } from "./namespace/namespace.jsx";
|
|
19
19
|
export * from "./parameters/parameters.jsx";
|
|
20
20
|
export * from "./ProjectDirectory.js";
|
|
21
21
|
export * from "./property/property.jsx";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mDAAmD,CAAC;AAClE,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mDAAmD,CAAC;AAClE,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3E,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
|
|
@@ -15,7 +15,7 @@ export * from "./lexical-scope.js";
|
|
|
15
15
|
export * from "./method-scope.js";
|
|
16
16
|
export * from "./method/method.js";
|
|
17
17
|
export * from "./Name.js";
|
|
18
|
-
export
|
|
18
|
+
export { Namespace } from "./namespace/namespace.js";
|
|
19
19
|
export * from "./parameters/parameters.js";
|
|
20
20
|
export * from "./ProjectDirectory.js";
|
|
21
21
|
export * from "./property/property.js";
|
|
@@ -25,5 +25,4 @@ export * from "./source-file/source-file.js";
|
|
|
25
25
|
export * from "./struct/declaration.js";
|
|
26
26
|
export * from "./using/using.js";
|
|
27
27
|
export * from "./var/declaration.js";
|
|
28
|
-
export {};
|
|
29
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/components/index.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,uBAAuB;AACrC,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,
|
|
1
|
+
{"version":3,"names":["Namespace"],"sources":["../../../src/components/index.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,uBAAuB;AACrC,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,SAASA,SAAS;AAClB;AACA,cAAc,uBAAuB;AACrC;AACA,cAAc,yBAAyB;AACvC,cAAc,gBAAgB;AAC9B;AACA;AAEA;AACA","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NamespaceSymbol } from "../../symbols/namespace.js";
|
|
2
|
+
/** @internal */
|
|
3
|
+
export interface NamespaceNameProps {
|
|
4
|
+
symbol: NamespaceSymbol;
|
|
5
|
+
/** If it should print relative to the parent context */
|
|
6
|
+
relative?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/** @internal */
|
|
9
|
+
export declare function NamespaceName(props: NamespaceNameProps): string;
|
|
10
|
+
//# sourceMappingURL=namespace-name.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace-name.d.ts","sourceRoot":"","sources":["../../../../src/components/namespace/namespace-name.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,gBAAgB;AAChB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,eAAe,CAAC;IAExB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,UAkBtD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useNamespaceContext } from "../../contexts/namespace.js";
|
|
2
|
+
import { NamespaceSymbol } from "../../symbols/namespace.js";
|
|
3
|
+
|
|
4
|
+
/** @internal */
|
|
5
|
+
|
|
6
|
+
/** @internal */
|
|
7
|
+
export function NamespaceName(props) {
|
|
8
|
+
const names = [props.symbol.name];
|
|
9
|
+
const parent = props.relative ? useNamespaceContext()?.symbol : undefined;
|
|
10
|
+
let current = props.symbol.ownerSymbol;
|
|
11
|
+
while (current) {
|
|
12
|
+
if (current === parent || !(current instanceof NamespaceSymbol) || current.isGlobal) {
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
names.unshift(current.name);
|
|
16
|
+
current = current.ownerSymbol;
|
|
17
|
+
}
|
|
18
|
+
return names.join(".");
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=namespace-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useNamespaceContext","NamespaceSymbol","NamespaceName","props","names","symbol","name","parent","relative","undefined","current","ownerSymbol","isGlobal","unshift","join"],"sources":["../../../../src/components/namespace/namespace-name.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,eAAe,QAAQ,4BAA4B;;AAE5D;;AAQA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAMC,KAAK,GAAG,CAACD,KAAK,CAACE,MAAM,CAACC,IAAI,CAAC;EACjC,MAAMC,MAAM,GAAGJ,KAAK,CAACK,QAAQ,GAAGR,mBAAmB,CAAC,CAAC,EAAEK,MAAM,GAAGI,SAAS;EAEzE,IAAIC,OAAO,GAAGP,KAAK,CAACE,MAAM,CAACM,WAAW;EACtC,OAAOD,OAAO,EAAE;IACd,IACEA,OAAO,KAAKH,MAAM,IAClB,EAAEG,OAAO,YAAYT,eAAe,CAAC,IACrCS,OAAO,CAACE,QAAQ,EAChB;MACA;IACF;IACAR,KAAK,CAACS,OAAO,CAACH,OAAO,CAACJ,IAAI,CAAC;IAC3BI,OAAO,GAAGA,OAAO,CAACC,WAAW;EAC/B;EAEA,OAAOP,KAAK,CAACU,IAAI,CAAC,GAAG,CAAC;AACxB","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Namekey, Refkey } from "@alloy-js/core";
|
|
2
2
|
import { Children } from "@alloy-js/core/jsx-runtime";
|
|
3
3
|
export interface NamespaceProps {
|
|
4
|
-
name: string | Namekey;
|
|
4
|
+
name: string | Namekey | (string | Namekey)[];
|
|
5
5
|
refkey?: Refkey | Refkey[];
|
|
6
6
|
children?: Children;
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.d.ts","sourceRoot":"","sources":["../../../../src/components/namespace/namespace.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAOtD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,YA2B9C"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { Block } from "@alloy-js/core";
|
|
3
|
-
import { NamespaceContext } from "
|
|
4
|
-
import { useSourceFileScope } from "
|
|
5
|
-
import { createNamespaceSymbol } from "
|
|
6
|
-
import { NamespaceScope } from "
|
|
3
|
+
import { NamespaceContext } from "../../contexts/namespace.js";
|
|
4
|
+
import { useSourceFileScope } from "../../scopes/source-file.js";
|
|
5
|
+
import { createNamespaceSymbol } from "../../symbols/factories.js";
|
|
6
|
+
import { NamespaceScope } from "../namespace-scopes.js";
|
|
7
|
+
import { NamespaceName } from "./namespace-name.js";
|
|
7
8
|
export function Namespace(props) {
|
|
8
9
|
const namespaceSymbol = createNamespaceSymbol(props.name, {
|
|
9
10
|
refkeys: props.refkey
|
|
@@ -20,7 +21,10 @@ export function Namespace(props) {
|
|
|
20
21
|
});
|
|
21
22
|
} else {
|
|
22
23
|
sfScope.hasBlockNamespace = true;
|
|
23
|
-
return ["namespace ", _$
|
|
24
|
+
return ["namespace ", _$createComponent(NamespaceName, {
|
|
25
|
+
symbol: namespaceSymbol,
|
|
26
|
+
relative: true
|
|
27
|
+
}), " ", _$createComponent(Block, {
|
|
24
28
|
get children() {
|
|
25
29
|
return _$createComponent(NamespaceContext.Provider, {
|
|
26
30
|
value: {
|
|
@@ -39,11 +43,4 @@ export function Namespace(props) {
|
|
|
39
43
|
})];
|
|
40
44
|
}
|
|
41
45
|
}
|
|
42
|
-
|
|
43
|
-
/*
|
|
44
|
-
const scope = createCSharpNamespaceScope(namespaceSymbol);
|
|
45
|
-
|
|
46
|
-
return <Scope value={scope}>{props.children}</Scope>;
|
|
47
|
-
}
|
|
48
|
-
*/
|
|
49
46
|
//# sourceMappingURL=namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Block","NamespaceContext","useSourceFileScope","createNamespaceSymbol","NamespaceScope","NamespaceName","Namespace","props","namespaceSymbol","name","refkeys","refkey","sfScope","_$createComponent","Provider","value","symbol","children","hasBlockNamespace","relative"],"sources":["../../../../src/components/namespace/namespace.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,KAAK,QAAyB,gBAAgB;AAEvD,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,kBAAkB,QAAQ,6BAA6B;AAChE,SAASC,qBAAqB,QAAQ,4BAA4B;AAClE,SAASC,cAAc;AACvB,SAASC,aAAa;AAQtB,OAAO,SAASC,SAASA,CAACC,KAAqB,EAAE;EAC/C,MAAMC,eAAe,GAAGL,qBAAqB,CAACI,KAAK,CAACE,IAAI,EAAE;IACxDC,OAAO,EAAEH,KAAK,CAACI;EACjB,CAAC,CAAC;EACF,MAAMC,OAAO,GAAGV,kBAAkB,CAAC,CAAC;EAEpC,IAAI,CAACU,OAAO,EAAE;IACZ,OAAAC,iBAAA,CACGZ,gBAAgB,CAACa,QAAQ;MAACC,KAAK,EAAE;QAAEC,MAAM,EAAER;MAAgB,CAAC;MAAA,IAAAS,SAAA;QAAA,OAC1DV,KAAK,CAACU,QAAQ;MAAA;IAAA;EAGrB,CAAC,MAAM;IACLL,OAAO,CAACM,iBAAiB,GAAG,IAAI;IAChC,sBAAAL,iBAAA,CAEeR,aAAa;MAACW,MAAM,EAAER,eAAe;MAAEW,QAAQ;IAAA,IAAI,GAAG,EAAAN,iBAAA,CAChEb,KAAK;MAAA,IAAAiB,SAAA;QAAA,OAAAJ,iBAAA,CACHZ,gBAAgB,CAACa,QAAQ;UAACC,KAAK,EAAE;YAAEC,MAAM,EAAER;UAAgB,CAAC;UAAA,IAAAS,SAAA;YAAA,OAAAJ,iBAAA,CAC1DT,cAAc;cAACY,MAAM,EAAER,eAAe;cAAA,IAAAS,SAAA;gBAAA,OACpCV,KAAK,CAACU,QAAQ;cAAA;YAAA;UAAA;QAAA;MAAA;IAAA;EAM3B;AACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namespace.test.d.ts","sourceRoot":"","sources":["../../../../src/components/namespace/namespace.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { TestNamespace } from "#test/utils.js";
|
|
3
|
+
import { Output } from "@alloy-js/core";
|
|
4
|
+
import { d } from "@alloy-js/core/testing";
|
|
5
|
+
import { expect, it } from "vitest";
|
|
6
|
+
import { ClassDeclaration } from "../class/declaration.js";
|
|
7
|
+
import { SourceFile } from "../source-file/source-file.js";
|
|
8
|
+
import { Namespace } from "./namespace.js";
|
|
9
|
+
it("defines multiple namespaces and source files with unique content", () => {
|
|
10
|
+
const tree = _$createComponent(Output, {
|
|
11
|
+
get children() {
|
|
12
|
+
return [_$createComponent(Namespace, {
|
|
13
|
+
name: "Namespace1",
|
|
14
|
+
get children() {
|
|
15
|
+
return [_$createComponent(SourceFile, {
|
|
16
|
+
path: "Model1.cs",
|
|
17
|
+
get children() {
|
|
18
|
+
return _$createComponent(ClassDeclaration, {
|
|
19
|
+
"public": true,
|
|
20
|
+
name: "Model1"
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}), _$createComponent(SourceFile, {
|
|
24
|
+
path: "Model2.cs",
|
|
25
|
+
get children() {
|
|
26
|
+
return _$createComponent(ClassDeclaration, {
|
|
27
|
+
"public": true,
|
|
28
|
+
name: "Model2"
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
})];
|
|
32
|
+
}
|
|
33
|
+
}), _$createComponent(Namespace, {
|
|
34
|
+
name: "Namespace2",
|
|
35
|
+
get children() {
|
|
36
|
+
return [_$createComponent(SourceFile, {
|
|
37
|
+
path: "Model3.cs",
|
|
38
|
+
get children() {
|
|
39
|
+
return _$createComponent(ClassDeclaration, {
|
|
40
|
+
"public": true,
|
|
41
|
+
name: "Model3"
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}), _$createComponent(SourceFile, {
|
|
45
|
+
path: "Model4.cs",
|
|
46
|
+
get children() {
|
|
47
|
+
return _$createComponent(ClassDeclaration, {
|
|
48
|
+
"public": true,
|
|
49
|
+
name: "Model4"
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
})];
|
|
53
|
+
}
|
|
54
|
+
})];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
expect(tree).toRenderTo({
|
|
58
|
+
"Model1.cs": d`
|
|
59
|
+
namespace Namespace1;
|
|
60
|
+
|
|
61
|
+
public class Model1;
|
|
62
|
+
`,
|
|
63
|
+
"Model2.cs": d`
|
|
64
|
+
namespace Namespace1;
|
|
65
|
+
|
|
66
|
+
public class Model2;
|
|
67
|
+
`,
|
|
68
|
+
"Model3.cs": d`
|
|
69
|
+
namespace Namespace2;
|
|
70
|
+
|
|
71
|
+
public class Model3;
|
|
72
|
+
`,
|
|
73
|
+
"Model4.cs": d`
|
|
74
|
+
namespace Namespace2;
|
|
75
|
+
|
|
76
|
+
public class Model4;
|
|
77
|
+
`
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
it("nest namespaces", () => {
|
|
81
|
+
const tree = _$createComponent(Output, {
|
|
82
|
+
get children() {
|
|
83
|
+
return _$createComponent(Namespace, {
|
|
84
|
+
name: ["Namespace1"],
|
|
85
|
+
get children() {
|
|
86
|
+
return _$createComponent(Namespace, {
|
|
87
|
+
name: ["Namespace2"],
|
|
88
|
+
get children() {
|
|
89
|
+
return _$createComponent(SourceFile, {
|
|
90
|
+
path: "Model1.cs",
|
|
91
|
+
get children() {
|
|
92
|
+
return _$createComponent(ClassDeclaration, {
|
|
93
|
+
"public": true,
|
|
94
|
+
name: "Model1"
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
expect(tree).toRenderTo(`
|
|
105
|
+
namespace Namespace1.Namespace2;
|
|
106
|
+
|
|
107
|
+
public class Model1;
|
|
108
|
+
`);
|
|
109
|
+
});
|
|
110
|
+
it("define nested namespace directly with array", () => {
|
|
111
|
+
const tree = _$createComponent(Output, {
|
|
112
|
+
get children() {
|
|
113
|
+
return _$createComponent(Namespace, {
|
|
114
|
+
name: ["Namespace1", "Namespace2"],
|
|
115
|
+
get children() {
|
|
116
|
+
return _$createComponent(SourceFile, {
|
|
117
|
+
path: "Model1.cs",
|
|
118
|
+
get children() {
|
|
119
|
+
return _$createComponent(ClassDeclaration, {
|
|
120
|
+
"public": true,
|
|
121
|
+
name: "Model1"
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
expect(tree).toRenderTo(`
|
|
130
|
+
namespace Namespace1.Namespace2;
|
|
131
|
+
|
|
132
|
+
public class Model1;
|
|
133
|
+
`);
|
|
134
|
+
});
|
|
135
|
+
it("define nested namespace directly as dotted notation", () => {
|
|
136
|
+
const tree = _$createComponent(Output, {
|
|
137
|
+
get children() {
|
|
138
|
+
return _$createComponent(Namespace, {
|
|
139
|
+
name: "Namespace1.Namespace2",
|
|
140
|
+
get children() {
|
|
141
|
+
return _$createComponent(SourceFile, {
|
|
142
|
+
path: "Model1.cs",
|
|
143
|
+
get children() {
|
|
144
|
+
return _$createComponent(ClassDeclaration, {
|
|
145
|
+
"public": true,
|
|
146
|
+
name: "Model1"
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
expect(tree).toRenderTo({
|
|
155
|
+
"Model1.cs": d`
|
|
156
|
+
namespace Namespace1.Namespace2;
|
|
157
|
+
|
|
158
|
+
public class Model1;
|
|
159
|
+
`
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
it("uses a name policy", () => {
|
|
163
|
+
expect(_$createComponent(TestNamespace, {
|
|
164
|
+
get children() {
|
|
165
|
+
return _$createComponent(Namespace, {
|
|
166
|
+
name: "my-namespace"
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
})).toRenderTo(`
|
|
170
|
+
namespace MyNamespace {
|
|
171
|
+
|
|
172
|
+
}
|
|
173
|
+
`);
|
|
174
|
+
});
|
|
175
|
+
it("define nested namespace in sourcefile", () => {
|
|
176
|
+
const tree = _$createComponent(Output, {
|
|
177
|
+
get children() {
|
|
178
|
+
return _$createComponent(Namespace, {
|
|
179
|
+
name: "Base",
|
|
180
|
+
get children() {
|
|
181
|
+
return _$createComponent(SourceFile, {
|
|
182
|
+
path: "Model1.cs",
|
|
183
|
+
get children() {
|
|
184
|
+
return _$createComponent(Namespace, {
|
|
185
|
+
name: "Namespace1.Namespace2",
|
|
186
|
+
get children() {
|
|
187
|
+
return _$createComponent(ClassDeclaration, {
|
|
188
|
+
"public": true,
|
|
189
|
+
name: "Model1"
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
expect(tree).toRenderTo(`
|
|
200
|
+
namespace Base {
|
|
201
|
+
namespace Namespace1.Namespace2 {
|
|
202
|
+
public class Model1;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
`);
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=namespace.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TestNamespace","Output","d","expect","it","ClassDeclaration","SourceFile","Namespace","tree","_$createComponent","children","name","path","toRenderTo"],"sources":["../../../../src/components/namespace/namespace.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { createComponent as _$createComponent, createIntrinsic as _$createIntrin
|
|
|
2
2
|
import { List, memberRefkey, namekey, Output, refkey } from "@alloy-js/core";
|
|
3
3
|
import { expect, it } from "vitest";
|
|
4
4
|
import { ClassDeclaration } from "./class/declaration.js";
|
|
5
|
-
import { Namespace } from "./namespace.js";
|
|
5
|
+
import { Namespace } from "./namespace/namespace.js";
|
|
6
6
|
import { SourceFile } from "./source-file/source-file.js";
|
|
7
7
|
it("references types in the same namespace", () => {
|
|
8
8
|
const classRef = refkey();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-file.d.ts","sourceRoot":"","sources":["../../../../src/components/source-file/source-file.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source-file.d.ts","sourceRoot":"","sources":["../../../../src/components/source-file/source-file.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,QAAQ,EAKT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,kCAAkC,CAAC;AAM1C;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,YA0DhD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createComponent as _$createComponent, memo as _$memo, mergeProps as _$mergeProps, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { NamespaceScopes } from "#components/namespace-scopes.js";
|
|
3
|
+
import { NamespaceName } from "#components/namespace/namespace-name.js";
|
|
3
4
|
import { Reference } from "#components/Reference.js";
|
|
4
5
|
import { Usings } from "#components/using/using.js";
|
|
5
6
|
import { Block, computed, SourceFile as CoreSourceFile, Scope, useBinder } from "@alloy-js/core";
|
|
@@ -18,7 +19,6 @@ export function SourceFile(props) {
|
|
|
18
19
|
const nsContext = useNamespaceContext();
|
|
19
20
|
const globalNs = getGlobalNamespace(useBinder());
|
|
20
21
|
const nsSymbol = nsContext ? nsContext.symbol : globalNs;
|
|
21
|
-
const nsRef = nsContext ? nsContext.symbol.name : undefined;
|
|
22
22
|
const usings = computed(() => {
|
|
23
23
|
return Array.from(sourceFileScope.usings).concat(props.using ?? []);
|
|
24
24
|
});
|
|
@@ -48,7 +48,9 @@ export function SourceFile(props) {
|
|
|
48
48
|
get namespaces() {
|
|
49
49
|
return usings.value;
|
|
50
50
|
}
|
|
51
|
-
}), _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {})]), _$memo(() => nsSymbol === globalNs ? content : ["namespace ",
|
|
51
|
+
}), _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {})]), _$memo(() => nsSymbol === globalNs ? content : ["namespace ", _$createComponent(NamespaceName, {
|
|
52
|
+
symbol: nsSymbol
|
|
53
|
+
}), _$memo(() => _$memo(() => !!sourceFileScope.hasBlockNamespace)() ? [" ", _$createComponent(Block, {
|
|
52
54
|
children: content
|
|
53
55
|
})] : [";", _$createIntrinsic("hbr", {}), _$createIntrinsic("hbr", {}), content])])];
|
|
54
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NamespaceScopes","Reference","Usings","Block","computed","SourceFile","CoreSourceFile","Scope","useBinder","useCsharpFormatOptions","getGlobalNamespace","useNamespaceContext","CSharpSourceFileScope","props","sourceFileScope","path","nsContext","globalNs","nsSymbol","symbol","
|
|
1
|
+
{"version":3,"names":["NamespaceScopes","NamespaceName","Reference","Usings","Block","computed","SourceFile","CoreSourceFile","Scope","useBinder","useCsharpFormatOptions","getGlobalNamespace","useNamespaceContext","CSharpSourceFileScope","props","sourceFileScope","path","nsContext","globalNs","nsSymbol","symbol","usings","Array","from","concat","using","content","_$createComponent","children","opts","printWidth","tabWidth","useTabs","_$mergeProps","filetype","reference","value","_$memo","size","length","namespaces","_$createIntrinsic","hasBlockNamespace"],"sources":["../../../../src/components/source-file/source-file.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,eAAe;AACxB,SAASC,aAAa;AACtB,SAASC,SAAS;AAClB,SAASC,MAAM;AACf,SACEC,KAAK,EAELC,QAAQ,EACRC,UAAU,IAAIC,cAAc,EAC5BC,KAAK,EACLC,SAAS,QACJ,gBAAgB;AACvB,SAEEC,sBAAsB,QACjB,kCAAkC;AACzC,SAASC,kBAAkB,QAAQ,oCAAoC;AACvE,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,qBAAqB,QAAQ,6BAA6B;;AAGnE;AACA;AACA;;AAeA;AACA,OAAO,SAASP,UAAUA,CAACQ,KAAsB,EAAE;EACjD,MAAMC,eAAe,GAAG,IAAIF,qBAAqB,CAACC,KAAK,CAACE,IAAI,CAAC;EAE7D,MAAMC,SAAS,GAAGL,mBAAmB,CAAC,CAAC;EACvC,MAAMM,QAAQ,GAAGP,kBAAkB,CAACF,SAAS,CAAC,CAAC,CAAC;EAChD,MAAMU,QAAQ,GAAGF,SAAS,GAAGA,SAAS,CAACG,MAAM,GAAGF,QAAQ;EACxD,MAAMG,MAAM,GAAGhB,QAAQ,CAAC,MAAM;IAC5B,OACEiB,KAAK,CAACC,IAAI,CAACR,eAAe,CAACM,MAAM,CAAC,CAClCG,MAAM,CAACV,KAAK,CAACW,KAAK,IAAI,EAAE,CAAC;EAC7B,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAGrB,QAAQ,CAAC,MAAAsB,iBAAA,CACtB3B,eAAe;IAACoB,MAAM,EAAED,QAAQ;IAAA,IAAAS,SAAA;MAAA,OAAGd,KAAK,CAACc,QAAQ;IAAA;EAAA,EACnD,CAAC;EAEF,MAAMC,IAAI,GAAGnB,sBAAsB,CAAC;IAClCoB,UAAU,EAAEhB,KAAK,CAACgB,UAAU;IAC5BC,QAAQ,EAAEjB,KAAK,CAACiB,QAAQ;IACxBC,OAAO,EAAElB,KAAK,CAACkB;EACjB,CAAC,CAAC;EAEF,OAAAL,iBAAA,CACGpB,cAAc,EAAA0B,YAAA;IAAA,IACbjB,IAAIA,CAAA;MAAA,OAAEF,KAAK,CAACE,IAAI;IAAA;IAChBkB,QAAQ;IACRC,SAAS,EAAEjC;EAAS,GAChB2B,IAAI;IAAA,IAAAD,SAAA;MAAA,OAAAD,iBAAA,CAEPnB,KAAK;QAAC4B,KAAK,EAAErB,eAAe;QAAA,IAAAa,SAAA;UAAA,QAAAS,MAAA,OAC1BA,MAAA,UAACtB,eAAe,CAACM,MAAM,CAACiB,IAAI,GAAG,CAAC,IAC9BxB,KAAK,CAACW,KAAK,IAAIX,KAAK,CAACW,KAAK,CAACc,MAAM,GAAG,CAAE,SAAAZ,iBAAA,CAEpCxB,MAAM;YAAA,IAACqC,UAAUA,CAAA;cAAA,OAAEnB,MAAM,CAACe,KAAK;YAAA;UAAA,IAAAK,iBAAA,aAAAA,iBAAA,YAInC,GAAAJ,MAAA,OACAlB,QAAQ,KAAKD,QAAQ,GACpBQ,OAAO,kBAAAC,iBAAA,CAEM1B,aAAa;YAACmB,MAAM,EAAED;UAAQ,IAAAkB,MAAA,OACxCA,MAAA,SAAAtB,eAAe,CAAC2B,iBAAiB,OAE7B,GAAG,EAAAf,iBAAA,CACHvB,KAAK;YAAAwB,QAAA,EAAEF;UAAO,YAAAe,iBAAA,aAAAA,iBAAA,aAKdf,OAAO,CACP,EAEJ;QAAA;MAAA;IAAA;EAAA;AAKb","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { ClassDeclaration } from "#components/class/declaration.js";
|
|
3
|
-
import { Namespace } from "#components/namespace.js";
|
|
3
|
+
import { Namespace } from "#components/namespace/namespace.js";
|
|
4
4
|
import { FormatOptions, Indent, Output, Prose } from "@alloy-js/core";
|
|
5
5
|
import { describe, expect, it } from "vitest";
|
|
6
6
|
import { CSharpFormatOptions } from "../../contexts/format-options.js";
|
|
@@ -3,7 +3,7 @@ import { ClassDeclaration } from "#components/class/declaration.js";
|
|
|
3
3
|
import { EnumDeclaration } from "#components/enum/declaration.js";
|
|
4
4
|
import { EnumMember } from "#components/enum/member.js";
|
|
5
5
|
import { Method } from "#components/method/method.js";
|
|
6
|
-
import { Namespace } from "#components/namespace.js";
|
|
6
|
+
import { Namespace } from "#components/namespace/namespace.js";
|
|
7
7
|
import { SourceFile } from "#components/source-file/source-file.js";
|
|
8
8
|
import { Output, refkey } from "@alloy-js/core";
|
|
9
9
|
import * as coretest from "@alloy-js/core/testing";
|
|
@@ -15,7 +15,7 @@ export interface CreateTypeParameterSymbolOptions extends CSharpSymbolOptions {
|
|
|
15
15
|
export declare function createTypeParameterSymbol(originalName: string | Namekey, options?: CreateTypeParameterSymbolOptions): CSharpSymbol;
|
|
16
16
|
export declare function createFieldSymbol(originalName: string | Namekey, options?: CSharpSymbolOptions): CSharpSymbol;
|
|
17
17
|
export declare function createNamedTypeSymbol(name: string | Namekey, kind: NamedTypeTypeKind, options?: OutputSymbolOptions): NamedTypeSymbol;
|
|
18
|
-
export declare function createNamespaceSymbol(name: string | Namekey, options?: CSharpSymbolOptions): NamespaceSymbol;
|
|
18
|
+
export declare function createNamespaceSymbol(name: string | Namekey | (string | Namekey)[], options?: CSharpSymbolOptions): NamespaceSymbol;
|
|
19
19
|
export interface CreateMethodSymbolOptions extends CSharpSymbolOptions {
|
|
20
20
|
methodKind?: MethodKinds;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/symbols/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../src/symbols/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBAgBlC;AAED,MAAM,WAAW,gCAAiC,SAAQ,mBAAmB;IAC3E,KAAK,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;CAClD;AACD,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,gCAAqC,gBAiB/C;AAED,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBA0BlC;AASD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,mBAAmB,mBAM9B;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,EAC7C,OAAO,GAAE,mBAAwB,GAChC,eAAe,CASjB;AAoCD,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,yBAA8B,gBAsBxC;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,OAAO,EACtB,OAAO,EAAE,mBAAmB,gBAU7B;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,GAAG,OAAO,EAC9B,OAAO,GAAE,mBAAwB,gBA6BlC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { onCleanup, useBinder } from "@alloy-js/core";
|
|
2
2
|
import { getGlobalNamespace } from "../contexts/global-namespace.js";
|
|
3
|
+
import { useNamespaceContext } from "../contexts/namespace.js";
|
|
3
4
|
import { useCSharpNamePolicy } from "../name-policy.js";
|
|
4
5
|
import { CSharpClassScope } from "../scopes/class.js";
|
|
5
6
|
import { useCSharpScope, useNamedTypeScope } from "../scopes/contexts.js";
|
|
6
7
|
import { CSharpLexicalScope } from "../scopes/lexical.js";
|
|
7
8
|
import { CSharpMethodScope } from "../scopes/method.js";
|
|
8
9
|
import { CSharpNamedTypeScope } from "../scopes/named-type.js";
|
|
9
|
-
import { CSharpNamespaceScope
|
|
10
|
+
import { CSharpNamespaceScope } from "../scopes/namespace.js";
|
|
10
11
|
import { CSharpSourceFileScope } from "../scopes/source-file.js";
|
|
11
12
|
import { CSharpSymbol } from "./csharp.js";
|
|
12
13
|
import { MethodSymbol } from "./method.js";
|
|
@@ -52,14 +53,31 @@ export function createNamedTypeSymbol(name, kind, options) {
|
|
|
52
53
|
return withCleanup(new NamedTypeSymbol(name, scope.ownerSymbol.members, kind, options));
|
|
53
54
|
}
|
|
54
55
|
export function createNamespaceSymbol(name, options = {}) {
|
|
55
|
-
const scope =
|
|
56
|
-
const
|
|
56
|
+
const scope = useNamespaceContext();
|
|
57
|
+
const parentSymbol = scope?.symbol ?? getGlobalNamespace(useBinder());
|
|
58
|
+
const names = normalizeNamespaceName(name);
|
|
59
|
+
let current = parentSymbol;
|
|
60
|
+
for (const name of names) {
|
|
61
|
+
current = createNamespaceSymbolInternal(name, current, options);
|
|
62
|
+
}
|
|
63
|
+
return current;
|
|
64
|
+
}
|
|
65
|
+
function normalizeNamespaceName(name) {
|
|
66
|
+
if (Array.isArray(name)) {
|
|
67
|
+
return name;
|
|
68
|
+
}
|
|
69
|
+
if (typeof name === "string" && name.includes(".")) {
|
|
70
|
+
return name.split(".");
|
|
71
|
+
}
|
|
72
|
+
return [name];
|
|
73
|
+
}
|
|
74
|
+
function createNamespaceSymbolInternal(name, parentSymbol, options = {}) {
|
|
57
75
|
const namePolicy = options.namePolicy ?? useCSharpNamePolicy().for("namespace");
|
|
58
76
|
const expectedName = namePolicy(typeof name === "string" ? name : name.name);
|
|
59
|
-
if (
|
|
60
|
-
return
|
|
77
|
+
if (parentSymbol.members.symbolNames.has(expectedName)) {
|
|
78
|
+
return parentSymbol.members.symbolNames.get(expectedName);
|
|
61
79
|
}
|
|
62
|
-
return withCleanup(new NamespaceSymbol(name,
|
|
80
|
+
return withCleanup(new NamespaceSymbol(name, parentSymbol, withNamePolicy(options, "namespace")));
|
|
63
81
|
}
|
|
64
82
|
export function createMethodSymbol(originalName, options = {}) {
|
|
65
83
|
const scope = useNamedTypeScope();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["onCleanup","useBinder","getGlobalNamespace","useCSharpNamePolicy","CSharpClassScope","useCSharpScope","useNamedTypeScope","CSharpLexicalScope","CSharpMethodScope","CSharpNamedTypeScope","CSharpNamespaceScope","
|
|
1
|
+
{"version":3,"names":["onCleanup","useBinder","getGlobalNamespace","useNamespaceContext","useCSharpNamePolicy","CSharpClassScope","useCSharpScope","useNamedTypeScope","CSharpLexicalScope","CSharpMethodScope","CSharpNamedTypeScope","CSharpNamespaceScope","CSharpSourceFileScope","CSharpSymbol","MethodSymbol","NamedTypeSymbol","NamespaceSymbol","createParameterSymbol","originalName","options","scope","Error","parameters","withNamePolicy","createTypeParameterSymbol","typeParameters","createFieldSymbol","nameElement","accessibility","ownerSymbol","typeKind","members","withCleanup","sym","delete","createNamedTypeSymbol","name","kind","createNamespaceSymbol","parentSymbol","symbol","names","normalizeNamespaceName","current","createNamespaceSymbolInternal","Array","isArray","includes","split","namePolicy","for","expectedName","symbolNames","has","get","createMethodSymbol","methodKind","createPropertySymbol","createVariableSymbol","binder","parent","constructor","localVariables","elementType"],"sources":["../../../src/symbols/factories.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|