@typespec/http-server-csharp 0.58.0-alpha.28-dev.4 → 0.58.0-alpha.29-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/cli/cli.js +118 -154
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/components/controller-action/controller-action.d.ts +16 -0
- package/dist/src/components/controller-action/controller-action.d.ts.map +1 -0
- package/dist/src/components/controller-action/controller-action.js +251 -0
- package/dist/src/components/controller-action/controller-action.js.map +1 -0
- package/dist/src/components/controller-action/controller-action.test.d.ts +2 -0
- package/dist/src/components/controller-action/controller-action.test.d.ts.map +1 -0
- package/dist/src/components/controller-action/controller-action.test.js +106 -0
- package/dist/src/components/controller-action/controller-action.test.js.map +1 -0
- package/dist/src/components/controller-action/parameter-binding.d.ts +17 -0
- package/dist/src/components/controller-action/parameter-binding.d.ts.map +1 -0
- package/dist/src/components/controller-action/parameter-binding.js +77 -0
- package/dist/src/components/controller-action/parameter-binding.js.map +1 -0
- package/dist/src/components/controller-action/response-analysis.d.ts +10 -0
- package/dist/src/components/controller-action/response-analysis.d.ts.map +1 -0
- package/dist/src/components/controller-action/response-analysis.js +61 -0
- package/dist/src/components/controller-action/response-analysis.js.map +1 -0
- package/dist/src/components/controllers/controllers.d.ts +18 -0
- package/dist/src/components/controllers/controllers.d.ts.map +1 -0
- package/dist/src/components/controllers/controllers.js +64 -0
- package/dist/src/components/controllers/controllers.js.map +1 -0
- package/dist/src/components/controllers/controllers.test.d.ts +2 -0
- package/dist/src/components/controllers/controllers.test.d.ts.map +1 -0
- package/dist/src/components/controllers/controllers.test.js +84 -0
- package/dist/src/components/controllers/controllers.test.js.map +1 -0
- package/dist/src/components/csharp-file.d.ts +15 -0
- package/dist/src/components/csharp-file.d.ts.map +1 -0
- package/dist/src/components/csharp-file.js +28 -0
- package/dist/src/components/csharp-file.js.map +1 -0
- package/dist/src/components/enums/enums.d.ts +28 -0
- package/dist/src/components/enums/enums.d.ts.map +1 -0
- package/dist/src/components/enums/enums.js +158 -0
- package/dist/src/components/enums/enums.js.map +1 -0
- package/dist/src/components/enums/enums.test.d.ts +2 -0
- package/dist/src/components/enums/enums.test.d.ts.map +1 -0
- package/dist/src/components/enums/enums.test.js +112 -0
- package/dist/src/components/enums/enums.test.js.map +1 -0
- package/dist/src/components/interfaces/interfaces.d.ts +17 -0
- package/dist/src/components/interfaces/interfaces.d.ts.map +1 -0
- package/dist/src/components/interfaces/interfaces.js +153 -0
- package/dist/src/components/interfaces/interfaces.js.map +1 -0
- package/dist/src/components/interfaces/interfaces.test.d.ts +2 -0
- package/dist/src/components/interfaces/interfaces.test.d.ts.map +1 -0
- package/dist/src/components/interfaces/interfaces.test.js +76 -0
- package/dist/src/components/interfaces/interfaces.test.js.map +1 -0
- package/dist/src/components/models/anonymous-models.d.ts +9 -0
- package/dist/src/components/models/anonymous-models.d.ts.map +1 -0
- package/dist/src/components/models/anonymous-models.js +37 -0
- package/dist/src/components/models/anonymous-models.js.map +1 -0
- package/dist/src/components/models/error-models.d.ts +5 -0
- package/dist/src/components/models/error-models.d.ts.map +1 -0
- package/dist/src/components/models/error-models.js +84 -0
- package/dist/src/components/models/error-models.js.map +1 -0
- package/dist/src/components/models/model-helpers.d.ts +40 -0
- package/dist/src/components/models/model-helpers.d.ts.map +1 -0
- package/dist/src/components/models/model-helpers.js +239 -0
- package/dist/src/components/models/model-helpers.js.map +1 -0
- package/dist/src/components/models/models.d.ts +15 -0
- package/dist/src/components/models/models.d.ts.map +1 -0
- package/dist/src/components/models/models.js +234 -0
- package/dist/src/components/models/models.js.map +1 -0
- package/dist/src/components/models/models.test.d.ts +2 -0
- package/dist/src/components/models/models.test.d.ts.map +1 -0
- package/dist/src/components/models/models.test.js +151 -0
- package/dist/src/components/models/models.test.js.map +1 -0
- package/dist/src/components/project/csproj.d.ts +12 -0
- package/dist/src/components/project/csproj.d.ts.map +1 -0
- package/dist/src/components/project/csproj.js +35 -0
- package/dist/src/components/project/csproj.js.map +1 -0
- package/dist/src/components/project/csproj.test.d.ts +2 -0
- package/dist/src/components/project/csproj.test.d.ts.map +1 -0
- package/dist/src/components/project/csproj.test.js +42 -0
- package/dist/src/components/project/csproj.test.js.map +1 -0
- package/dist/src/components/project/launch-settings.d.ts +16 -0
- package/dist/src/components/project/launch-settings.d.ts.map +1 -0
- package/dist/src/components/project/launch-settings.js +73 -0
- package/dist/src/components/project/launch-settings.js.map +1 -0
- package/dist/src/components/project/launch-settings.test.d.ts +2 -0
- package/dist/src/components/project/launch-settings.test.d.ts.map +1 -0
- package/dist/src/components/project/launch-settings.test.js +48 -0
- package/dist/src/components/project/launch-settings.test.js.map +1 -0
- package/dist/src/components/project/program.d.ts +14 -0
- package/dist/src/components/project/program.d.ts.map +1 -0
- package/dist/src/components/project/program.js +75 -0
- package/dist/src/components/project/program.js.map +1 -0
- package/dist/src/components/project/program.test.d.ts +2 -0
- package/dist/src/components/project/program.test.d.ts.map +1 -0
- package/dist/src/components/project/program.test.js +50 -0
- package/dist/src/components/project/program.test.js.map +1 -0
- package/dist/src/components/render-root.d.ts +14 -0
- package/dist/src/components/render-root.d.ts.map +1 -0
- package/dist/src/components/render-root.js +122 -0
- package/dist/src/components/render-root.js.map +1 -0
- package/dist/src/components/request-models.d.ts +15 -0
- package/dist/src/components/request-models.d.ts.map +1 -0
- package/dist/src/components/request-models.js +97 -0
- package/dist/src/components/request-models.js.map +1 -0
- package/dist/src/components/scaffolding/documentation.d.ts +12 -0
- package/dist/src/components/scaffolding/documentation.d.ts.map +1 -0
- package/dist/src/{lib/doc.js → components/scaffolding/documentation.js} +56 -46
- package/dist/src/components/scaffolding/documentation.js.map +1 -0
- package/dist/src/components/scaffolding/mock-helpers.d.ts +10 -0
- package/dist/src/components/scaffolding/mock-helpers.d.ts.map +1 -0
- package/dist/src/components/scaffolding/mock-helpers.js +268 -0
- package/dist/src/components/scaffolding/mock-helpers.js.map +1 -0
- package/dist/src/components/scaffolding/mock-implementations.d.ts +14 -0
- package/dist/src/components/scaffolding/mock-implementations.d.ts.map +1 -0
- package/dist/src/components/scaffolding/mock-implementations.js +152 -0
- package/dist/src/components/scaffolding/mock-implementations.js.map +1 -0
- package/dist/src/components/scaffolding/mock-return-utils.d.ts +11 -0
- package/dist/src/components/scaffolding/mock-return-utils.d.ts.map +1 -0
- package/dist/src/components/scaffolding/mock-return-utils.js +62 -0
- package/dist/src/components/scaffolding/mock-return-utils.js.map +1 -0
- package/dist/src/components/scaffolding/mock-scaffolding.d.ts +6 -0
- package/dist/src/components/scaffolding/mock-scaffolding.d.ts.map +1 -0
- package/dist/src/components/scaffolding/mock-scaffolding.js +5 -0
- package/dist/src/components/scaffolding/mock-scaffolding.js.map +1 -0
- package/dist/src/components/scaffolding/mock-scaffolding.test.d.ts +2 -0
- package/dist/src/components/scaffolding/mock-scaffolding.test.d.ts.map +1 -0
- package/dist/src/components/scaffolding/mock-scaffolding.test.js +59 -0
- package/dist/src/components/scaffolding/mock-scaffolding.test.js.map +1 -0
- package/dist/src/components/serialization/base64-url-json-converter.d.ts +7 -0
- package/dist/src/components/serialization/base64-url-json-converter.d.ts.map +1 -0
- package/dist/src/components/serialization/base64-url-json-converter.js +58 -0
- package/dist/src/components/serialization/base64-url-json-converter.js.map +1 -0
- package/dist/src/components/serialization/constraint-attributes.d.ts +7 -0
- package/dist/src/components/serialization/constraint-attributes.d.ts.map +1 -0
- package/dist/src/components/serialization/constraint-attributes.js +556 -0
- package/dist/src/components/serialization/constraint-attributes.js.map +1 -0
- package/dist/src/components/serialization/http-service-exception-filter.d.ts +8 -0
- package/dist/src/components/serialization/http-service-exception-filter.d.ts.map +1 -0
- package/dist/src/components/serialization/http-service-exception-filter.js +71 -0
- package/dist/src/components/serialization/http-service-exception-filter.js.map +1 -0
- package/dist/src/components/serialization/json-converters.d.ts +7 -0
- package/dist/src/components/serialization/json-converters.d.ts.map +1 -0
- package/dist/src/components/serialization/json-converters.js +22 -0
- package/dist/src/components/serialization/json-converters.js.map +1 -0
- package/dist/src/components/serialization/json-converters.test.d.ts +2 -0
- package/dist/src/components/serialization/json-converters.test.d.ts.map +1 -0
- package/dist/src/components/serialization/json-converters.test.js +136 -0
- package/dist/src/components/serialization/json-converters.test.js.map +1 -0
- package/dist/src/components/serialization/json-serialization-provider.d.ts +7 -0
- package/dist/src/components/serialization/json-serialization-provider.d.ts.map +1 -0
- package/dist/src/components/serialization/json-serialization-provider.js +90 -0
- package/dist/src/components/serialization/json-serialization-provider.js.map +1 -0
- package/dist/src/components/serialization/time-span-duration-converter.d.ts +7 -0
- package/dist/src/components/serialization/time-span-duration-converter.d.ts.map +1 -0
- package/dist/src/components/serialization/time-span-duration-converter.js +44 -0
- package/dist/src/components/serialization/time-span-duration-converter.js.map +1 -0
- package/dist/src/components/serialization/unix-epoch-date-time-converter.d.ts +7 -0
- package/dist/src/components/serialization/unix-epoch-date-time-converter.d.ts.map +1 -0
- package/dist/src/components/serialization/unix-epoch-date-time-converter.js +71 -0
- package/dist/src/components/serialization/unix-epoch-date-time-converter.js.map +1 -0
- package/dist/src/components/type-expression/type-expression.d.ts +24 -0
- package/dist/src/components/type-expression/type-expression.d.ts.map +1 -0
- package/dist/src/components/type-expression/type-expression.js +223 -0
- package/dist/src/components/type-expression/type-expression.js.map +1 -0
- package/dist/src/components/type-expression/type-expression.test.d.ts +2 -0
- package/dist/src/components/type-expression/type-expression.test.d.ts.map +1 -0
- package/dist/src/components/type-expression/type-expression.test.js +207 -0
- package/dist/src/components/type-expression/type-expression.test.js.map +1 -0
- package/dist/src/context/emitter-options-context.d.ts +13 -0
- package/dist/src/context/emitter-options-context.d.ts.map +1 -0
- package/dist/src/context/emitter-options-context.js +15 -0
- package/dist/src/context/emitter-options-context.js.map +1 -0
- package/dist/src/diagnostics.d.ts +8 -0
- package/dist/src/diagnostics.d.ts.map +1 -0
- package/dist/src/diagnostics.js +164 -0
- package/dist/src/diagnostics.js.map +1 -0
- package/dist/src/emitter.d.ts +8 -0
- package/dist/src/emitter.d.ts.map +1 -0
- package/dist/src/emitter.js +180 -0
- package/dist/src/emitter.js.map +1 -0
- package/dist/src/{lib/index.d.ts → index.d.ts} +1 -1
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/{lib/index.js → index.js} +1 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/{lib/lib.d.ts → lib.d.ts} +4 -14
- package/dist/src/lib.d.ts.map +1 -0
- package/dist/src/lib.js +133 -0
- package/dist/src/lib.js.map +1 -0
- package/dist/src/output-writer.d.ts +11 -0
- package/dist/src/output-writer.d.ts.map +1 -0
- package/dist/src/output-writer.js +72 -0
- package/dist/src/output-writer.js.map +1 -0
- package/dist/src/service-discovery.d.ts +13 -0
- package/dist/src/service-discovery.d.ts.map +1 -0
- package/dist/src/service-discovery.js +93 -0
- package/dist/src/service-discovery.js.map +1 -0
- package/dist/src/service-resolution.d.ts +34 -0
- package/dist/src/service-resolution.d.ts.map +1 -0
- package/dist/src/service-resolution.js +244 -0
- package/dist/src/service-resolution.js.map +1 -0
- package/dist/src/testing/index.d.ts +2 -0
- package/dist/src/testing/index.d.ts.map +1 -0
- package/dist/src/testing/index.js +2 -0
- package/dist/src/testing/index.js.map +1 -0
- package/dist/src/utils/attributes.d.ts +8 -0
- package/dist/src/utils/attributes.d.ts.map +1 -0
- package/dist/src/utils/attributes.js +224 -0
- package/dist/src/utils/attributes.js.map +1 -0
- package/dist/src/utils/csharp-libs.d.ts +87 -0
- package/dist/src/utils/csharp-libs.d.ts.map +1 -0
- package/dist/src/utils/csharp-libs.js +90 -0
- package/dist/src/utils/csharp-libs.js.map +1 -0
- package/dist/src/utils/doc-comments.d.ts +2 -0
- package/dist/src/utils/doc-comments.d.ts.map +1 -0
- package/dist/src/utils/doc-comments.js +4 -0
- package/dist/src/utils/doc-comments.js.map +1 -0
- package/dist/src/utils/http-helpers.d.ts +19 -0
- package/dist/src/utils/http-helpers.d.ts.map +1 -0
- package/dist/src/utils/http-helpers.js +70 -0
- package/dist/src/utils/http-helpers.js.map +1 -0
- package/dist/src/utils/http-helpers.test.d.ts +2 -0
- package/dist/src/utils/http-helpers.test.d.ts.map +1 -0
- package/dist/src/utils/http-helpers.test.js +68 -0
- package/dist/src/utils/http-helpers.test.js.map +1 -0
- package/dist/src/utils/namespace-utils.d.ts +13 -0
- package/dist/src/utils/namespace-utils.d.ts.map +1 -0
- package/dist/src/utils/namespace-utils.js +55 -0
- package/dist/src/utils/namespace-utils.js.map +1 -0
- package/dist/src/utils/naming.d.ts +31 -0
- package/dist/src/utils/naming.d.ts.map +1 -0
- package/dist/src/utils/naming.js +87 -0
- package/dist/src/utils/naming.js.map +1 -0
- package/dist/src/utils/naming.test.d.ts +2 -0
- package/dist/src/utils/naming.test.d.ts.map +1 -0
- package/dist/src/utils/naming.test.js +86 -0
- package/dist/src/utils/naming.test.js.map +1 -0
- package/dist/src/utils/port.d.ts +5 -0
- package/dist/src/utils/port.d.ts.map +1 -0
- package/dist/src/utils/port.js +33 -0
- package/dist/src/utils/port.js.map +1 -0
- package/dist/src/utils/return-type-helpers.d.ts +8 -0
- package/dist/src/utils/return-type-helpers.d.ts.map +1 -0
- package/dist/src/utils/return-type-helpers.js +59 -0
- package/dist/src/utils/return-type-helpers.js.map +1 -0
- package/package.json +34 -26
- package/dist/src/lib/attributes.d.ts +0 -43
- package/dist/src/lib/attributes.d.ts.map +0 -1
- package/dist/src/lib/attributes.js +0 -422
- package/dist/src/lib/attributes.js.map +0 -1
- package/dist/src/lib/boilerplate.d.ts +0 -6
- package/dist/src/lib/boilerplate.d.ts.map +0 -1
- package/dist/src/lib/boilerplate.js +0 -792
- package/dist/src/lib/boilerplate.js.map +0 -1
- package/dist/src/lib/doc.d.ts +0 -5
- package/dist/src/lib/doc.d.ts.map +0 -1
- package/dist/src/lib/doc.js.map +0 -1
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js.map +0 -1
- package/dist/src/lib/interfaces.d.ts +0 -183
- package/dist/src/lib/interfaces.d.ts.map +0 -1
- package/dist/src/lib/interfaces.js +0 -287
- package/dist/src/lib/interfaces.js.map +0 -1
- package/dist/src/lib/lib.d.ts.map +0 -1
- package/dist/src/lib/lib.js +0 -146
- package/dist/src/lib/lib.js.map +0 -1
- package/dist/src/lib/project.d.ts +0 -5
- package/dist/src/lib/project.d.ts.map +0 -1
- package/dist/src/lib/project.js +0 -101
- package/dist/src/lib/project.js.map +0 -1
- package/dist/src/lib/scaffolding.d.ts +0 -22
- package/dist/src/lib/scaffolding.d.ts.map +0 -1
- package/dist/src/lib/scaffolding.js +0 -461
- package/dist/src/lib/scaffolding.js.map +0 -1
- package/dist/src/lib/service.d.ts +0 -4
- package/dist/src/lib/service.d.ts.map +0 -1
- package/dist/src/lib/service.js +0 -1208
- package/dist/src/lib/service.js.map +0 -1
- package/dist/src/lib/type-helpers.d.ts +0 -44
- package/dist/src/lib/type-helpers.d.ts.map +0 -1
- package/dist/src/lib/type-helpers.js +0 -106
- package/dist/src/lib/type-helpers.js.map +0 -1
- package/dist/src/lib/utils.d.ts +0 -120
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -1580
- package/dist/src/lib/utils.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["code","For","cs","Attribute","isErrorModel","isVoidType","useTsp","isStatusCode","getUniqueItems","useEmitterOptions","getPropertyAttributes","JsonSerialization","getDocComments","getSubNamespaceParts","CSharpFile","efRefkey","TypeExpression","getErrorConstructor","getDefaultValueString","getEnumDefaultInitializer","getLiteralValue","getModelEmitName","getScalarForLiteral","getUnionVariantInitializer","hasNonIntegerValues","hasPropertyInChain","isDuplicateExceptionName","isValueType","modelNeedsJsonNodes","getAnonymousModelName","modelUsings","Models","props","$","_$createComponent","each","models","children","model","needsJsonNodes","usings","modelName","program","subNsParts","namespace","serviceNamespace","modelContent","ServerClassDeclaration","type","emitName","wrappedContent","reduceRight","content","nsPart","Namespace","name","path","using","namePolicy","useCSharpNamePolicy","className","getName","refkeys","isError","properties","Array","from","entries","filter","_","p","baseType","baseModel","errorConstructor","undefined","hasChildConstructor","derivedModels","length","ClassDeclaration","refkey","partial","doc","_$memo","_$createIntrinsic","Constructor","parameters","default","baseConstructor","doubleHardline","property","ServerProperty","errorClassName","propType","attrs","propName","csharpPropName","csharpName","unshift","JsonPropertyNameAttribute","args","isOverride","unionVariantInit","enumDefaultInit","isErrorProp","collectionType","literalInfo","defaultValue","initializer","isLiteralOnly","isFloatEnum","enum","is","resolveToScalar","resolvedType","needsNullable","optional","isUniqueItems","isArrayType","kind","array","typeExpr","indexer","value","Property","nullable","attributes","get","set"],"sources":["../../../../src/components/models/models.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.test.d.ts","sourceRoot":"","sources":["../../../../src/components/models/models.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { Tester } from "#test/tester.js";
|
|
3
|
+
import { createCSharpNamePolicy, SourceFile } from "@alloy-js/csharp";
|
|
4
|
+
import { t } from "@typespec/compiler/testing";
|
|
5
|
+
import { Output } from "@typespec/emitter-framework";
|
|
6
|
+
import { ClassDeclaration } from "@typespec/emitter-framework/csharp";
|
|
7
|
+
import { beforeEach, describe, expect, it } from "vitest";
|
|
8
|
+
let runner;
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
runner = await Tester.createInstance();
|
|
11
|
+
});
|
|
12
|
+
function Wrapper(props) {
|
|
13
|
+
const policy = createCSharpNamePolicy();
|
|
14
|
+
return _$createComponent(Output, {
|
|
15
|
+
get program() {
|
|
16
|
+
return runner.program;
|
|
17
|
+
},
|
|
18
|
+
namePolicy: policy,
|
|
19
|
+
get children() {
|
|
20
|
+
return _$createComponent(SourceFile, {
|
|
21
|
+
path: "test.cs",
|
|
22
|
+
get children() {
|
|
23
|
+
return props.children;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
describe("ClassDeclaration for models", () => {
|
|
30
|
+
it("renders a simple model with properties", async () => {
|
|
31
|
+
const {
|
|
32
|
+
Pet
|
|
33
|
+
} = await runner.compile(t.code`
|
|
34
|
+
model ${t.model("Pet")} {
|
|
35
|
+
name: string;
|
|
36
|
+
age: int32;
|
|
37
|
+
}
|
|
38
|
+
`);
|
|
39
|
+
expect(_$createComponent(Wrapper, {
|
|
40
|
+
get children() {
|
|
41
|
+
return _$createComponent(ClassDeclaration, {
|
|
42
|
+
type: Pet,
|
|
43
|
+
jsonAttributes: true
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
})).toRenderTo(`
|
|
47
|
+
using System.Text.Json.Serialization;
|
|
48
|
+
|
|
49
|
+
class Pet
|
|
50
|
+
{
|
|
51
|
+
[JsonPropertyName("name")]
|
|
52
|
+
public required string Name { get; set; }
|
|
53
|
+
|
|
54
|
+
[JsonPropertyName("age")]
|
|
55
|
+
public required int Age { get; set; }
|
|
56
|
+
}
|
|
57
|
+
`);
|
|
58
|
+
});
|
|
59
|
+
it("renders a model with optional property", async () => {
|
|
60
|
+
const {
|
|
61
|
+
Pet
|
|
62
|
+
} = await runner.compile(t.code`
|
|
63
|
+
model ${t.model("Pet")} {
|
|
64
|
+
name: string;
|
|
65
|
+
tag?: string;
|
|
66
|
+
}
|
|
67
|
+
`);
|
|
68
|
+
expect(_$createComponent(Wrapper, {
|
|
69
|
+
get children() {
|
|
70
|
+
return _$createComponent(ClassDeclaration, {
|
|
71
|
+
type: Pet,
|
|
72
|
+
jsonAttributes: true
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
})).toRenderTo(`
|
|
76
|
+
using System.Text.Json.Serialization;
|
|
77
|
+
|
|
78
|
+
class Pet
|
|
79
|
+
{
|
|
80
|
+
[JsonPropertyName("name")]
|
|
81
|
+
public required string Name { get; set; }
|
|
82
|
+
|
|
83
|
+
[JsonPropertyName("tag")]
|
|
84
|
+
public string? Tag { get; set; }
|
|
85
|
+
}
|
|
86
|
+
`);
|
|
87
|
+
});
|
|
88
|
+
it("renders a model with inheritance", async () => {
|
|
89
|
+
const {
|
|
90
|
+
Pet,
|
|
91
|
+
Dog
|
|
92
|
+
} = await runner.compile(t.code`
|
|
93
|
+
model ${t.model("Pet")} {
|
|
94
|
+
name: string;
|
|
95
|
+
}
|
|
96
|
+
model ${t.model("Dog")} extends Pet {
|
|
97
|
+
breed: string;
|
|
98
|
+
}
|
|
99
|
+
`);
|
|
100
|
+
expect(_$createComponent(Wrapper, {
|
|
101
|
+
get children() {
|
|
102
|
+
return [_$createComponent(ClassDeclaration, {
|
|
103
|
+
type: Pet,
|
|
104
|
+
jsonAttributes: true
|
|
105
|
+
}), _$createIntrinsic("hbr", {}), _$createComponent(ClassDeclaration, {
|
|
106
|
+
type: Dog,
|
|
107
|
+
jsonAttributes: true
|
|
108
|
+
})];
|
|
109
|
+
}
|
|
110
|
+
})).toRenderTo(`
|
|
111
|
+
using System.Text.Json.Serialization;
|
|
112
|
+
|
|
113
|
+
class Pet
|
|
114
|
+
{
|
|
115
|
+
[JsonPropertyName("name")]
|
|
116
|
+
public required string Name { get; set; }
|
|
117
|
+
}
|
|
118
|
+
class Dog : Pet
|
|
119
|
+
{
|
|
120
|
+
[JsonPropertyName("breed")]
|
|
121
|
+
public required string Breed { get; set; }
|
|
122
|
+
}
|
|
123
|
+
`);
|
|
124
|
+
});
|
|
125
|
+
it("renders a model with nullable union property", async () => {
|
|
126
|
+
const {
|
|
127
|
+
Pet
|
|
128
|
+
} = await runner.compile(t.code`
|
|
129
|
+
model ${t.model("Pet")} {
|
|
130
|
+
name: string | null;
|
|
131
|
+
}
|
|
132
|
+
`);
|
|
133
|
+
expect(_$createComponent(Wrapper, {
|
|
134
|
+
get children() {
|
|
135
|
+
return _$createComponent(ClassDeclaration, {
|
|
136
|
+
type: Pet,
|
|
137
|
+
jsonAttributes: true
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
})).toRenderTo(`
|
|
141
|
+
using System.Text.Json.Serialization;
|
|
142
|
+
|
|
143
|
+
class Pet
|
|
144
|
+
{
|
|
145
|
+
[JsonPropertyName("name")]
|
|
146
|
+
public required string? Name { get; set; }
|
|
147
|
+
}
|
|
148
|
+
`);
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
//# sourceMappingURL=models.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Tester","createCSharpNamePolicy","SourceFile","t","Output","ClassDeclaration","beforeEach","describe","expect","it","runner","createInstance","Wrapper","props","policy","_$createComponent","program","namePolicy","children","path","Pet","compile","code","model","type","jsonAttributes","toRenderTo","Dog","_$createIntrinsic"],"sources":["../../../../src/components/models/models.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Children } from "@alloy-js/core";
|
|
2
|
+
export interface CsprojProps {
|
|
3
|
+
/** The project name (without extension). */
|
|
4
|
+
projectName: string;
|
|
5
|
+
/** Whether to include SwaggerUI NuGet package. */
|
|
6
|
+
useSwaggerUI?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Renders a .csproj file for the ASP.NET service project.
|
|
10
|
+
*/
|
|
11
|
+
export declare function Csproj(props: CsprojProps): Children;
|
|
12
|
+
//# sourceMappingURL=csproj.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csproj.d.ts","sourceRoot":"","sources":["../../../../src/components/project/csproj.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAW/C,MAAM,WAAW,WAAW;IAC1B,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,CAenD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { CsprojFile } from "@alloy-js/csharp";
|
|
3
|
+
import { ImplicitUsings, ItemGroup, Nullable, PackageReference, PropertyGroup, TargetFramework } from "@alloy-js/msbuild/components";
|
|
4
|
+
/**
|
|
5
|
+
* Renders a .csproj file for the ASP.NET service project.
|
|
6
|
+
*/
|
|
7
|
+
export function Csproj(props) {
|
|
8
|
+
return _$createComponent(CsprojFile, {
|
|
9
|
+
get path() {
|
|
10
|
+
return `${props.projectName}.csproj`;
|
|
11
|
+
},
|
|
12
|
+
sdk: "Microsoft.NET.Sdk.Web",
|
|
13
|
+
get children() {
|
|
14
|
+
return [_$createComponent(PropertyGroup, {
|
|
15
|
+
get children() {
|
|
16
|
+
return [_$createComponent(TargetFramework, {
|
|
17
|
+
children: "net9.0"
|
|
18
|
+
}), _$createComponent(Nullable, {
|
|
19
|
+
children: "enable"
|
|
20
|
+
}), _$createComponent(ImplicitUsings, {
|
|
21
|
+
children: "enable"
|
|
22
|
+
})];
|
|
23
|
+
}
|
|
24
|
+
}), _$memo(() => _$memo(() => !!props.useSwaggerUI)() && _$createComponent(ItemGroup, {
|
|
25
|
+
get children() {
|
|
26
|
+
return _$createComponent(PackageReference, {
|
|
27
|
+
Include: "SwashBuckle.AspNetCore",
|
|
28
|
+
Version: "7.3.1"
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}))];
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=csproj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CsprojFile","ImplicitUsings","ItemGroup","Nullable","PackageReference","PropertyGroup","TargetFramework","Csproj","props","_$createComponent","path","projectName","sdk","children","_$memo","useSwaggerUI","Include","Version"],"sources":["../../../../src/components/project/csproj.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,cAAc,EACdC,SAAS,EACTC,QAAQ,EACRC,gBAAgB,EAChBC,aAAa,EACbC,eAAe,QACV,8BAA8B;AASrC;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAACC,KAAkB,EAAY;EACnD,OAAAC,iBAAA,CACGT,UAAU;IAAA,IAACU,IAAIA,CAAA;MAAA,OAAE,GAAGF,KAAK,CAACG,WAAW,SAAS;IAAA;IAAEC,GAAG;IAAA,IAAAC,SAAA;MAAA,QAAAJ,iBAAA,CACjDJ,aAAa;QAAA,IAAAQ,SAAA;UAAA,QAAAJ,iBAAA,CACXH,eAAe;YAAAO,QAAA;UAAA,IAAAJ,iBAAA,CACfN,QAAQ;YAAAU,QAAA;UAAA,IAAAJ,iBAAA,CACRR,cAAc;YAAAY,QAAA;UAAA;QAAA;MAAA,IAAAC,MAAA,OAEhBA,MAAA,SAAAN,KAAK,CAACO,YAAY,OAAAN,iBAAA,CAChBP,SAAS;QAAA,IAAAW,SAAA;UAAA,OAAAJ,iBAAA,CACPL,gBAAgB;YAACY,OAAO;YAA0BC,OAAO;UAAA;QAAA;MAAA,EAE7D;IAAA;EAAA;AAGP","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csproj.test.d.ts","sourceRoot":"","sources":["../../../../src/components/project/csproj.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { Output, render } from "@alloy-js/core";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { Csproj } from "./csproj.js";
|
|
5
|
+
function getFileContent(output, path) {
|
|
6
|
+
for (const item of output.contents) {
|
|
7
|
+
if ("contents" in item && typeof item.contents === "string" && item.path.endsWith(path)) {
|
|
8
|
+
return item.contents;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
describe("Csproj", () => {
|
|
14
|
+
it("renders a basic .csproj file", () => {
|
|
15
|
+
const output = render(_$createComponent(Output, {
|
|
16
|
+
get children() {
|
|
17
|
+
return _$createComponent(Csproj, {
|
|
18
|
+
projectName: "TestProject"
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}));
|
|
22
|
+
const content = getFileContent(output, "TestProject.csproj");
|
|
23
|
+
expect(content).toBeDefined();
|
|
24
|
+
expect(content).toContain("Microsoft.NET.Sdk.Web");
|
|
25
|
+
expect(content).toContain("<TargetFramework>net9.0</TargetFramework>");
|
|
26
|
+
expect(content).toContain("<Nullable>enable</Nullable>");
|
|
27
|
+
});
|
|
28
|
+
it("includes SwaggerUI package when enabled", () => {
|
|
29
|
+
const output = render(_$createComponent(Output, {
|
|
30
|
+
get children() {
|
|
31
|
+
return _$createComponent(Csproj, {
|
|
32
|
+
projectName: "TestProject",
|
|
33
|
+
useSwaggerUI: true
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
37
|
+
const content = getFileContent(output, "TestProject.csproj");
|
|
38
|
+
expect(content).toBeDefined();
|
|
39
|
+
expect(content).toContain("SwashBuckle.AspNetCore");
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=csproj.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Output","render","describe","expect","it","Csproj","getFileContent","output","path","item","contents","endsWith","undefined","_$createComponent","children","projectName","content","toBeDefined","toContain","useSwaggerUI"],"sources":["../../../../src/components/project/csproj.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,MAAM,QAAQ,gBAAgB;AAC/C,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,MAAM;AAEf,SAASC,cAAcA,CAACC,MAAW,EAAEC,IAAY,EAAsB;EACrE,KAAK,MAAMC,IAAI,IAAIF,MAAM,CAACG,QAAQ,EAAE;IAClC,IAAI,UAAU,IAAID,IAAI,IAAI,OAAOA,IAAI,CAACC,QAAQ,KAAK,QAAQ,IAAID,IAAI,CAACD,IAAI,CAACG,QAAQ,CAACH,IAAI,CAAC,EAAE;MACvF,OAAOC,IAAI,CAACC,QAAQ;IACtB;EACF;EACA,OAAOE,SAAS;AAClB;AAEAV,QAAQ,CAAC,QAAQ,EAAE,MAAM;EACvBE,EAAE,CAAC,8BAA8B,EAAE,MAAM;IACvC,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,MAAM;UAACU,WAAW;QAAA;MAAA;IAAA,EAEvB,CAAC;IACD,MAAMC,OAAO,GAAGV,cAAc,CAACC,MAAM,EAAE,oBAAoB,CAAC;IAC5DJ,MAAM,CAACa,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bd,MAAM,CAACa,OAAO,CAAC,CAACE,SAAS,CAAC,uBAAuB,CAAC;IAClDf,MAAM,CAACa,OAAO,CAAC,CAACE,SAAS,CAAC,2CAA2C,CAAC;IACtEf,MAAM,CAACa,OAAO,CAAC,CAACE,SAAS,CAAC,6BAA6B,CAAC;EAC1D,CAAC,CAAC;EAEFd,EAAE,CAAC,yCAAyC,EAAE,MAAM;IAClD,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,MAAM;UAACU,WAAW;UAAeI,YAAY;QAAA;MAAA;IAAA,EAElD,CAAC;IACD,MAAMH,OAAO,GAAGV,cAAc,CAACC,MAAM,EAAE,oBAAoB,CAAC;IAC5DJ,MAAM,CAACa,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bd,MAAM,CAACa,OAAO,CAAC,CAACE,SAAS,CAAC,wBAAwB,CAAC;EACrD,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Children } from "@alloy-js/core";
|
|
2
|
+
export interface LaunchSettingsProps {
|
|
3
|
+
/** The HTTP port for local hosting. */
|
|
4
|
+
httpPort: number;
|
|
5
|
+
/** The HTTPS port for local hosting. */
|
|
6
|
+
httpsPort: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Renders launchSettings.json and appsettings files for the ASP.NET project.
|
|
10
|
+
*/
|
|
11
|
+
export declare function LaunchSettings(props: LaunchSettingsProps): Children;
|
|
12
|
+
/**
|
|
13
|
+
* Renders appsettings.json for the ASP.NET project.
|
|
14
|
+
*/
|
|
15
|
+
export declare function AppSettings(): Children;
|
|
16
|
+
//# sourceMappingURL=launch-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-settings.d.ts","sourceRoot":"","sources":["../../../../src/components/project/launch-settings.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,QAAQ,CAoCnE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAsCtC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { SourceDirectory, SourceFile } from "@alloy-js/core";
|
|
3
|
+
/**
|
|
4
|
+
* Renders launchSettings.json and appsettings files for the ASP.NET project.
|
|
5
|
+
*/
|
|
6
|
+
export function LaunchSettings(props) {
|
|
7
|
+
const launchSettings = JSON.stringify({
|
|
8
|
+
$schema: "https://json.schemastore.org/launchsettings.json",
|
|
9
|
+
profiles: {
|
|
10
|
+
https: {
|
|
11
|
+
commandName: "Project",
|
|
12
|
+
dotnetRunMessages: true,
|
|
13
|
+
launchBrowser: true,
|
|
14
|
+
applicationUrl: `https://localhost:${props.httpsPort};http://localhost:${props.httpPort}`,
|
|
15
|
+
environmentVariables: {
|
|
16
|
+
ASPNETCORE_ENVIRONMENT: "Development"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
http: {
|
|
20
|
+
commandName: "Project",
|
|
21
|
+
dotnetRunMessages: true,
|
|
22
|
+
launchBrowser: true,
|
|
23
|
+
applicationUrl: `http://localhost:${props.httpPort}`,
|
|
24
|
+
environmentVariables: {
|
|
25
|
+
ASPNETCORE_ENVIRONMENT: "Development"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}, null, 4);
|
|
30
|
+
return _$createComponent(SourceDirectory, {
|
|
31
|
+
path: "Properties",
|
|
32
|
+
get children() {
|
|
33
|
+
return _$createComponent(SourceFile, {
|
|
34
|
+
filetype: "json",
|
|
35
|
+
path: "launchSettings.json",
|
|
36
|
+
children: launchSettings
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Renders appsettings.json for the ASP.NET project.
|
|
44
|
+
*/
|
|
45
|
+
export function AppSettings() {
|
|
46
|
+
const appSettings = JSON.stringify({
|
|
47
|
+
Logging: {
|
|
48
|
+
LogLevel: {
|
|
49
|
+
Default: "Information",
|
|
50
|
+
"Microsoft.AspNetCore": "Warning"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
AllowedHosts: "*"
|
|
54
|
+
}, null, 2);
|
|
55
|
+
const devAppSettings = JSON.stringify({
|
|
56
|
+
Logging: {
|
|
57
|
+
LogLevel: {
|
|
58
|
+
Default: "Information",
|
|
59
|
+
"Microsoft.AspNetCore": "Warning"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}, null, 2);
|
|
63
|
+
return [_$createComponent(SourceFile, {
|
|
64
|
+
filetype: "json",
|
|
65
|
+
path: "appsettings.json",
|
|
66
|
+
children: appSettings
|
|
67
|
+
}), _$createComponent(SourceFile, {
|
|
68
|
+
filetype: "json",
|
|
69
|
+
path: "appsettings.Development.json",
|
|
70
|
+
children: devAppSettings
|
|
71
|
+
})];
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=launch-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SourceDirectory","SourceFile","LaunchSettings","props","launchSettings","JSON","stringify","$schema","profiles","https","commandName","dotnetRunMessages","launchBrowser","applicationUrl","httpsPort","httpPort","environmentVariables","ASPNETCORE_ENVIRONMENT","http","_$createComponent","path","children","filetype","AppSettings","appSettings","Logging","LogLevel","Default","AllowedHosts","devAppSettings"],"sources":["../../../../src/components/project/launch-settings.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,eAAe,EAAEC,UAAU,QAAuB,gBAAgB;AAS3E;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACC,KAA0B,EAAY;EACnE,MAAMC,cAAc,GAAGC,IAAI,CAACC,SAAS,CACnC;IACEC,OAAO,EAAE,kDAAkD;IAC3DC,QAAQ,EAAE;MACRC,KAAK,EAAE;QACLC,WAAW,EAAE,SAAS;QACtBC,iBAAiB,EAAE,IAAI;QACvBC,aAAa,EAAE,IAAI;QACnBC,cAAc,EAAE,qBAAqBV,KAAK,CAACW,SAAS,qBAAqBX,KAAK,CAACY,QAAQ,EAAE;QACzFC,oBAAoB,EAAE;UACpBC,sBAAsB,EAAE;QAC1B;MACF,CAAC;MACDC,IAAI,EAAE;QACJR,WAAW,EAAE,SAAS;QACtBC,iBAAiB,EAAE,IAAI;QACvBC,aAAa,EAAE,IAAI;QACnBC,cAAc,EAAE,oBAAoBV,KAAK,CAACY,QAAQ,EAAE;QACpDC,oBAAoB,EAAE;UACpBC,sBAAsB,EAAE;QAC1B;MACF;IACF;EACF,CAAC,EACD,IAAI,EACJ,CACF,CAAC;EAED,OAAAE,iBAAA,CACGnB,eAAe;IAACoB,IAAI;IAAA,IAAAC,SAAA;MAAA,OAAAF,iBAAA,CAClBlB,UAAU;QAACqB,QAAQ;QAAQF,IAAI;QAAAC,QAAA,EAC7BjB;MAAc;IAAA;EAAA;AAIvB;;AAEA;AACA;AACA;AACA,OAAO,SAASmB,WAAWA,CAAA,EAAa;EACtC,MAAMC,WAAW,GAAGnB,IAAI,CAACC,SAAS,CAChC;IACEmB,OAAO,EAAE;MACPC,QAAQ,EAAE;QACRC,OAAO,EAAE,aAAa;QACtB,sBAAsB,EAAE;MAC1B;IACF,CAAC;IACDC,YAAY,EAAE;EAChB,CAAC,EACD,IAAI,EACJ,CACF,CAAC;EAED,MAAMC,cAAc,GAAGxB,IAAI,CAACC,SAAS,CACnC;IACEmB,OAAO,EAAE;MACPC,QAAQ,EAAE;QACRC,OAAO,EAAE,aAAa;QACtB,sBAAsB,EAAE;MAC1B;IACF;EACF,CAAC,EACD,IAAI,EACJ,CACF,CAAC;EAED,QAAAR,iBAAA,CAEKlB,UAAU;IAACqB,QAAQ;IAAQF,IAAI;IAAAC,QAAA,EAC7BG;EAAW,IAAAL,iBAAA,CAEblB,UAAU;IAACqB,QAAQ;IAAQF,IAAI;IAAAC,QAAA,EAC7BQ;EAAc;AAIvB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-settings.test.d.ts","sourceRoot":"","sources":["../../../../src/components/project/launch-settings.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { Output, render } from "@alloy-js/core";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { AppSettings, LaunchSettings } from "./launch-settings.js";
|
|
5
|
+
function findFileContent(output, pathSuffix) {
|
|
6
|
+
function search(dir) {
|
|
7
|
+
for (const item of dir.contents) {
|
|
8
|
+
if ("contents" in item && typeof item.contents === "string" && item.path.endsWith(pathSuffix)) {
|
|
9
|
+
return item.contents;
|
|
10
|
+
}
|
|
11
|
+
if ("contents" in item && Array.isArray(item.contents)) {
|
|
12
|
+
const found = search(item);
|
|
13
|
+
if (found) return found;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
return search(output);
|
|
19
|
+
}
|
|
20
|
+
describe("LaunchSettings", () => {
|
|
21
|
+
it("renders launchSettings.json with correct ports", () => {
|
|
22
|
+
const output = render(_$createComponent(Output, {
|
|
23
|
+
get children() {
|
|
24
|
+
return _$createComponent(LaunchSettings, {
|
|
25
|
+
httpPort: 5000,
|
|
26
|
+
httpsPort: 5001
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
const content = findFileContent(output, "launchSettings.json");
|
|
31
|
+
expect(content).toBeDefined();
|
|
32
|
+
expect(content).toContain("https://localhost:5001");
|
|
33
|
+
expect(content).toContain("http://localhost:5000");
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe("AppSettings", () => {
|
|
37
|
+
it("renders appsettings files", () => {
|
|
38
|
+
const output = render(_$createComponent(Output, {
|
|
39
|
+
get children() {
|
|
40
|
+
return _$createComponent(AppSettings, {});
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
const content = findFileContent(output, "appsettings.json");
|
|
44
|
+
expect(content).toBeDefined();
|
|
45
|
+
expect(content).toContain("AllowedHosts");
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=launch-settings.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Output","render","describe","expect","it","AppSettings","LaunchSettings","findFileContent","output","pathSuffix","search","dir","item","contents","path","endsWith","Array","isArray","found","undefined","_$createComponent","children","httpPort","httpsPort","content","toBeDefined","toContain"],"sources":["../../../../src/components/project/launch-settings.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,MAAM,QAAQ,gBAAgB;AAC/C,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,WAAW,EAAEC,cAAc;AAEpC,SAASC,eAAeA,CAACC,MAAW,EAAEC,UAAkB,EAAsB;EAC5E,SAASC,MAAMA,CAACC,GAAQ,EAAsB;IAC5C,KAAK,MAAMC,IAAI,IAAID,GAAG,CAACE,QAAQ,EAAE;MAC/B,IACE,UAAU,IAAID,IAAI,IAClB,OAAOA,IAAI,CAACC,QAAQ,KAAK,QAAQ,IACjCD,IAAI,CAACE,IAAI,CAACC,QAAQ,CAACN,UAAU,CAAC,EAC9B;QACA,OAAOG,IAAI,CAACC,QAAQ;MACtB;MACA,IAAI,UAAU,IAAID,IAAI,IAAII,KAAK,CAACC,OAAO,CAACL,IAAI,CAACC,QAAQ,CAAC,EAAE;QACtD,MAAMK,KAAK,GAAGR,MAAM,CAACE,IAAI,CAAC;QAC1B,IAAIM,KAAK,EAAE,OAAOA,KAAK;MACzB;IACF;IACA,OAAOC,SAAS;EAClB;EACA,OAAOT,MAAM,CAACF,MAAM,CAAC;AACvB;AAEAN,QAAQ,CAAC,gBAAgB,EAAE,MAAM;EAC/BE,EAAE,CAAC,gDAAgD,EAAE,MAAM;IACzD,MAAMI,MAAM,GAAGP,MAAM,CAAAmB,iBAAA,CAClBpB,MAAM;MAAA,IAAAqB,SAAA;QAAA,OAAAD,iBAAA,CACJd,cAAc;UAACgB,QAAQ,EAAE,IAAI;UAAEC,SAAS,EAAE;QAAI;MAAA;IAAA,EAEnD,CAAC;IACD,MAAMC,OAAO,GAAGjB,eAAe,CAACC,MAAM,EAAE,qBAAqB,CAAC;IAC9DL,MAAM,CAACqB,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7BtB,MAAM,CAACqB,OAAO,CAAC,CAACE,SAAS,CAAC,wBAAwB,CAAC;IACnDvB,MAAM,CAACqB,OAAO,CAAC,CAACE,SAAS,CAAC,uBAAuB,CAAC;EACpD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFxB,QAAQ,CAAC,aAAa,EAAE,MAAM;EAC5BE,EAAE,CAAC,2BAA2B,EAAE,MAAM;IACpC,MAAMI,MAAM,GAAGP,MAAM,CAAAmB,iBAAA,CAClBpB,MAAM;MAAA,IAAAqB,SAAA;QAAA,OAAAD,iBAAA,CACJf,WAAW;MAAA;IAAA,EAEhB,CAAC;IACD,MAAMmB,OAAO,GAAGjB,eAAe,CAACC,MAAM,EAAE,kBAAkB,CAAC;IAC3DL,MAAM,CAACqB,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7BtB,MAAM,CAACqB,OAAO,CAAC,CAACE,SAAS,CAAC,cAAc,CAAC;EAC3C,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type Children } from "@alloy-js/core";
|
|
2
|
+
export interface ProgramCsProps {
|
|
3
|
+
/** Whether to include Swagger UI middleware. */
|
|
4
|
+
useSwaggerUI?: boolean;
|
|
5
|
+
/** Path to the OpenAPI spec file. */
|
|
6
|
+
openApiPath?: string;
|
|
7
|
+
/** Whether mock registrations are included. */
|
|
8
|
+
hasMocks?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Renders the Program.cs entry point for the ASP.NET service.
|
|
12
|
+
*/
|
|
13
|
+
export declare function ProgramCs(props: ProgramCsProps): Children;
|
|
14
|
+
//# sourceMappingURL=program.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../../src/components/project/program.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CA8EzD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { CSharpFile } from "../csharp-file.js";
|
|
3
|
+
/**
|
|
4
|
+
* Renders the Program.cs entry point for the ASP.NET service.
|
|
5
|
+
*/
|
|
6
|
+
export function ProgramCs(props) {
|
|
7
|
+
const useSwagger = props.useSwaggerUI ?? false;
|
|
8
|
+
const openApiPath = props.openApiPath ?? "openapi/openapi.yaml";
|
|
9
|
+
const hasMocks = props.hasMocks ?? false;
|
|
10
|
+
const contents = `var builder = WebApplication.CreateBuilder(args);
|
|
11
|
+
|
|
12
|
+
// Add services to the container.
|
|
13
|
+
builder.Services.AddControllersWithViews(options =>
|
|
14
|
+
{
|
|
15
|
+
options.Filters.Add<HttpServiceExceptionFilter>();
|
|
16
|
+
});
|
|
17
|
+
builder.Services.AddEndpointsApiExplorer();
|
|
18
|
+
${useSwagger ? "builder.Services.AddSwaggerGen();\n" : ""}${hasMocks ? "MockRegistration.Register(builder);\n" : ""}
|
|
19
|
+
var app = builder.Build();
|
|
20
|
+
|
|
21
|
+
// Configure the HTTP request pipeline.
|
|
22
|
+
if (!app.Environment.IsDevelopment())
|
|
23
|
+
{
|
|
24
|
+
app.UseExceptionHandler("/Home/Error");
|
|
25
|
+
app.UseHsts();
|
|
26
|
+
}
|
|
27
|
+
${useSwagger ? `else
|
|
28
|
+
{
|
|
29
|
+
app.UseSwagger();
|
|
30
|
+
app.UseSwaggerUI(c => {
|
|
31
|
+
c.DocumentTitle = "TypeSpec Generated OpenAPI Viewer";
|
|
32
|
+
c.SwaggerEndpoint("/openapi.yaml", "TypeSpec Generated OpenAPI Docs");
|
|
33
|
+
c.RoutePrefix = "swagger";
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
` : ""}
|
|
37
|
+
app.UseHttpsRedirection();
|
|
38
|
+
app.UseStaticFiles();
|
|
39
|
+
app.Use(async (context, next) =>
|
|
40
|
+
{
|
|
41
|
+
context.Request.EnableBuffering();
|
|
42
|
+
await next();
|
|
43
|
+
});
|
|
44
|
+
${useSwagger ? `
|
|
45
|
+
app.MapGet("/openapi.yaml", async (HttpContext context) =>
|
|
46
|
+
{
|
|
47
|
+
var externalFilePath = "${openApiPath}"; // Full path to the file outside the project
|
|
48
|
+
if (!File.Exists(externalFilePath))
|
|
49
|
+
{
|
|
50
|
+
context.Response.StatusCode = StatusCodes.Status404NotFound;
|
|
51
|
+
await context.Response.WriteAsync("OpenAPI spec not found.");
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
context.Response.ContentType = "application/yaml";
|
|
55
|
+
await context.Response.SendFileAsync(externalFilePath);
|
|
56
|
+
});
|
|
57
|
+
` : ""}
|
|
58
|
+
app.UseRouting();
|
|
59
|
+
|
|
60
|
+
app.UseAuthorization();
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
app.MapControllerRoute(
|
|
64
|
+
name: "default",
|
|
65
|
+
pattern: "{controller=Home}/{action=Index}/{id?}");
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
app.Run();`;
|
|
69
|
+
return _$createComponent(CSharpFile, {
|
|
70
|
+
path: "Program.cs",
|
|
71
|
+
using: ["TypeSpec.Helpers"],
|
|
72
|
+
children: contents
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CSharpFile","ProgramCs","props","useSwagger","useSwaggerUI","openApiPath","hasMocks","contents","_$createComponent","path","using","children"],"sources":["../../../../src/components/project/program.tsx"],"sourcesContent":[null],"mappings":";AACA,SAASA,UAAU;AAWnB;AACA;AACA;AACA,OAAO,SAASC,SAASA,CAACC,KAAqB,EAAY;EACzD,MAAMC,UAAU,GAAGD,KAAK,CAACE,YAAY,IAAI,KAAK;EAC9C,MAAMC,WAAW,GAAGH,KAAK,CAACG,WAAW,IAAI,sBAAsB;EAC/D,MAAMC,QAAQ,GAAGJ,KAAK,CAACI,QAAQ,IAAI,KAAK;EAExC,MAAMC,QAAQ,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEJ,UAAU,GAAG,qCAAqC,GAAG,EAAE,GAAGG,QAAQ,GAAG,uCAAuC,GAAG,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EACEH,UAAU,GACN;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GACK,EAAE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAEEA,UAAU,GACN;AACN;AACA;AACA,8BAA8BE,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GACK,EAAE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WACW;EAET,OAAAG,iBAAA,CACGR,UAAU;IAACS,IAAI;IAAcC,KAAK,EAAE,CAAC,kBAAkB,CAAC;IAAAC,QAAA,EACtDJ;EAAQ;AAGf","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"program.test.d.ts","sourceRoot":"","sources":["../../../../src/components/project/program.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { Output, render } from "@alloy-js/core";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { ProgramCs } from "./program.js";
|
|
5
|
+
function getFileContent(output, path) {
|
|
6
|
+
for (const item of output.contents) {
|
|
7
|
+
if ("contents" in item && typeof item.contents === "string" && item.path.endsWith(path)) {
|
|
8
|
+
return item.contents;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
describe("ProgramCs", () => {
|
|
14
|
+
it("renders Program.cs without swagger", () => {
|
|
15
|
+
const output = render(_$createComponent(Output, {
|
|
16
|
+
get children() {
|
|
17
|
+
return _$createComponent(ProgramCs, {});
|
|
18
|
+
}
|
|
19
|
+
}));
|
|
20
|
+
const content = getFileContent(output, "Program.cs");
|
|
21
|
+
expect(content).toBeDefined();
|
|
22
|
+
expect(content).toContain("var builder = WebApplication.CreateBuilder(args);");
|
|
23
|
+
});
|
|
24
|
+
it("renders Program.cs with swagger", () => {
|
|
25
|
+
const output = render(_$createComponent(Output, {
|
|
26
|
+
get children() {
|
|
27
|
+
return _$createComponent(ProgramCs, {
|
|
28
|
+
useSwaggerUI: true,
|
|
29
|
+
openApiPath: "openapi/spec.yaml"
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
const content = getFileContent(output, "Program.cs");
|
|
34
|
+
expect(content).toBeDefined();
|
|
35
|
+
expect(content).toContain("builder.Services.AddSwaggerGen()");
|
|
36
|
+
});
|
|
37
|
+
it("renders Program.cs with mocks", () => {
|
|
38
|
+
const output = render(_$createComponent(Output, {
|
|
39
|
+
get children() {
|
|
40
|
+
return _$createComponent(ProgramCs, {
|
|
41
|
+
hasMocks: true
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}));
|
|
45
|
+
const content = getFileContent(output, "Program.cs");
|
|
46
|
+
expect(content).toBeDefined();
|
|
47
|
+
expect(content).toContain("MockRegistration.Register(builder)");
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=program.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Output","render","describe","expect","it","ProgramCs","getFileContent","output","path","item","contents","endsWith","undefined","_$createComponent","children","content","toBeDefined","toContain","useSwaggerUI","openApiPath","hasMocks"],"sources":["../../../../src/components/project/program.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,MAAM,QAAQ,gBAAgB;AAC/C,SAASC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAC7C,SAASC,SAAS;AAElB,SAASC,cAAcA,CAACC,MAAW,EAAEC,IAAY,EAAsB;EACrE,KAAK,MAAMC,IAAI,IAAIF,MAAM,CAACG,QAAQ,EAAE;IAClC,IAAI,UAAU,IAAID,IAAI,IAAI,OAAOA,IAAI,CAACC,QAAQ,KAAK,QAAQ,IAAID,IAAI,CAACD,IAAI,CAACG,QAAQ,CAACH,IAAI,CAAC,EAAE;MACvF,OAAOC,IAAI,CAACC,QAAQ;IACtB;EACF;EACA,OAAOE,SAAS;AAClB;AAEAV,QAAQ,CAAC,WAAW,EAAE,MAAM;EAC1BE,EAAE,CAAC,oCAAoC,EAAE,MAAM;IAC7C,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,SAAS;MAAA;IAAA,EAEd,CAAC;IACD,MAAMU,OAAO,GAAGT,cAAc,CAACC,MAAM,EAAE,YAAY,CAAC;IACpDJ,MAAM,CAACY,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bb,MAAM,CAACY,OAAO,CAAC,CAACE,SAAS,CAAC,mDAAmD,CAAC;EAChF,CAAC,CAAC;EAEFb,EAAE,CAAC,iCAAiC,EAAE,MAAM;IAC1C,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,SAAS;UAACa,YAAY;UAACC,WAAW;QAAA;MAAA;IAAA,EAEvC,CAAC;IACD,MAAMJ,OAAO,GAAGT,cAAc,CAACC,MAAM,EAAE,YAAY,CAAC;IACpDJ,MAAM,CAACY,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bb,MAAM,CAACY,OAAO,CAAC,CAACE,SAAS,CAAC,kCAAkC,CAAC;EAC/D,CAAC,CAAC;EAEFb,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACxC,MAAMG,MAAM,GAAGN,MAAM,CAAAY,iBAAA,CAClBb,MAAM;MAAA,IAAAc,SAAA;QAAA,OAAAD,iBAAA,CACJR,SAAS;UAACe,QAAQ;QAAA;MAAA;IAAA,EAEvB,CAAC;IACD,MAAML,OAAO,GAAGT,cAAc,CAACC,MAAM,EAAE,YAAY,CAAC;IACpDJ,MAAM,CAACY,OAAO,CAAC,CAACC,WAAW,CAAC,CAAC;IAC7Bb,MAAM,CAACY,OAAO,CAAC,CAACE,SAAS,CAAC,oCAAoC,CAAC;EACjE,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type Children } from "@alloy-js/core";
|
|
2
|
+
import type { Interface } from "@typespec/compiler";
|
|
3
|
+
import type { OperationHttpCanonicalization } from "@typespec/http-canonicalization";
|
|
4
|
+
export interface ControllersAndInterfacesProps {
|
|
5
|
+
/** Pre-resolved service interfaces (including synthetic ones for namespace-level ops). */
|
|
6
|
+
interfaces: Interface[];
|
|
7
|
+
/** Pre-computed canonical HTTP operations per interface. */
|
|
8
|
+
canonicalOpsMap: Map<string, OperationHttpCanonicalization[]>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Component that renders controllers and their corresponding business logic interfaces.
|
|
12
|
+
*/
|
|
13
|
+
export declare function ControllersAndInterfaces(props: ControllersAndInterfacesProps): Children;
|
|
14
|
+
//# sourceMappingURL=render-root.d.ts.map
|