@alloy-js/csharp 0.20.0-dev.1 → 0.20.0-dev.10
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/Declaration.d.ts +2 -2
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +5 -14
- package/dist/src/components/Declaration.js.map +1 -0
- package/dist/src/components/Name.js +2 -1
- package/dist/src/components/Name.js.map +1 -0
- package/dist/src/components/ProjectDirectory.js +2 -1
- package/dist/src/components/ProjectDirectory.js.map +1 -0
- package/dist/src/components/Reference.d.ts.map +1 -1
- package/dist/src/components/Reference.js +7 -2
- package/dist/src/components/Reference.js.map +1 -0
- package/dist/src/components/UsingDirective.d.ts +5 -1
- package/dist/src/components/UsingDirective.d.ts.map +1 -1
- package/dist/src/components/UsingDirective.js +5 -2
- package/dist/src/components/UsingDirective.js.map +1 -0
- package/dist/src/components/access-expression/access-expression.d.ts +54 -0
- package/dist/src/components/access-expression/access-expression.d.ts.map +1 -0
- package/dist/src/components/access-expression/access-expression.js +277 -0
- package/dist/src/components/access-expression/access-expression.js.map +1 -0
- package/dist/src/components/access-expression/access-expression.test.d.ts +2 -0
- package/dist/src/components/access-expression/access-expression.test.d.ts.map +1 -0
- package/dist/src/components/access-expression/access-expression.test.js +336 -0
- package/dist/src/components/access-expression/access-expression.test.js.map +1 -0
- package/dist/src/components/access-expression/part-descriptors.d.ts +32 -0
- package/dist/src/components/access-expression/part-descriptors.d.ts.map +1 -0
- package/dist/src/components/access-expression/part-descriptors.js +99 -0
- package/dist/src/components/access-expression/part-descriptors.js.map +1 -0
- package/dist/src/components/attributes/attributes.js +2 -1
- package/dist/src/components/attributes/attributes.js.map +1 -0
- package/dist/src/components/attributes/attributes.test.js +2 -1
- package/dist/src/components/attributes/attributes.test.js.map +1 -0
- package/dist/src/components/class/declaration.d.ts +2 -2
- package/dist/src/components/class/declaration.d.ts.map +1 -1
- package/dist/src/components/class/declaration.js +21 -34
- package/dist/src/components/class/declaration.js.map +1 -0
- package/dist/src/components/class/declaration.test.js +199 -200
- package/dist/src/components/class/declaration.test.js.map +1 -0
- package/dist/src/components/constructor/constructor.d.ts.map +1 -1
- package/dist/src/components/constructor/constructor.js +13 -20
- package/dist/src/components/constructor/constructor.js.map +1 -0
- package/dist/src/components/constructor/constructor.test.js +12 -20
- package/dist/src/components/constructor/constructor.test.js.map +1 -0
- package/dist/src/components/doc/comment.js +2 -1
- package/dist/src/components/doc/comment.js.map +1 -0
- package/dist/src/components/doc/comment.test.js +2 -1
- package/dist/src/components/doc/comment.test.js.map +1 -0
- package/dist/src/components/doc/from-markdown.js +2 -1
- package/dist/src/components/doc/from-markdown.js.map +1 -0
- package/dist/src/components/doc/from-markdown.test.js +2 -1
- package/dist/src/components/doc/from-markdown.test.js.map +1 -0
- package/dist/src/components/{EnumDeclaration.d.ts → enum/declaration.d.ts} +6 -11
- package/dist/src/components/enum/declaration.d.ts.map +1 -0
- package/dist/src/components/enum/declaration.js +55 -0
- package/dist/src/components/enum/declaration.js.map +1 -0
- package/dist/src/components/enum/declaration.ref.test.d.ts +2 -0
- package/dist/src/components/enum/declaration.ref.test.d.ts.map +1 -0
- package/dist/src/components/enum/declaration.ref.test.js +121 -0
- package/dist/src/components/enum/declaration.ref.test.js.map +1 -0
- package/dist/src/components/enum/declaration.test.d.ts +2 -0
- package/dist/src/components/enum/declaration.test.d.ts.map +1 -0
- package/dist/src/components/enum/declaration.test.js +40 -0
- package/dist/src/components/enum/declaration.test.js.map +1 -0
- package/dist/src/components/enum/member.d.ts +7 -0
- package/dist/src/components/enum/member.d.ts.map +1 -0
- package/dist/src/components/enum/member.js +30 -0
- package/dist/src/components/enum/member.js.map +1 -0
- package/dist/src/components/enum/member.test.d.ts +2 -0
- package/dist/src/components/enum/member.test.d.ts.map +1 -0
- package/dist/src/components/enum/member.test.js +29 -0
- package/dist/src/components/enum/member.test.js.map +1 -0
- package/dist/src/components/field/field.d.ts.map +1 -1
- package/dist/src/components/field/field.js +11 -18
- package/dist/src/components/field/field.js.map +1 -0
- package/dist/src/components/field/field.test.js +9 -8
- package/dist/src/components/field/field.test.js.map +1 -0
- package/dist/src/components/index.d.ts +7 -3
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +9 -4
- package/dist/src/components/index.js.map +1 -0
- package/dist/src/components/interface/declaration.d.ts.map +1 -1
- package/dist/src/components/interface/declaration.js +21 -22
- package/dist/src/components/interface/declaration.js.map +1 -0
- package/dist/src/components/interface/declaration.test.js +28 -36
- package/dist/src/components/interface/declaration.test.js.map +1 -0
- package/dist/src/components/interface/method.d.ts.map +1 -1
- package/dist/src/components/interface/method.js +9 -19
- package/dist/src/components/interface/method.js.map +1 -0
- package/dist/src/components/interface/method.test.js +40 -48
- package/dist/src/components/interface/method.test.js.map +1 -0
- package/dist/src/components/interface/property.d.ts.map +1 -1
- package/dist/src/components/interface/property.js +23 -40
- package/dist/src/components/interface/property.js.map +1 -0
- package/dist/src/components/interface/property.test.js +13 -12
- package/dist/src/components/interface/property.test.js.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.d.ts +29 -0
- package/dist/src/components/invocation-expression/invocation-expression.d.ts.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.js +70 -0
- package/dist/src/components/invocation-expression/invocation-expression.js.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.d.ts +2 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.d.ts.map +1 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.js +105 -0
- package/dist/src/components/invocation-expression/invocation-expression.test.js.map +1 -0
- package/dist/src/components/lexical-scope.d.ts +8 -0
- package/dist/src/components/lexical-scope.d.ts.map +1 -0
- package/dist/src/components/lexical-scope.js +25 -0
- package/dist/src/components/lexical-scope.js.map +1 -0
- package/dist/src/components/method/method.d.ts +5 -2
- package/dist/src/components/method/method.d.ts.map +1 -1
- package/dist/src/components/method/method.js +9 -17
- package/dist/src/components/method/method.js.map +1 -0
- package/dist/src/components/method/method.test.js +13 -12
- package/dist/src/components/method/method.test.js.map +1 -0
- package/dist/src/components/method-scope.d.ts +8 -0
- package/dist/src/components/method-scope.d.ts.map +1 -0
- package/dist/src/components/method-scope.js +25 -0
- package/dist/src/components/method-scope.js.map +1 -0
- package/dist/src/components/namespace-scopes.d.ts +13 -0
- package/dist/src/components/namespace-scopes.d.ts.map +1 -0
- package/dist/src/components/namespace-scopes.js +45 -0
- package/dist/src/components/namespace-scopes.js.map +1 -0
- package/dist/src/components/namespace.d.ts +7 -0
- package/dist/src/components/namespace.d.ts.map +1 -0
- package/dist/src/components/namespace.js +47 -0
- package/dist/src/components/namespace.js.map +1 -0
- package/dist/src/components/namespace.ref.test.d.ts +2 -0
- package/dist/src/components/namespace.ref.test.d.ts.map +1 -0
- package/dist/src/components/namespace.ref.test.js +182 -0
- package/dist/src/components/namespace.ref.test.js.map +1 -0
- package/dist/src/components/namespace.test.d.ts.map +1 -0
- package/dist/src/components/namespace.test.js +79 -0
- package/dist/src/components/namespace.test.js.map +1 -0
- package/dist/src/components/parameters/parameters.d.ts +2 -3
- package/dist/src/components/parameters/parameters.d.ts.map +1 -1
- package/dist/src/components/parameters/parameters.js +15 -15
- package/dist/src/components/parameters/parameters.js.map +1 -0
- package/dist/src/components/parameters/parameters.test.d.ts +2 -0
- package/dist/src/components/parameters/parameters.test.d.ts.map +1 -0
- package/dist/src/components/parameters/parameters.test.js +154 -0
- package/dist/src/components/parameters/parameters.test.js.map +1 -0
- package/dist/src/components/property/property.d.ts +2 -2
- package/dist/src/components/property/property.d.ts.map +1 -1
- package/dist/src/components/property/property.js +30 -40
- package/dist/src/components/property/property.js.map +1 -0
- package/dist/src/components/property/property.test.js +16 -15
- package/dist/src/components/property/property.test.js.map +1 -0
- package/dist/src/components/record/declaration.d.ts +18 -0
- package/dist/src/components/record/declaration.d.ts.map +1 -1
- package/dist/src/components/record/declaration.js +21 -14
- package/dist/src/components/record/declaration.js.map +1 -0
- package/dist/src/components/record/declaration.test.js +52 -4
- package/dist/src/components/record/declaration.test.js.map +1 -0
- package/dist/src/components/source-file/source-file.d.ts +19 -0
- package/dist/src/components/source-file/source-file.d.ts.map +1 -0
- package/dist/src/components/source-file/source-file.js +59 -0
- package/dist/src/components/source-file/source-file.js.map +1 -0
- package/dist/src/components/source-file/source-file.test.d.ts +2 -0
- package/dist/src/components/source-file/source-file.test.d.ts.map +1 -0
- package/dist/src/components/source-file/source-file.test.js +136 -0
- package/dist/src/components/source-file/source-file.test.js.map +1 -0
- package/dist/src/components/stc/index.js +2 -1
- package/dist/src/components/stc/index.js.map +1 -0
- package/dist/src/components/struct/declaration.d.ts.map +1 -1
- package/dist/src/components/struct/declaration.js +6 -7
- package/dist/src/components/struct/declaration.js.map +1 -0
- package/dist/src/components/struct/declaration.test.js +32 -40
- package/dist/src/components/struct/declaration.test.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameter-constraints.js +2 -1
- package/dist/src/components/type-parameters/type-parameter-constraints.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameter-constraints.test.js +2 -1
- package/dist/src/components/type-parameters/type-parameter-constraints.test.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameter.d.ts.map +1 -1
- package/dist/src/components/type-parameters/type-parameter.js +9 -11
- package/dist/src/components/type-parameters/type-parameter.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameters.js +2 -1
- package/dist/src/components/type-parameters/type-parameters.js.map +1 -0
- package/dist/src/components/type-parameters/type-parameters.test.js +5 -4
- package/dist/src/components/type-parameters/type-parameters.test.js.map +1 -0
- package/dist/src/components/var/declaration.d.ts.map +1 -1
- package/dist/src/components/var/declaration.js +8 -9
- package/dist/src/components/var/declaration.js.map +1 -0
- package/dist/src/components/var/declaration.test.js +13 -21
- package/dist/src/components/var/declaration.test.js.map +1 -0
- package/dist/src/contexts/format-options.d.ts +5 -0
- package/dist/src/contexts/format-options.d.ts.map +1 -0
- package/dist/src/contexts/format-options.js +9 -0
- package/dist/src/contexts/format-options.js.map +1 -0
- package/dist/src/contexts/global-namespace.d.ts +5 -0
- package/dist/src/contexts/global-namespace.d.ts.map +1 -0
- package/dist/src/contexts/global-namespace.js +25 -0
- package/dist/src/contexts/global-namespace.js.map +1 -0
- package/dist/src/contexts/namespace.d.ts +8 -0
- package/dist/src/contexts/namespace.d.ts.map +1 -0
- package/dist/src/contexts/namespace.js +6 -0
- package/dist/src/contexts/namespace.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/modifiers.d.ts +11 -0
- package/dist/src/modifiers.d.ts.map +1 -1
- package/dist/src/modifiers.js +2 -1
- package/dist/src/modifiers.js.map +1 -0
- package/dist/src/name-policy.js +2 -1
- package/dist/src/name-policy.js.map +1 -0
- package/dist/src/scopes/class.d.ts +10 -0
- package/dist/src/scopes/class.d.ts.map +1 -0
- package/dist/src/scopes/class.js +11 -0
- package/dist/src/scopes/class.js.map +1 -0
- package/dist/src/scopes/contexts.d.ts +9 -0
- package/dist/src/scopes/contexts.d.ts.map +1 -0
- package/dist/src/scopes/contexts.js +34 -0
- package/dist/src/scopes/contexts.js.map +1 -0
- package/dist/src/scopes/csharp.d.ts +10 -0
- package/dist/src/scopes/csharp.d.ts.map +1 -0
- package/dist/src/scopes/csharp.js +15 -0
- package/dist/src/scopes/csharp.js.map +1 -0
- package/dist/src/scopes/factories.d.ts +9 -0
- package/dist/src/scopes/factories.d.ts.map +1 -0
- package/dist/src/scopes/factories.js +24 -0
- package/dist/src/scopes/factories.js.map +1 -0
- package/dist/src/scopes/index.d.ts +10 -0
- package/dist/src/scopes/index.d.ts.map +1 -0
- package/dist/src/scopes/index.js +10 -0
- package/dist/src/scopes/index.js.map +1 -0
- package/dist/src/scopes/lexical.d.ts +7 -0
- package/dist/src/scopes/lexical.d.ts.map +1 -0
- package/dist/src/scopes/lexical.js +8 -0
- package/dist/src/scopes/lexical.js.map +1 -0
- package/dist/src/scopes/method.d.ts +9 -0
- package/dist/src/scopes/method.d.ts.map +1 -0
- package/dist/src/scopes/method.js +14 -0
- package/dist/src/scopes/method.js.map +1 -0
- package/dist/src/scopes/named-type.d.ts +22 -0
- package/dist/src/scopes/named-type.d.ts.map +1 -0
- package/dist/src/scopes/named-type.js +33 -0
- package/dist/src/scopes/named-type.js.map +1 -0
- package/dist/src/scopes/namespace.d.ts +11 -0
- package/dist/src/scopes/namespace.d.ts.map +1 -0
- package/dist/src/scopes/namespace.js +39 -0
- package/dist/src/scopes/namespace.js.map +1 -0
- package/dist/src/scopes/source-file.d.ts +16 -0
- package/dist/src/scopes/source-file.d.ts.map +1 -0
- package/dist/src/scopes/source-file.js +44 -0
- package/dist/src/scopes/source-file.js.map +1 -0
- package/dist/src/symbols/csharp.d.ts +87 -0
- package/dist/src/symbols/csharp.d.ts.map +1 -0
- package/dist/src/symbols/csharp.js +246 -0
- package/dist/src/symbols/csharp.js.map +1 -0
- package/dist/src/symbols/factories.d.ts +25 -0
- package/dist/src/symbols/factories.d.ts.map +1 -0
- package/dist/src/symbols/factories.js +93 -0
- package/dist/src/symbols/factories.js.map +1 -0
- package/dist/src/symbols/index.d.ts +5 -2
- package/dist/src/symbols/index.d.ts.map +1 -1
- package/dist/src/symbols/index.js +6 -2
- package/dist/src/symbols/index.js.map +1 -0
- package/dist/src/symbols/method.d.ts +13 -0
- package/dist/src/symbols/method.d.ts.map +1 -0
- package/dist/src/symbols/method.js +16 -0
- package/dist/src/symbols/method.js.map +1 -0
- package/dist/src/symbols/named-type.d.ts +19 -0
- package/dist/src/symbols/named-type.d.ts.map +1 -0
- package/dist/src/symbols/named-type.js +31 -0
- package/dist/src/symbols/named-type.js.map +1 -0
- package/dist/src/symbols/namespace.d.ts +22 -0
- package/dist/src/symbols/namespace.d.ts.map +1 -0
- package/dist/src/symbols/namespace.js +45 -0
- package/dist/src/symbols/namespace.js.map +1 -0
- package/dist/src/symbols/reference.d.ts +2 -2
- package/dist/src/symbols/reference.d.ts.map +1 -1
- package/dist/src/symbols/reference.js +50 -44
- package/dist/src/symbols/reference.js.map +1 -0
- package/dist/test/project-directory.test.js +20 -19
- package/dist/test/project-directory.test.js.map +1 -0
- package/dist/test/using.test.js +23 -21
- package/dist/test/using.test.js.map +1 -0
- package/dist/test/utils.d.ts.map +1 -1
- package/dist/test/utils.js +7 -4
- package/dist/test/utils.js.map +1 -0
- package/dist/test/vitest.setup.js +2 -1
- package/dist/test/vitest.setup.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -6
- package/src/components/Declaration.tsx +3 -6
- package/src/components/Reference.tsx +3 -1
- package/src/components/UsingDirective.tsx +12 -2
- package/src/components/access-expression/access-expression.test.tsx +284 -0
- package/src/components/access-expression/access-expression.tsx +375 -0
- package/src/components/access-expression/part-descriptors.ts +175 -0
- package/src/components/class/declaration.test.tsx +142 -150
- package/src/components/class/declaration.tsx +20 -32
- package/src/components/constructor/constructor.test.tsx +10 -16
- package/src/components/constructor/constructor.tsx +13 -32
- package/src/components/enum/declaration.ref.test.tsx +93 -0
- package/src/components/enum/declaration.test.tsx +34 -0
- package/src/components/enum/declaration.tsx +65 -0
- package/src/components/enum/member.test.tsx +24 -0
- package/src/components/enum/member.tsx +36 -0
- package/src/components/field/field.test.tsx +7 -7
- package/src/components/field/field.tsx +12 -22
- package/src/components/index.ts +7 -3
- package/src/components/interface/declaration.test.tsx +26 -32
- package/src/components/interface/declaration.tsx +16 -18
- package/src/components/interface/method.test.tsx +38 -44
- package/src/components/interface/method.tsx +7 -20
- package/src/components/interface/property.test.tsx +11 -11
- package/src/components/interface/property.tsx +15 -34
- package/src/components/invocation-expression/invocation-expression.test.tsx +101 -0
- package/src/components/invocation-expression/invocation-expression.tsx +60 -0
- package/src/components/lexical-scope.tsx +29 -0
- package/src/components/method/method.test.tsx +11 -11
- package/src/components/method/method.tsx +12 -23
- package/src/components/method-scope.tsx +27 -0
- package/src/components/namespace-scopes.tsx +44 -0
- package/src/components/namespace.ref.test.tsx +139 -0
- package/src/components/namespace.test.tsx +52 -0
- package/src/components/namespace.tsx +45 -0
- package/src/components/parameters/parameters.test.tsx +117 -0
- package/src/components/parameters/parameters.tsx +11 -23
- package/src/components/property/property.test.tsx +14 -14
- package/src/components/property/property.tsx +23 -41
- package/src/components/record/declaration.test.tsx +47 -3
- package/src/components/record/declaration.tsx +34 -11
- package/src/components/source-file/source-file.test.tsx +96 -0
- package/src/components/source-file/source-file.tsx +98 -0
- package/src/components/struct/declaration.test.tsx +16 -22
- package/src/components/struct/declaration.tsx +4 -6
- package/src/components/type-parameters/type-parameter.tsx +14 -11
- package/src/components/type-parameters/type-parameters.test.tsx +4 -4
- package/src/components/var/declaration.test.tsx +8 -14
- package/src/components/var/declaration.tsx +12 -6
- package/src/contexts/format-options.ts +14 -0
- package/src/contexts/global-namespace.ts +29 -0
- package/src/contexts/namespace.ts +13 -0
- package/src/index.ts +2 -0
- package/src/modifiers.ts +14 -0
- package/src/scopes/class.ts +12 -0
- package/src/scopes/contexts.ts +45 -0
- package/src/scopes/csharp.ts +23 -0
- package/src/scopes/factories.ts +45 -0
- package/src/scopes/index.ts +9 -0
- package/src/scopes/lexical.ts +10 -0
- package/src/scopes/method.ts +22 -0
- package/src/scopes/named-type.ts +44 -0
- package/src/scopes/namespace.ts +59 -0
- package/src/scopes/source-file.ts +67 -0
- package/src/symbols/csharp.ts +339 -0
- package/src/symbols/factories.ts +215 -0
- package/src/symbols/index.ts +5 -2
- package/src/symbols/method.ts +26 -0
- package/src/symbols/named-type.ts +54 -0
- package/src/symbols/namespace.ts +62 -0
- package/src/symbols/reference.tsx +64 -0
- package/temp/api.json +6919 -2532
- package/test/project-directory.test.tsx +14 -16
- package/test/using.test.tsx +21 -21
- package/test/utils.tsx +2 -1
- package/tsconfig.json +4 -1
- package/tsdoc-metadata.json +1 -1
- package/dist/src/components/EnumDeclaration.d.ts.map +0 -1
- package/dist/src/components/EnumDeclaration.js +0 -85
- package/dist/src/components/Namespace.d.ts +0 -11
- package/dist/src/components/Namespace.d.ts.map +0 -1
- package/dist/src/components/Namespace.js +0 -33
- package/dist/src/components/SourceFile.d.ts +0 -14
- package/dist/src/components/SourceFile.d.ts.map +0 -1
- package/dist/src/components/SourceFile.js +0 -69
- package/dist/src/symbols/csharp-output-symbol.d.ts +0 -8
- package/dist/src/symbols/csharp-output-symbol.d.ts.map +0 -1
- package/dist/src/symbols/csharp-output-symbol.js +0 -19
- package/dist/src/symbols/scopes.d.ts +0 -14
- package/dist/src/symbols/scopes.d.ts.map +0 -1
- package/dist/src/symbols/scopes.js +0 -31
- package/dist/test/enum.test.d.ts +0 -2
- package/dist/test/enum.test.d.ts.map +0 -1
- package/dist/test/enum.test.js +0 -178
- package/dist/test/namespace.test.d.ts.map +0 -1
- package/dist/test/namespace.test.js +0 -81
- package/dist/test/sourcefile.test.d.ts +0 -2
- package/dist/test/sourcefile.test.d.ts.map +0 -1
- package/dist/test/sourcefile.test.js +0 -58
- package/src/components/EnumDeclaration.tsx +0 -99
- package/src/components/Namespace.tsx +0 -35
- package/src/components/SourceFile.tsx +0 -78
- package/src/symbols/csharp-output-symbol.ts +0 -22
- package/src/symbols/reference.ts +0 -65
- package/src/symbols/scopes.ts +0 -41
- package/test/enum.test.tsx +0 -149
- package/test/namespace.test.tsx +0 -55
- package/test/sourcefile.test.tsx +0 -47
- /package/dist/{test → src/components}/namespace.test.d.ts +0 -0
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { ClassDeclaration } from "#components/class/declaration.js";
|
|
3
|
+
import { Method } from "#components/method/method.js";
|
|
4
|
+
import { TestNamespace } from "#test/utils.js";
|
|
5
|
+
import { List, namekey, printTree, renderTree } from "@alloy-js/core";
|
|
6
|
+
import { describe, expect, it } from "vitest";
|
|
7
|
+
import { CSharpSymbol } from "../../symbols/csharp.js";
|
|
8
|
+
import { AccessExpression } from "./access-expression.js";
|
|
9
|
+
it("makes a member access expression", () => {
|
|
10
|
+
const template = _$createComponent(AccessExpression, {
|
|
11
|
+
get children() {
|
|
12
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
13
|
+
id: "Foo"
|
|
14
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
15
|
+
id: "Bar"
|
|
16
|
+
})];
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
expect(template).toRenderTo(`Foo.Bar`);
|
|
20
|
+
});
|
|
21
|
+
it("makes an element access expression", () => {
|
|
22
|
+
const template = _$createComponent(AccessExpression, {
|
|
23
|
+
get children() {
|
|
24
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
25
|
+
id: "Foo"
|
|
26
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
27
|
+
index: 1
|
|
28
|
+
})];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
expect(template).toRenderTo(`Foo[1]`);
|
|
32
|
+
});
|
|
33
|
+
it("makes a call expression", () => {
|
|
34
|
+
const template = _$createComponent(AccessExpression, {
|
|
35
|
+
get children() {
|
|
36
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
37
|
+
id: "Foo"
|
|
38
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
39
|
+
args: [1, 2, 3]
|
|
40
|
+
})];
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
expect(template).toRenderTo(`Foo(1, 2, 3)`);
|
|
44
|
+
});
|
|
45
|
+
it("makes an id part from a symbol", () => {
|
|
46
|
+
const symbol = new CSharpSymbol("Symbol", undefined);
|
|
47
|
+
const template = _$createComponent(AccessExpression, {
|
|
48
|
+
get children() {
|
|
49
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
50
|
+
id: "Foo"
|
|
51
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
52
|
+
symbol: symbol
|
|
53
|
+
})];
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
expect(template).toRenderTo(`Foo.Symbol`);
|
|
57
|
+
});
|
|
58
|
+
it("makes an id part from a symbol reactively", () => {
|
|
59
|
+
const symbol = new CSharpSymbol("Symbol", undefined);
|
|
60
|
+
const tree = renderTree(_$createComponent(AccessExpression, {
|
|
61
|
+
get children() {
|
|
62
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
63
|
+
id: "Foo"
|
|
64
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
65
|
+
symbol: symbol
|
|
66
|
+
})];
|
|
67
|
+
}
|
|
68
|
+
}));
|
|
69
|
+
expect(printTree(tree)).toEqual("Foo.Symbol");
|
|
70
|
+
symbol.name = "Bar";
|
|
71
|
+
expect(printTree(tree)).toEqual("Foo.Bar");
|
|
72
|
+
});
|
|
73
|
+
it("makes an id part from refkey, where the first part is a full reference, and subsequent parts are just the id", () => {
|
|
74
|
+
const methodKey = namekey("method");
|
|
75
|
+
const template = _$createComponent(TestNamespace, {
|
|
76
|
+
get children() {
|
|
77
|
+
return _$createComponent(List, {
|
|
78
|
+
get children() {
|
|
79
|
+
return [_$createComponent(ClassDeclaration, {
|
|
80
|
+
name: "MyClass",
|
|
81
|
+
get children() {
|
|
82
|
+
return _$createComponent(Method, {
|
|
83
|
+
name: methodKey
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}), _$createComponent(AccessExpression, {
|
|
87
|
+
get children() {
|
|
88
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
89
|
+
refkey: methodKey
|
|
90
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
91
|
+
refkey: methodKey
|
|
92
|
+
})];
|
|
93
|
+
}
|
|
94
|
+
})];
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
expect(template).toRenderTo(`
|
|
100
|
+
class MyClass
|
|
101
|
+
{
|
|
102
|
+
void Method() {}
|
|
103
|
+
}
|
|
104
|
+
MyClass.Method.Method
|
|
105
|
+
`);
|
|
106
|
+
});
|
|
107
|
+
it("takes type args", () => {
|
|
108
|
+
const template = _$createComponent(AccessExpression, {
|
|
109
|
+
get children() {
|
|
110
|
+
return _$createComponent(AccessExpression.Part, {
|
|
111
|
+
id: "Foo",
|
|
112
|
+
typeArgs: ["Foo", "Bar"]
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
expect(template).toRenderTo(`Foo<Foo, Bar>`);
|
|
117
|
+
});
|
|
118
|
+
it("takes multiple indexer arguments", () => {
|
|
119
|
+
const template = _$createComponent(AccessExpression, {
|
|
120
|
+
get children() {
|
|
121
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
122
|
+
id: "Foo"
|
|
123
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
124
|
+
indexerArgs: ["arg1", "arg2"]
|
|
125
|
+
})];
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
expect(template).toRenderTo(`Foo[arg1, arg2]`);
|
|
129
|
+
});
|
|
130
|
+
it("allows nullable member access", () => {
|
|
131
|
+
const template = _$createComponent(AccessExpression, {
|
|
132
|
+
get children() {
|
|
133
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
134
|
+
id: "Foo",
|
|
135
|
+
nullable: true
|
|
136
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
137
|
+
id: "Bar"
|
|
138
|
+
})];
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
expect(template).toRenderTo(`Foo?.Bar`);
|
|
142
|
+
});
|
|
143
|
+
it("allows conditional member access", () => {
|
|
144
|
+
const template = _$createComponent(AccessExpression, {
|
|
145
|
+
get children() {
|
|
146
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
147
|
+
id: "Foo"
|
|
148
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
149
|
+
id: "Bar",
|
|
150
|
+
conditional: true
|
|
151
|
+
})];
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
expect(template).toRenderTo(`Foo?.Bar`);
|
|
155
|
+
});
|
|
156
|
+
it("allows nullable element access", () => {
|
|
157
|
+
const template = _$createComponent(AccessExpression, {
|
|
158
|
+
get children() {
|
|
159
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
160
|
+
id: "Foo",
|
|
161
|
+
nullable: true
|
|
162
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
163
|
+
index: 1
|
|
164
|
+
})];
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
expect(template).toRenderTo(`Foo?[1]`);
|
|
168
|
+
});
|
|
169
|
+
it("allows conditional element access", () => {
|
|
170
|
+
const template = _$createComponent(AccessExpression, {
|
|
171
|
+
get children() {
|
|
172
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
173
|
+
id: "Foo"
|
|
174
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
175
|
+
index: 1,
|
|
176
|
+
conditional: true
|
|
177
|
+
})];
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
expect(template).toRenderTo(`Foo?[1]`);
|
|
181
|
+
});
|
|
182
|
+
it("uses symbol information for nullability", () => {
|
|
183
|
+
const symbol = new CSharpSymbol("Symbol", undefined, {
|
|
184
|
+
isNullable: true
|
|
185
|
+
});
|
|
186
|
+
const typeSymbol = new CSharpSymbol("SomeType", undefined, {
|
|
187
|
+
isNullable: true
|
|
188
|
+
});
|
|
189
|
+
const typedSymbol = new CSharpSymbol("SomeValue", undefined, {
|
|
190
|
+
type: typeSymbol
|
|
191
|
+
});
|
|
192
|
+
const template = _$createComponent(AccessExpression, {
|
|
193
|
+
get children() {
|
|
194
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
195
|
+
symbol: symbol
|
|
196
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
197
|
+
symbol: typedSymbol
|
|
198
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
199
|
+
id: "Foo"
|
|
200
|
+
})];
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
expect(template).toRenderTo(`Symbol?.SomeValue?.Foo`);
|
|
204
|
+
});
|
|
205
|
+
describe("formatting", () => {
|
|
206
|
+
it("breaks long identifier chains", () => {
|
|
207
|
+
const template = _$createComponent(AccessExpression, {
|
|
208
|
+
get children() {
|
|
209
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
210
|
+
id: "Foo"
|
|
211
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
212
|
+
id: "Foo"
|
|
213
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
214
|
+
id: "Foo"
|
|
215
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
216
|
+
id: "Foo"
|
|
217
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
218
|
+
id: "Foo"
|
|
219
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
220
|
+
id: "Foo"
|
|
221
|
+
})];
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
expect(template).toRenderTo(`
|
|
225
|
+
Foo.Foo
|
|
226
|
+
.Foo.Foo
|
|
227
|
+
.Foo.Foo
|
|
228
|
+
`, {
|
|
229
|
+
printWidth: 10
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
it("breaks long call expressions", () => {
|
|
233
|
+
const template = _$createComponent(AccessExpression, {
|
|
234
|
+
get children() {
|
|
235
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
236
|
+
id: "Foo"
|
|
237
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
238
|
+
id: "Bar"
|
|
239
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
240
|
+
args: ["variable1", "variable2", "variable3"]
|
|
241
|
+
})];
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
expect(template).toRenderTo(`
|
|
245
|
+
Foo.Bar(
|
|
246
|
+
variable1,
|
|
247
|
+
variable2,
|
|
248
|
+
variable3
|
|
249
|
+
)
|
|
250
|
+
`, {
|
|
251
|
+
printWidth: 10
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
it("breaks long type args", () => {
|
|
255
|
+
const template = _$createComponent(AccessExpression, {
|
|
256
|
+
get children() {
|
|
257
|
+
return _$createComponent(AccessExpression.Part, {
|
|
258
|
+
id: "Foo",
|
|
259
|
+
typeArgs: ["Foo", "Bar", "Baz", "Qux"]
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
expect(template).toRenderTo(`
|
|
264
|
+
Foo<
|
|
265
|
+
Foo,
|
|
266
|
+
Bar,
|
|
267
|
+
Baz,
|
|
268
|
+
Qux
|
|
269
|
+
>
|
|
270
|
+
`, {
|
|
271
|
+
printWidth: 10
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
it("breaks long type args for second member", () => {
|
|
275
|
+
const template = _$createComponent(AccessExpression, {
|
|
276
|
+
get children() {
|
|
277
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
278
|
+
id: "Foo"
|
|
279
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
280
|
+
id: "Bar",
|
|
281
|
+
typeArgs: ["Foo", "Bar", "Baz", "Qux"]
|
|
282
|
+
})];
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
expect(template).toRenderTo(`
|
|
286
|
+
Foo
|
|
287
|
+
.Bar<
|
|
288
|
+
Foo,
|
|
289
|
+
Bar,
|
|
290
|
+
Baz,
|
|
291
|
+
Qux
|
|
292
|
+
>
|
|
293
|
+
`, {
|
|
294
|
+
printWidth: 10
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
it("formats builder pattern", () => {
|
|
298
|
+
const template = _$createComponent(AccessExpression, {
|
|
299
|
+
get children() {
|
|
300
|
+
return [_$createComponent(AccessExpression.Part, {
|
|
301
|
+
id: "Foo"
|
|
302
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
303
|
+
id: "Bar"
|
|
304
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
305
|
+
id: "Baz"
|
|
306
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
307
|
+
args: true
|
|
308
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
309
|
+
id: "Qux"
|
|
310
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
311
|
+
id: "Quux",
|
|
312
|
+
typeArgs: ["TTypeOne", "TTypeTwo"]
|
|
313
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
314
|
+
indexerArgs: ["arg1", "arg2"]
|
|
315
|
+
}), _$createComponent(AccessExpression.Part, {
|
|
316
|
+
args: true
|
|
317
|
+
})];
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
expect(template).toRenderTo(`
|
|
321
|
+
Foo.Bar
|
|
322
|
+
.Baz()
|
|
323
|
+
.Qux
|
|
324
|
+
.Quux<
|
|
325
|
+
TTypeOne,
|
|
326
|
+
TTypeTwo
|
|
327
|
+
>[
|
|
328
|
+
arg1,
|
|
329
|
+
arg2
|
|
330
|
+
]()
|
|
331
|
+
`, {
|
|
332
|
+
printWidth: 10
|
|
333
|
+
});
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
//# sourceMappingURL=access-expression.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ClassDeclaration","Method","TestNamespace","List","namekey","printTree","renderTree","describe","expect","it","CSharpSymbol","AccessExpression","template","_$createComponent","children","Part","id","toRenderTo","index","args","symbol","undefined","tree","toEqual","name","methodKey","refkey","typeArgs","indexerArgs","nullable","conditional","isNullable","typeSymbol","typedSymbol","type","printWidth"],"sources":["../../../../src/components/access-expression/access-expression.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Children } from "@alloy-js/core";
|
|
2
|
+
export interface PartDescriptorWithId extends PartDescriptorBase {
|
|
3
|
+
/**
|
|
4
|
+
* The identifier of the access expression part. Will use member access, so must be a valid
|
|
5
|
+
* C# identifier.
|
|
6
|
+
*/
|
|
7
|
+
id: Children;
|
|
8
|
+
conditional: boolean;
|
|
9
|
+
typeArgs?: Children[];
|
|
10
|
+
}
|
|
11
|
+
export declare function isIdPart(part: PartDescriptor): part is PartDescriptorWithId;
|
|
12
|
+
export interface PartDescriptorWithIndex extends PartDescriptorBase {
|
|
13
|
+
/**
|
|
14
|
+
* The index of the access expression part. Will use element access.
|
|
15
|
+
*/
|
|
16
|
+
indexerArgs: Children[];
|
|
17
|
+
conditional: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function isIndexPart(part: PartDescriptor): part is PartDescriptorWithIndex;
|
|
20
|
+
export interface PartDescriptorWithArgs extends PartDescriptorBase {
|
|
21
|
+
args: Children[];
|
|
22
|
+
}
|
|
23
|
+
export declare function isArgsPart(part: PartDescriptor): part is PartDescriptorWithArgs;
|
|
24
|
+
export interface PartDescriptorBase {
|
|
25
|
+
nullable: boolean;
|
|
26
|
+
}
|
|
27
|
+
export type PartDescriptor = PartDescriptorWithId | PartDescriptorWithIndex | PartDescriptorWithArgs;
|
|
28
|
+
/**
|
|
29
|
+
* Build part descriptors from the children of a MemberExpression.
|
|
30
|
+
*/
|
|
31
|
+
export declare function childrenToPartDescriptors(children: Children[]): PartDescriptor[];
|
|
32
|
+
//# sourceMappingURL=part-descriptors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"part-descriptors.d.ts","sourceRoot":"","sources":["../../../../src/components/access-expression/part-descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAOT,MAAM,gBAAgB,CAAC;AAOxB,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D;;;OAGG;IACH,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,IAAI,oBAAoB,CAE3E;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE;;OAEG;IACH,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,GACnB,IAAI,IAAI,uBAAuB,CAEjC;AAED,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,GACnB,IAAI,IAAI,sBAAsB,CAEhC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,sBAAsB,CAAC;AAE3B;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,EAAE,GACnB,cAAc,EAAE,CAclB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { computed, isComponentCreator, reactive, ref, symbolForRefkey } from "@alloy-js/core";
|
|
2
|
+
import { AccessExpression } from "./access-expression.js";
|
|
3
|
+
export function isIdPart(part) {
|
|
4
|
+
return "id" in part && part.id !== undefined;
|
|
5
|
+
}
|
|
6
|
+
export function isIndexPart(part) {
|
|
7
|
+
return "indexerArgs" in part && part.indexerArgs !== undefined;
|
|
8
|
+
}
|
|
9
|
+
export function isArgsPart(part) {
|
|
10
|
+
return "args" in part && part.args !== undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Build part descriptors from the children of a MemberExpression.
|
|
14
|
+
*/
|
|
15
|
+
export function childrenToPartDescriptors(children) {
|
|
16
|
+
const parts = [];
|
|
17
|
+
for (const child of children) {
|
|
18
|
+
if (!isComponentCreator(child, AccessExpression.Part)) {
|
|
19
|
+
// we ignore non-parts
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
parts.push(createPartDescriptorFromProps(child.props, child === children[0]));
|
|
23
|
+
}
|
|
24
|
+
return parts;
|
|
25
|
+
}
|
|
26
|
+
const exclusiveParts = ["children", "args", "refkey", "symbol", "id"];
|
|
27
|
+
/**
|
|
28
|
+
* Creates a reactive part descriptor from the given part props.
|
|
29
|
+
*
|
|
30
|
+
* @param partProps The props for the part.
|
|
31
|
+
* @param first Whether this is the first part in the expression. Refkeys are
|
|
32
|
+
* handled specially for the first part.
|
|
33
|
+
*/
|
|
34
|
+
function createPartDescriptorFromProps(partProps, first) {
|
|
35
|
+
const foundProps = exclusiveParts.filter(key => {
|
|
36
|
+
return key in partProps;
|
|
37
|
+
});
|
|
38
|
+
if (foundProps.length > 1) {
|
|
39
|
+
throw new Error(`Only one of ${foundProps.join(", ")} can be used for a MemberExpression part at a time`);
|
|
40
|
+
}
|
|
41
|
+
const symbolSource = computed(() => {
|
|
42
|
+
if (partProps.refkey) {
|
|
43
|
+
return symbolForRefkey(partProps.refkey).value;
|
|
44
|
+
} else if (partProps.symbol) {
|
|
45
|
+
return partProps.symbol;
|
|
46
|
+
} else {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
const part = {
|
|
51
|
+
id: computed(() => {
|
|
52
|
+
if (partProps.args || partProps.index || partProps.indexerArgs) {
|
|
53
|
+
return undefined;
|
|
54
|
+
} else if (partProps.children !== undefined) {
|
|
55
|
+
return partProps.children;
|
|
56
|
+
} else if (first && partProps.refkey) {
|
|
57
|
+
return partProps.refkey;
|
|
58
|
+
} else if (partProps.id !== undefined) {
|
|
59
|
+
return partProps.id;
|
|
60
|
+
} else if (symbolSource.value) {
|
|
61
|
+
return escapeId(symbolSource.value.name);
|
|
62
|
+
} else {
|
|
63
|
+
return "<unresolved symbol>";
|
|
64
|
+
}
|
|
65
|
+
}),
|
|
66
|
+
indexerArgs: computed(() => {
|
|
67
|
+
if (partProps.indexerArgs) {
|
|
68
|
+
return partProps.indexerArgs;
|
|
69
|
+
}
|
|
70
|
+
if (partProps.index !== undefined) {
|
|
71
|
+
return [partProps.index];
|
|
72
|
+
}
|
|
73
|
+
return [];
|
|
74
|
+
}),
|
|
75
|
+
conditional: computed(() => {
|
|
76
|
+
return !!partProps.conditional;
|
|
77
|
+
}),
|
|
78
|
+
nullable: computed(() => {
|
|
79
|
+
if (partProps.nullable) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
if (symbolSource.value) {
|
|
83
|
+
return symbolSource.value.isNullable;
|
|
84
|
+
}
|
|
85
|
+
return false;
|
|
86
|
+
}),
|
|
87
|
+
args: ref(partProps.args === true ? [] : partProps.args),
|
|
88
|
+
typeArgs: ref(partProps.typeArgs)
|
|
89
|
+
};
|
|
90
|
+
return reactive(part);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* replaces quotes with escaped quotes
|
|
95
|
+
*/
|
|
96
|
+
function escapeId(id) {
|
|
97
|
+
return id.replace(/"/g, '\\"');
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=part-descriptors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["computed","isComponentCreator","reactive","ref","symbolForRefkey","AccessExpression","isIdPart","part","id","undefined","isIndexPart","indexerArgs","isArgsPart","args","childrenToPartDescriptors","children","parts","child","Part","push","createPartDescriptorFromProps","props","exclusiveParts","partProps","first","foundProps","filter","key","length","Error","join","symbolSource","refkey","value","symbol","index","escapeId","name","conditional","nullable","isNullable","typeArgs","replace"],"sources":["../../../../src/components/access-expression/part-descriptors.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["findKeyedChildren","For","Indent","taggedComponent","AttributeList","props","attributes","children","Attribute","tag","_$createComponent","each","line","arg","renderAttribute","_$memo","endline","length","_$createIntrinsic","attr","name","AttributeTag","Symbol","args","softline","comma"],"sources":["../../../../src/components/attributes/attributes.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAEEA,iBAAiB,EACjBC,GAAG,EACHC,MAAM,EACNC,eAAe,QACV,gBAAgB;AAgBvB;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAE;EACvD,MAAMC,UAAU,GACdD,KAAK,CAACC,UAAU,KACfD,KAAK,CAACE,QAAQ,IAAIP,iBAAiB,CAACK,KAAK,CAACE,QAAQ,EAAEC,SAAS,CAACC,GAAG,CAAC,CAAC;EAEtE,IAAI,CAACH,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,QAAAI,iBAAA,CAEKT,GAAG;IAACU,IAAI,EAAEL,UAAU;IAAEM,IAAI;IAAAL,QAAA,EACvBM,GAAG,IAAKC,eAAe,CAACD,GAAG;EAAC,IAAAE,MAAA,OAE/BA,MAAA,UAAAV,KAAK,CAACW,OAAO,IAAIV,UAAU,CAACW,MAAM,GAAG,CAAC,QAAAC,iBAAA,WAAW;AAGxD;AAEA,SAASJ,eAAeA,CAACK,IAAwC,EAAY;EAC3E,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAAT,iBAAA,CAAQF,SAAS;MAACY,IAAI,EAAED;IAAI;EAC9B,CAAC,MAAM,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAIA,IAAI,IAAI,MAAM,IAAIA,IAAI,EAAE;IAC7D,OAAAT,iBAAA,CAAQF,SAAS,EAAKW,IAAI;EAC5B,CAAC,MAAM;IACL,OAAOA,IAAI;EACb;AACF;AAUA,MAAME,YAAY,GAAGC,MAAM,CAAC,cAAc,CAAC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMd,SAAS,GAAGL,eAAe,CACtCkB,YAAY,EACXhB,KAAqB,IAAK;EACzB,OAAAa,iBAAA;IAAA,IAAAX,SAAA;MAAA,aAAAQ,MAAA,OAEMV,KAAK,CAACe,IAAI,GAAAL,MAAA,OACXA,MAAA,UAAAV,KAAK,CAACkB,IAAI,IAAIlB,KAAK,CAACkB,IAAI,CAACN,MAAM,GAAG,CAAC,cAAAP,iBAAA,CAG/BR,MAAM;QAACsB,QAAQ;QAAA,IAAAjB,SAAA;UAAA,OAAAG,iBAAA,CACbT,GAAG;YAAA,IAACU,IAAIA,CAAA;cAAA,OAAEN,KAAK,CAACkB,IAAI,IAAI,EAAE;YAAA;YAAEE,KAAK;YAACb,IAAI;YAAAL,QAAA,EACnCM,GAAG,IAAKA;UAAG;QAAA;MAAA,QAKpB;IAAA;EAAA;AAIP,CACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["expect","it","Attribute","AttributeList","_$createComponent","name","toRenderTo","args","attributes","children"],"sources":["../../../../src/components/attributes/attributes.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,SAAS,EAAEC,aAAa;AAEjCF,EAAE,CAAC,kBAAkB,EAAE,MAAM;EAC3BD,MAAM,CAAAI,iBAAA,CAAEF,SAAS;IAACG,IAAI;EAAA,EAAU,CAAC,CAACC,UAAU,CAAC;AAC/C;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFL,EAAE,CAAC,kCAAkC,EAAE,MAAM;EAC3CD,MAAM,CAAAI,iBAAA,CAAEF,SAAS;IAACG,IAAI;IAAQE,IAAI,EAAE,CAAC,OAAO;EAAC,EAAI,CAAC,CAACD,UAAU,CAAC;AAChE;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFL,EAAE,CAAC,oCAAoC,EAAE,MAAM;EAC7CD,MAAM,CAAAI,iBAAA,CAAEF,SAAS;IAACG,IAAI;IAAQE,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO;EAAC,EAAI,CAAC,CAACD,UAAU,CAAC;AACzE;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFL,EAAE,CAAC,iDAAiD,EAAE,MAAM;EAC1DD,MAAM,CAAAI,iBAAA,CACHD,aAAa;IAAA,IACZK,UAAUA,CAAA;MAAA,OAAE,CAAAJ,iBAAA,CAAEF,SAAS;QAACG,IAAI;MAAA,IAAAD,iBAAA,CAAcF,SAAS;QAACG,IAAI;MAAA,GAAY;IAAA;EAAA,EAExE,CAAC,CAACC,UAAU,CAAC;AACf;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFL,EAAE,CAAC,4CAA4C,EAAE,MAAM;EACrDD,MAAM,CAAAI,iBAAA,CAAED,aAAa;IAACK,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO;EAAC,EAAI,CAAC,CAACF,UAAU,CAAC;AACvE;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFL,EAAE,CAAC,4CAA4C,EAAE,MAAM;EACrDD,MAAM,CAAAI,iBAAA,CACHD,aAAa;IACZK,UAAU,EAAE,CAAC;MAAEH,IAAI,EAAE;IAAQ,CAAC,EAAE;MAAEA,IAAI,EAAE,OAAO;MAAEE,IAAI,EAAE,CAAC,QAAQ;IAAE,CAAC;EAAC,EAExE,CAAC,CAACD,UAAU,CAAC;AACf;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFL,EAAE,CAAC,qCAAqC,EAAE,MAAM;EAC9CD,MAAM,CAAAI,iBAAA,CACHD,aAAa;IAAA,IAAAM,SAAA;MAAA,QAAAL,iBAAA,CACXF,SAAS;QAACG,IAAI;MAAA,IAAAD,iBAAA,CACdF,SAAS;QAACG,IAAI;MAAA;IAAA;EAAA,EAEnB,CAAC,CAACC,UAAU,CAAC;AACf;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Children, DeclarationProps, Refkey } from "@alloy-js/core";
|
|
1
|
+
import { Children, DeclarationProps, Namekey, Refkey } from "@alloy-js/core";
|
|
2
2
|
import { AccessModifiers } from "../../modifiers.js";
|
|
3
3
|
import { AttributesProp } from "../attributes/attributes.jsx";
|
|
4
4
|
import { ParameterProps } from "../parameters/parameters.jsx";
|
|
@@ -10,7 +10,7 @@ export interface ClassModifiers {
|
|
|
10
10
|
readonly static?: boolean;
|
|
11
11
|
}
|
|
12
12
|
export interface ClassDeclarationProps extends Omit<DeclarationProps, "nameKind">, AccessModifiers, ClassModifiers {
|
|
13
|
-
name: string;
|
|
13
|
+
name: string | Namekey;
|
|
14
14
|
/** Doc comment */
|
|
15
15
|
doc?: Children;
|
|
16
16
|
refkey?: Refkey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/class/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAER,gBAAgB,EAGhB,MAAM,EAEP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"declaration.d.ts","sourceRoot":"","sources":["../../../../src/components/class/declaration.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAER,gBAAgB,EAGhB,OAAO,EACP,MAAM,EAEP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAIhB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAiB,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAc,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAUD,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EACxC,eAAe,EACf,cAAc;IAChB,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,kBAAkB;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAEjD,yCAAyC;IACzC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB,uCAAuC;IACvC,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAE5B;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,YAsC5D"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { Block, Declaration, join, Name, Scope } from "@alloy-js/core";
|
|
3
3
|
import { computeModifiersPrefix, getAccessModifier, makeModifiers } from "../../modifiers.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { CSharpMemberScope } from "../../symbols/scopes.js";
|
|
4
|
+
import { createClassScope } from "../../scopes/factories.js";
|
|
5
|
+
import { createNamedTypeSymbol } from "../../symbols/factories.js";
|
|
7
6
|
import { AttributeList } from "../attributes/attributes.js";
|
|
8
7
|
import { DocWhen } from "../doc/comment.js";
|
|
9
8
|
import { Parameters } from "../parameters/parameters.js";
|
|
10
9
|
import { TypeParameterConstraints } from "../type-parameters/type-parameter-constraints.js";
|
|
11
10
|
import { TypeParameters } from "../type-parameters/type-parameters.js";
|
|
12
|
-
const getClassModifiers = makeModifiers(["abstract", "
|
|
11
|
+
const getClassModifiers = makeModifiers(["abstract", "sealed", "static", "partial"]);
|
|
13
12
|
|
|
14
13
|
// properties for creating a class
|
|
15
14
|
|
|
@@ -38,18 +37,10 @@ const getClassModifiers = makeModifiers(["abstract", "partial", "sealed", "stati
|
|
|
38
37
|
* ```
|
|
39
38
|
*/
|
|
40
39
|
export function ClassDeclaration(props) {
|
|
41
|
-
const
|
|
42
|
-
const thisClassSymbol = new CSharpOutputSymbol(name, {
|
|
40
|
+
const thisClassSymbol = createNamedTypeSymbol(props.name, "class", {
|
|
43
41
|
refkeys: props.refkey
|
|
44
42
|
});
|
|
45
|
-
|
|
46
|
-
// this creates a new scope for the class definition.
|
|
47
|
-
// members will automatically "inherit" this scope so
|
|
48
|
-
// that refkeys to them will produce the fully-qualified
|
|
49
|
-
// name e.g. Foo.Bar.
|
|
50
|
-
const thisClassScope = new CSharpMemberScope("class-decl", {
|
|
51
|
-
owner: thisClassSymbol
|
|
52
|
-
});
|
|
43
|
+
const thisClassScope = createClassScope(thisClassSymbol);
|
|
53
44
|
const bases = [...(props.baseType ? [props.baseType] : []), ...(props.interfaceTypes || [])];
|
|
54
45
|
const base = bases.length > 0 ? [" : ", _$memo(() => join(bases, {
|
|
55
46
|
joiner: ", "
|
|
@@ -67,34 +58,30 @@ export function ClassDeclaration(props) {
|
|
|
67
58
|
return props.attributes;
|
|
68
59
|
},
|
|
69
60
|
endline: true
|
|
70
|
-
}), modifiers, "class ", _$createComponent(Name, {}), _$
|
|
71
|
-
get parameters() {
|
|
72
|
-
return props.typeParameters;
|
|
73
|
-
}
|
|
74
|
-
})), _$memo(() => _$memo(() => !!props.primaryConstructor)() && _$createComponent(Scope, {
|
|
61
|
+
}), modifiers, "class ", _$createComponent(Name, {}), _$createComponent(Scope, {
|
|
75
62
|
value: thisClassScope,
|
|
76
63
|
get children() {
|
|
77
|
-
return _$createComponent(
|
|
64
|
+
return [_$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameters, {
|
|
65
|
+
get parameters() {
|
|
66
|
+
return props.typeParameters;
|
|
67
|
+
}
|
|
68
|
+
})), _$memo(() => _$memo(() => !!props.primaryConstructor)() && _$createComponent(Parameters, {
|
|
78
69
|
get parameters() {
|
|
79
70
|
return props.primaryConstructor;
|
|
80
71
|
}
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
})), _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(Block, {
|
|
88
|
-
newline: true,
|
|
89
|
-
get children() {
|
|
90
|
-
return _$createComponent(Scope, {
|
|
91
|
-
value: thisClassScope,
|
|
72
|
+
})), base, _$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameterConstraints, {
|
|
73
|
+
get parameters() {
|
|
74
|
+
return props.typeParameters;
|
|
75
|
+
}
|
|
76
|
+
})), _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(Block, {
|
|
77
|
+
newline: true,
|
|
92
78
|
get children() {
|
|
93
79
|
return props.children;
|
|
94
80
|
}
|
|
95
|
-
});
|
|
81
|
+
}))];
|
|
96
82
|
}
|
|
97
|
-
})
|
|
83
|
+
})];
|
|
98
84
|
}
|
|
99
85
|
});
|
|
100
|
-
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=declaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Block","Declaration","join","Name","Scope","computeModifiersPrefix","getAccessModifier","makeModifiers","createClassScope","createNamedTypeSymbol","AttributeList","DocWhen","Parameters","TypeParameterConstraints","TypeParameters","getClassModifiers","ClassDeclaration","props","thisClassSymbol","name","refkeys","refkey","thisClassScope","bases","baseType","interfaceTypes","base","length","_$memo","joiner","modifiers","_$createComponent","symbol","children","doc","attributes","endline","value","typeParameters","parameters","primaryConstructor","newline"],"sources":["../../../../src/components/class/declaration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|