@typespec/http-server-csharp 0.58.0-alpha.28 → 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 +36 -28
- 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,"file":"render-root.d.ts","sourceRoot":"","sources":["../../../src/components/render-root.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAOrF,MAAM,WAAW,6BAA6B;IAC5C,0FAA0F;IAC1F,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,4DAA4D;IAC5D,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG,QAAQ,CAmGvF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { For, SourceDirectory } from "@alloy-js/core";
|
|
3
|
+
import * as cs from "@alloy-js/csharp";
|
|
4
|
+
import { Namespace } from "@alloy-js/csharp";
|
|
5
|
+
import { useEmitterOptions } from "../context/emitter-options-context.js";
|
|
6
|
+
import { Controller } from "./controllers/controllers.js";
|
|
7
|
+
import { CSharpFile } from "./csharp-file.js";
|
|
8
|
+
import { BusinessLogicInterface } from "./interfaces/interfaces.js";
|
|
9
|
+
import { RequestModels } from "./request-models.js";
|
|
10
|
+
/**
|
|
11
|
+
* Component that renders controllers and their corresponding business logic interfaces.
|
|
12
|
+
*/
|
|
13
|
+
export function ControllersAndInterfaces(props) {
|
|
14
|
+
const namePolicy = cs.useCSharpNamePolicy();
|
|
15
|
+
const {
|
|
16
|
+
serviceNamespace: parentNamespace
|
|
17
|
+
} = useEmitterOptions();
|
|
18
|
+
const interfaceOps = props.interfaces.map(iface => ({
|
|
19
|
+
iface,
|
|
20
|
+
ops: props.canonicalOpsMap.get(iface.name) ?? []
|
|
21
|
+
}));
|
|
22
|
+
|
|
23
|
+
// Collect operations that need request model classes
|
|
24
|
+
const requestModels = [];
|
|
25
|
+
for (const {
|
|
26
|
+
iface,
|
|
27
|
+
ops
|
|
28
|
+
} of interfaceOps) {
|
|
29
|
+
for (const op of ops) {
|
|
30
|
+
// GET requests don't have body parameters in the server
|
|
31
|
+
if (op.method === "get") continue;
|
|
32
|
+
const body = op.requestParameters.body;
|
|
33
|
+
if (body?.bodyKind === "single" && body.bodies.length > 0) {
|
|
34
|
+
const bodyType = body.bodies[0].type.sourceType;
|
|
35
|
+
// Create request model for body parameters that have properties to decompose
|
|
36
|
+
// This handles spread params (...Model) and implicit body models
|
|
37
|
+
if (bodyType.kind === "Model" && bodyType.properties.size > 0) {
|
|
38
|
+
// Skip if the body has an explicit property (i.e., @body/@bodyRoot decorator used)
|
|
39
|
+
const hasExplicitBody = body.bodies[0].property !== undefined;
|
|
40
|
+
if (!hasExplicitBody) {
|
|
41
|
+
const opName = namePolicy.getName(op.name, "class-method");
|
|
42
|
+
const requestModelName = `${iface.name}${opName}Request`;
|
|
43
|
+
requestModels.push({
|
|
44
|
+
name: requestModelName,
|
|
45
|
+
op,
|
|
46
|
+
ifaceName: iface.name
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return [_$createComponent(SourceDirectory, {
|
|
54
|
+
path: "models",
|
|
55
|
+
get children() {
|
|
56
|
+
return _$createComponent(RequestModels, {
|
|
57
|
+
requestModels: requestModels
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}), _$createComponent(SourceDirectory, {
|
|
61
|
+
path: "operations",
|
|
62
|
+
get children() {
|
|
63
|
+
return _$createComponent(For, {
|
|
64
|
+
each: interfaceOps,
|
|
65
|
+
children: ({
|
|
66
|
+
iface,
|
|
67
|
+
ops
|
|
68
|
+
}) => {
|
|
69
|
+
const hasMultipart = ops.some(op => op.requestParameters.body?.bodyKind === "multipart");
|
|
70
|
+
return _$createComponent(CSharpFile, {
|
|
71
|
+
get path() {
|
|
72
|
+
return `I${iface.name}.cs`;
|
|
73
|
+
},
|
|
74
|
+
get using() {
|
|
75
|
+
return ["System", "System.Collections.Generic", "System.Text.Json", "System.Text.Json.Nodes", "System.Text.Json.Serialization", "System.Threading.Tasks", ...(hasMultipart ? ["Microsoft.AspNetCore.WebUtilities"] : [])];
|
|
76
|
+
},
|
|
77
|
+
get children() {
|
|
78
|
+
return _$createComponent(BusinessLogicInterface, {
|
|
79
|
+
type: iface,
|
|
80
|
+
canonicalOps: ops
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}), _$createComponent(SourceDirectory, {
|
|
88
|
+
path: "controllers",
|
|
89
|
+
get children() {
|
|
90
|
+
return _$createComponent(Namespace, {
|
|
91
|
+
name: "Controllers",
|
|
92
|
+
get children() {
|
|
93
|
+
return _$createComponent(For, {
|
|
94
|
+
each: interfaceOps,
|
|
95
|
+
children: ({
|
|
96
|
+
iface,
|
|
97
|
+
ops
|
|
98
|
+
}) => {
|
|
99
|
+
const hasMultipart = ops.some(op => op.requestParameters.body?.bodyKind === "multipart");
|
|
100
|
+
return _$createComponent(CSharpFile, {
|
|
101
|
+
get path() {
|
|
102
|
+
return `${iface.name}Controller.cs`;
|
|
103
|
+
},
|
|
104
|
+
get using() {
|
|
105
|
+
return ["System", "System.Net", "System.Threading.Tasks", "System.Text.Json", "System.Text.Json.Nodes", "System.Text.Json.Serialization", ...(hasMultipart ? ["Microsoft.AspNetCore.WebUtilities", "Microsoft.AspNetCore.Http.Extensions"] : []), ...(parentNamespace ? [parentNamespace] : [])];
|
|
106
|
+
},
|
|
107
|
+
get children() {
|
|
108
|
+
return _$createComponent(Controller, {
|
|
109
|
+
type: iface,
|
|
110
|
+
operations: ops,
|
|
111
|
+
requestModels: requestModels
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
})];
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=render-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["For","SourceDirectory","cs","Namespace","useEmitterOptions","Controller","CSharpFile","BusinessLogicInterface","RequestModels","ControllersAndInterfaces","props","namePolicy","useCSharpNamePolicy","serviceNamespace","parentNamespace","interfaceOps","interfaces","map","iface","ops","canonicalOpsMap","get","name","requestModels","op","method","body","requestParameters","bodyKind","bodies","length","bodyType","type","sourceType","kind","properties","size","hasExplicitBody","property","undefined","opName","getName","requestModelName","push","ifaceName","_$createComponent","path","children","each","hasMultipart","some","using","canonicalOps","operations"],"sources":["../../../src/components/render-root.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Children } from "@alloy-js/core";
|
|
2
|
+
import type { OperationHttpCanonicalization } from "@typespec/http-canonicalization";
|
|
3
|
+
export interface RequestModelInfo {
|
|
4
|
+
name: string;
|
|
5
|
+
op: OperationHttpCanonicalization;
|
|
6
|
+
ifaceName: string;
|
|
7
|
+
}
|
|
8
|
+
export interface RequestModelsProps {
|
|
9
|
+
requestModels: RequestModelInfo[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Generates request model classes for operations with unnamed body types.
|
|
13
|
+
*/
|
|
14
|
+
export declare function RequestModels(props: RequestModelsProps): Children;
|
|
15
|
+
//# sourceMappingURL=request-models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-models.d.ts","sourceRoot":"","sources":["../../../src/components/request-models.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAKpD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAMrF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,6BAA6B,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAUD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CAsBjE"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { For } from "@alloy-js/core";
|
|
3
|
+
import * as cs from "@alloy-js/csharp";
|
|
4
|
+
import { Attribute } from "@alloy-js/csharp";
|
|
5
|
+
import { isVoidType } from "@typespec/compiler";
|
|
6
|
+
import { useTsp } from "@typespec/emitter-framework";
|
|
7
|
+
import { JsonSerialization } from "../utils/csharp-libs.js";
|
|
8
|
+
import { getDocComments } from "../utils/doc-comments.js";
|
|
9
|
+
import { CSharpFile } from "./csharp-file.js";
|
|
10
|
+
import { TypeExpression } from "./type-expression/type-expression.js";
|
|
11
|
+
const requestModelUsings = ["System", "System.Text.Json", "System.Text.Json.Nodes", "TypeSpec.Helpers", "TypeSpec.Helpers.JsonConverters"];
|
|
12
|
+
/**
|
|
13
|
+
* Generates request model classes for operations with unnamed body types.
|
|
14
|
+
*/
|
|
15
|
+
export function RequestModels(props) {
|
|
16
|
+
return _$createComponent(For, {
|
|
17
|
+
get each() {
|
|
18
|
+
return props.requestModels;
|
|
19
|
+
},
|
|
20
|
+
children: rm => {
|
|
21
|
+
const body = rm.op.requestParameters.body;
|
|
22
|
+
if (!body || body.bodyKind !== "single" || body.bodies.length === 0) return undefined;
|
|
23
|
+
const bodyType = body.bodies[0].type.sourceType;
|
|
24
|
+
if (bodyType.kind !== "Model") return undefined;
|
|
25
|
+
const properties = Array.from(bodyType.properties.entries()).filter(([_, p]) => !isVoidType(p.type));
|
|
26
|
+
return _$createComponent(CSharpFile, {
|
|
27
|
+
get path() {
|
|
28
|
+
return `${rm.name}.cs`;
|
|
29
|
+
},
|
|
30
|
+
using: requestModelUsings,
|
|
31
|
+
get children() {
|
|
32
|
+
return _$createComponent(RequestModelClass, {
|
|
33
|
+
get name() {
|
|
34
|
+
return rm.name;
|
|
35
|
+
},
|
|
36
|
+
properties: properties
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function RequestModelClass(props) {
|
|
44
|
+
const {
|
|
45
|
+
$
|
|
46
|
+
} = useTsp();
|
|
47
|
+
const namePolicy = cs.useCSharpNamePolicy();
|
|
48
|
+
return _$createComponent(cs.ClassDeclaration, {
|
|
49
|
+
get name() {
|
|
50
|
+
return props.name;
|
|
51
|
+
},
|
|
52
|
+
"public": true,
|
|
53
|
+
partial: true,
|
|
54
|
+
get children() {
|
|
55
|
+
return _$createComponent(For, {
|
|
56
|
+
get each() {
|
|
57
|
+
return props.properties;
|
|
58
|
+
},
|
|
59
|
+
doubleHardline: true,
|
|
60
|
+
children: ([_, property]) => {
|
|
61
|
+
const propName = namePolicy.getName(property.name, "class-property");
|
|
62
|
+
const attrs = [];
|
|
63
|
+
if (propName !== property.name) {
|
|
64
|
+
attrs.push(_$createComponent(Attribute, {
|
|
65
|
+
get name() {
|
|
66
|
+
return JsonSerialization.JsonPropertyNameAttribute;
|
|
67
|
+
},
|
|
68
|
+
get args() {
|
|
69
|
+
return [`"${property.name}"`];
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
return _$createComponent(cs.Property, {
|
|
74
|
+
name: propName,
|
|
75
|
+
get type() {
|
|
76
|
+
return _$createComponent(TypeExpression, {
|
|
77
|
+
get type() {
|
|
78
|
+
return property.type;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
"public": true,
|
|
83
|
+
get: true,
|
|
84
|
+
set: true,
|
|
85
|
+
get doc() {
|
|
86
|
+
return getDocComments($, property);
|
|
87
|
+
},
|
|
88
|
+
get attributes() {
|
|
89
|
+
return attrs.length > 0 ? attrs : undefined;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=request-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["For","cs","Attribute","isVoidType","useTsp","JsonSerialization","getDocComments","CSharpFile","TypeExpression","requestModelUsings","RequestModels","props","_$createComponent","each","requestModels","children","rm","body","op","requestParameters","bodyKind","bodies","length","undefined","bodyType","type","sourceType","kind","properties","Array","from","entries","filter","_","p","path","name","using","RequestModelClass","$","namePolicy","useCSharpNamePolicy","ClassDeclaration","partial","doubleHardline","property","propName","getName","attrs","push","JsonPropertyNameAttribute","args","Property","get","set","doc","attributes"],"sources":["../../../src/components/request-models.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Children } from "@alloy-js/core";
|
|
2
|
+
export interface DocumentationProps {
|
|
3
|
+
/** Names of interfaces with mock implementations. */
|
|
4
|
+
interfaceNames: string[];
|
|
5
|
+
/** Whether SwaggerUI is enabled. */
|
|
6
|
+
useSwaggerUI?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Renders documentation files: README.md, docs/usage.md, docs/emitter.md.
|
|
10
|
+
*/
|
|
11
|
+
export declare function Documentation(props: DocumentationProps): Children;
|
|
12
|
+
//# sourceMappingURL=documentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation.d.ts","sourceRoot":"","sources":["../../../../src/components/scaffolding/documentation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CAmBjE"}
|
|
@@ -1,27 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { SourceDirectory, SourceFile } from "@alloy-js/core";
|
|
3
|
+
/**
|
|
4
|
+
* Renders documentation files: README.md, docs/usage.md, docs/emitter.md.
|
|
5
|
+
*/
|
|
6
|
+
export function Documentation(props) {
|
|
7
|
+
const hasMocks = props.interfaceNames.length > 0;
|
|
8
|
+
const readme = hasMocks ? getMockReadme(props.interfaceNames) : getNoMockReadme();
|
|
9
|
+
return [_$createComponent(SourceFile, {
|
|
10
|
+
filetype: "md",
|
|
11
|
+
path: "README.md",
|
|
12
|
+
children: readme
|
|
13
|
+
}), _$createComponent(SourceDirectory, {
|
|
14
|
+
path: "docs",
|
|
15
|
+
get children() {
|
|
16
|
+
return [_$createComponent(SourceFile, {
|
|
17
|
+
filetype: "md",
|
|
18
|
+
path: "usage.md",
|
|
19
|
+
get children() {
|
|
20
|
+
return getUsageDoc();
|
|
21
|
+
}
|
|
22
|
+
}), _$createComponent(SourceFile, {
|
|
23
|
+
filetype: "md",
|
|
24
|
+
path: "emitter.md",
|
|
25
|
+
get children() {
|
|
26
|
+
return getEmitterDoc();
|
|
27
|
+
}
|
|
28
|
+
})];
|
|
29
|
+
}
|
|
30
|
+
})];
|
|
22
31
|
}
|
|
23
32
|
function getNoMockReadme() {
|
|
24
|
-
|
|
33
|
+
return `---
|
|
25
34
|
title: Next Steps
|
|
26
35
|
---
|
|
27
36
|
|
|
@@ -34,6 +43,28 @@ title: Next Steps
|
|
|
34
43
|
|
|
35
44
|
## More Information
|
|
36
45
|
|
|
46
|
+
- See [Code Layout](docs/usage.md) for information about the generated code
|
|
47
|
+
- See [Emitter Usage](docs/emitter.md) for details on how to use the emitter.
|
|
48
|
+
- File issues or provide feedback in [TypeSpec Issues](https://github.com/microsoft/typespec/issues/new/choose)
|
|
49
|
+
- Get information about Typespec on the [TypeSpec website](https://typespec.io)
|
|
50
|
+
`;
|
|
51
|
+
}
|
|
52
|
+
function getMockReadme(interfaceNames) {
|
|
53
|
+
const mockLines = interfaceNames.map(name => ` - \`mocks/${name}.cs\``).join("\n");
|
|
54
|
+
return `---
|
|
55
|
+
title: Next Steps
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
# Next Steps
|
|
59
|
+
|
|
60
|
+
- Use the SwaggerUI endpoint to test out the running service
|
|
61
|
+
- Update business logic mocks with real business logic
|
|
62
|
+
${mockLines}
|
|
63
|
+
- Update \`mocks/MockRegistration.cs\` if you update the constructor of business logic implementations.
|
|
64
|
+
- Update development and production configuration to suit your needs
|
|
65
|
+
|
|
66
|
+
## More Information
|
|
67
|
+
|
|
37
68
|
- See [Code Layout](docs/usage.md) for information about the generated code
|
|
38
69
|
- See [Emitter Usage](docs/emitter.md) for details on how to use the emitter.
|
|
39
70
|
- File issues or provide feedback in [TypeSpec Issues](https://github.com/microsoft/typespec/issues/new/choose)
|
|
@@ -41,7 +72,7 @@ title: Next Steps
|
|
|
41
72
|
`;
|
|
42
73
|
}
|
|
43
74
|
function getUsageDoc() {
|
|
44
|
-
|
|
75
|
+
return `---
|
|
45
76
|
title: Generated C-Sharp Overview
|
|
46
77
|
---
|
|
47
78
|
|
|
@@ -127,7 +158,7 @@ After successful generation, you should:
|
|
|
127
158
|
`;
|
|
128
159
|
}
|
|
129
160
|
function getEmitterDoc() {
|
|
130
|
-
|
|
161
|
+
return `---
|
|
131
162
|
title: "Emitter usage"
|
|
132
163
|
---
|
|
133
164
|
|
|
@@ -213,25 +244,4 @@ The service http port when hosting the project locally.
|
|
|
213
244
|
The service https port when hosting the project locally.
|
|
214
245
|
`;
|
|
215
246
|
}
|
|
216
|
-
|
|
217
|
-
return `---
|
|
218
|
-
title: Next Steps
|
|
219
|
-
---
|
|
220
|
-
|
|
221
|
-
# Next Steps
|
|
222
|
-
|
|
223
|
-
- Use the SwaggerUI endpoint to test out the running service
|
|
224
|
-
- Update business logic mocks with real business logic
|
|
225
|
-
${mocks.flatMap((m) => ` - \`mocks/${m.className}.cs\``).join("\n")}
|
|
226
|
-
- Update \`mocks/MockRegistration.cs\` if you update the constructor of business logic implementations.
|
|
227
|
-
- Update development and production configuration to suit your needs
|
|
228
|
-
|
|
229
|
-
## More Information
|
|
230
|
-
|
|
231
|
-
- See [Code Layout](docs/usage.md) for information about the generated code
|
|
232
|
-
- See [Emitter Usage](docs/emitter.md) for details on how to use the emitter.
|
|
233
|
-
- File issues or provide feedback in [TypeSpec Issues](https://github.com/microsoft/typespec/issues/new/choose)
|
|
234
|
-
- Get information about Typespec on the [TypeSpec website](https://typespec.io)
|
|
235
|
-
`;
|
|
236
|
-
}
|
|
237
|
-
//# sourceMappingURL=doc.js.map
|
|
247
|
+
//# sourceMappingURL=documentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SourceDirectory","SourceFile","Documentation","props","hasMocks","interfaceNames","length","readme","getMockReadme","getNoMockReadme","_$createComponent","filetype","path","children","getUsageDoc","getEmitterDoc","mockLines","map","name","join"],"sources":["../../../../src/components/scaffolding/documentation.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,eAAe,EAAEC,UAAU,QAAuB,gBAAgB;AAS3E;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAY;EACjE,MAAMC,QAAQ,GAAGD,KAAK,CAACE,cAAc,CAACC,MAAM,GAAG,CAAC;EAChD,MAAMC,MAAM,GAAGH,QAAQ,GAAGI,aAAa,CAACL,KAAK,CAACE,cAAc,CAAC,GAAGI,eAAe,CAAC,CAAC;EAEjF,QAAAC,iBAAA,CAEKT,UAAU;IAACU,QAAQ;IAAMC,IAAI;IAAAC,QAAA,EAC3BN;EAAM,IAAAG,iBAAA,CAERV,eAAe;IAACY,IAAI;IAAA,IAAAC,SAAA;MAAA,QAAAH,iBAAA,CAClBT,UAAU;QAACU,QAAQ;QAAMC,IAAI;QAAA,IAAAC,SAAA;UAAA,OAC3BC,WAAW,CAAC,CAAC;QAAA;MAAA,IAAAJ,iBAAA,CAEfT,UAAU;QAACU,QAAQ;QAAMC,IAAI;QAAA,IAAAC,SAAA;UAAA,OAC3BE,aAAa,CAAC,CAAC;QAAA;MAAA;IAAA;EAAA;AAK1B;AAEA,SAASN,eAAeA,CAAA,EAAW;EACjC,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASD,aAAaA,CAACH,cAAwB,EAAU;EACvD,MAAMW,SAAS,GAAGX,cAAc,CAACY,GAAG,CAAEC,IAAI,IAAK,eAAeA,IAAI,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EACrF,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEH,SAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASF,WAAWA,CAAA,EAAW;EAC7B,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASC,aAAaA,CAAA,EAAW;EAC/B,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Children } from "@alloy-js/core";
|
|
2
|
+
export interface MockHelpersProps {
|
|
3
|
+
interfaceRegistrations: string[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Renders the mock helper files: IInitializer, Initializer, MockRegistration.
|
|
7
|
+
* These go under the TypeSpec.Helpers namespace.
|
|
8
|
+
*/
|
|
9
|
+
export declare function MockHelpers(props: MockHelpersProps): Children;
|
|
10
|
+
//# sourceMappingURL=mock-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-helpers.d.ts","sourceRoot":"","sources":["../../../../src/components/scaffolding/mock-helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI5E,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,QAAQ,CAY7D"}
|