@typespec/http-server-csharp 0.58.0-alpha.1 → 0.58.0-alpha.10-dev.1
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/cmd/hscs.js +2 -0
- package/dist/src/cli/cli.d.ts +2 -0
- package/dist/src/cli/cli.d.ts.map +1 -0
- package/dist/src/cli/cli.js +124 -0
- package/dist/src/cli/cli.js.map +1 -0
- package/dist/src/{attributes.d.ts → lib/attributes.d.ts} +1 -1
- package/dist/src/lib/attributes.d.ts.map +1 -0
- package/dist/src/{attributes.js → lib/attributes.js} +52 -8
- package/dist/src/lib/attributes.js.map +1 -0
- package/dist/src/{boilerplate.d.ts → lib/boilerplate.d.ts} +2 -0
- package/dist/src/lib/boilerplate.d.ts.map +1 -0
- package/dist/src/{boilerplate.js → lib/boilerplate.js} +105 -40
- package/dist/src/lib/boilerplate.js.map +1 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js.map +1 -0
- package/dist/src/{interfaces.d.ts → lib/interfaces.d.ts} +23 -0
- package/dist/src/lib/interfaces.d.ts.map +1 -0
- package/dist/src/{interfaces.js → lib/interfaces.js} +7 -3
- package/dist/src/lib/interfaces.js.map +1 -0
- package/dist/src/{lib.d.ts → lib/lib.d.ts} +25 -1
- package/dist/src/lib/lib.d.ts.map +1 -0
- package/dist/src/{lib.js → lib/lib.js} +31 -0
- package/dist/src/lib/lib.js.map +1 -0
- package/dist/src/lib/scaffolding.d.ts +21 -0
- package/dist/src/lib/scaffolding.d.ts.map +1 -0
- package/dist/src/lib/scaffolding.js +412 -0
- package/dist/src/lib/scaffolding.js.map +1 -0
- package/dist/src/lib/service.d.ts.map +1 -0
- package/dist/src/{service.js → lib/service.js} +332 -230
- package/dist/src/lib/service.js.map +1 -0
- package/dist/src/lib/testing/index.d.ts.map +1 -0
- package/dist/src/{testing → lib/testing}/index.js +1 -0
- package/dist/src/lib/testing/index.js.map +1 -0
- package/dist/src/lib/type-helpers.d.ts.map +1 -0
- package/dist/src/lib/type-helpers.js.map +1 -0
- package/dist/src/lib/utils.d.ts +88 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +1173 -0
- package/dist/src/lib/utils.js.map +1 -0
- package/package.json +32 -23
- package/dist/src/attributes.d.ts.map +0 -1
- package/dist/src/attributes.js.map +0 -1
- package/dist/src/boilerplate.d.ts.map +0 -1
- package/dist/src/boilerplate.js.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/interfaces.d.ts.map +0 -1
- package/dist/src/interfaces.js.map +0 -1
- package/dist/src/lib.d.ts.map +0 -1
- package/dist/src/lib.js.map +0 -1
- package/dist/src/service.d.ts.map +0 -1
- package/dist/src/service.js.map +0 -1
- package/dist/src/testing/index.d.ts.map +0 -1
- package/dist/src/testing/index.js.map +0 -1
- package/dist/src/type-helpers.d.ts.map +0 -1
- package/dist/src/type-helpers.js.map +0 -1
- package/dist/src/utils.d.ts +0 -48
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js +0 -628
- package/dist/src/utils.js.map +0 -1
- /package/dist/src/{index.d.ts → lib/index.d.ts} +0 -0
- /package/dist/src/{index.js → lib/index.js} +0 -0
- /package/dist/src/{service.d.ts → lib/service.d.ts} +0 -0
- /package/dist/src/{testing → lib/testing}/index.d.ts +0 -0
- /package/dist/src/{type-helpers.d.ts → lib/type-helpers.d.ts} +0 -0
- /package/dist/src/{type-helpers.js → lib/type-helpers.js} +0 -0
package/cmd/hscs.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { resolvePath, typespecVersion } from "@typespec/compiler";
|
|
3
|
+
import { spawn } from "cross-spawn";
|
|
4
|
+
import pc from "picocolors";
|
|
5
|
+
import yargs from "yargs";
|
|
6
|
+
import { hideBin } from "yargs/helpers";
|
|
7
|
+
async function main() {
|
|
8
|
+
console.log(`TypeSpec Http Server Emitter for C-Sharp v${typespecVersion}\n`);
|
|
9
|
+
await yargs(hideBin(process.argv))
|
|
10
|
+
.scriptName("hscs")
|
|
11
|
+
.help()
|
|
12
|
+
.strict()
|
|
13
|
+
.parserConfiguration({
|
|
14
|
+
"greedy-arrays": false,
|
|
15
|
+
"boolean-negation": false,
|
|
16
|
+
})
|
|
17
|
+
.command("scaffold [--use-swaggerui] <project-directory> <path-to-spec>", "Generate a complete project with mock implementation at the given project-directory for the given spec. This required dotnet 9: https://dotnet.microsoft.com/download.", (cmd) => {
|
|
18
|
+
return cmd
|
|
19
|
+
.option("use-swaggerui", {
|
|
20
|
+
description: "Include generated OpenAPI and a SwaggerUI endpoint in the service project. THIS OPTION REQUIRES '@typespec/openapi3' as a dependency of your typespec project.",
|
|
21
|
+
type: "boolean",
|
|
22
|
+
default: false,
|
|
23
|
+
})
|
|
24
|
+
.positional("project-directory", {
|
|
25
|
+
description: "Path to the directory where the project will be created.",
|
|
26
|
+
type: "string",
|
|
27
|
+
demandOption: true,
|
|
28
|
+
})
|
|
29
|
+
.positional("path-to-spec", {
|
|
30
|
+
description: "The path to the spec to generate a project for",
|
|
31
|
+
type: "string",
|
|
32
|
+
demandOption: true,
|
|
33
|
+
});
|
|
34
|
+
}, async (args) => {
|
|
35
|
+
const projectDir = resolvePath(process.cwd(), args["project-directory"]);
|
|
36
|
+
const pathToSpec = resolvePath(process.cwd(), args["path-to-spec"]);
|
|
37
|
+
const useSwagger = args["use-swaggerui"];
|
|
38
|
+
console.log(pc.bold("Generating new Project"));
|
|
39
|
+
let result = await runScriptAsync("dotnet", ["new", "web", "-o", projectDir, "--force"]);
|
|
40
|
+
if (result !== 0) {
|
|
41
|
+
console.log(pc.bold("Dotnet version 9 cli is required for scaffolding. Download here: https://dotnet.microsoft.com/download "));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (useSwagger) {
|
|
45
|
+
console.log(pc.bold("Adding OpenApi generation support"));
|
|
46
|
+
console.log(pc.green(`> dotnet add ${projectDir} package SwashBuckle.AspNetCore`));
|
|
47
|
+
result = await runScriptAsync("dotnet", [
|
|
48
|
+
"add",
|
|
49
|
+
projectDir,
|
|
50
|
+
"package",
|
|
51
|
+
"SwashBuckle.AspNetCore",
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
console.log(pc.bold("Compiling spec with mock implementations"));
|
|
55
|
+
const generatedTargetDir = resolvePath(process.cwd(), projectDir, "generated");
|
|
56
|
+
const generatedOpenApiDir = resolvePath(process.cwd(), projectDir, "openapi");
|
|
57
|
+
const compileArgs = [
|
|
58
|
+
"tsp",
|
|
59
|
+
"compile",
|
|
60
|
+
pathToSpec,
|
|
61
|
+
"--emit",
|
|
62
|
+
"@typespec/http-server-csharp",
|
|
63
|
+
"--option",
|
|
64
|
+
`@typespec/http-server-csharp.emitter-output-dir=${generatedTargetDir}`,
|
|
65
|
+
"--option",
|
|
66
|
+
"@typespec/http-server-csharp.emit-mocks=all",
|
|
67
|
+
];
|
|
68
|
+
const swaggerArgs = [
|
|
69
|
+
"--emit",
|
|
70
|
+
"@typespec/openapi3",
|
|
71
|
+
"--option",
|
|
72
|
+
`@typespec/openapi3.emitter-output-dir=${generatedOpenApiDir}`,
|
|
73
|
+
"--option",
|
|
74
|
+
"@typespec/http-server-csharp.use-swaggerui=true",
|
|
75
|
+
];
|
|
76
|
+
if (useSwagger)
|
|
77
|
+
compileArgs.push(...swaggerArgs);
|
|
78
|
+
result = await runScriptAsync("npx", compileArgs);
|
|
79
|
+
if (result === 0) {
|
|
80
|
+
console.log(pc.bold(`Your project was successfully created at "${projectDir}"`));
|
|
81
|
+
console.log(`You can build and start the project using 'dotnet run --project ${projectDir}'`);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
console.log(pc.bold("There were one or more errors"));
|
|
85
|
+
if (useSwagger) {
|
|
86
|
+
console.log("You must have @typespec/openapi3 as a dependency in your typespec project for use of SwaggerUI. ");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
.version(typespecVersion)
|
|
91
|
+
.demandCommand(1, "You must use one of the supported commands.").argv;
|
|
92
|
+
}
|
|
93
|
+
function internalError(error) {
|
|
94
|
+
// NOTE: An expected error, like one thrown for bad input, shouldn't reach
|
|
95
|
+
// here, but be handled somewhere else. If we reach here, it should be
|
|
96
|
+
// considered a bug and therefore we should not suppress the stack trace as
|
|
97
|
+
// that risks losing it in the case of a bug that does not repro easily.
|
|
98
|
+
console.log(error);
|
|
99
|
+
}
|
|
100
|
+
function runScriptAsync(cmd, args) {
|
|
101
|
+
let resolver;
|
|
102
|
+
let rejecter;
|
|
103
|
+
const promise = new Promise((resolve, reject) => {
|
|
104
|
+
resolver = resolve;
|
|
105
|
+
rejecter = reject;
|
|
106
|
+
});
|
|
107
|
+
console.log(pc.green(`> ${cmd} ${args.join(" ")}`));
|
|
108
|
+
const proc = spawn(cmd, args);
|
|
109
|
+
proc.stdout?.on("data", (data) => console.log(pc.dim(data)));
|
|
110
|
+
proc.stderr?.on("data", (data) => {
|
|
111
|
+
console.error(data);
|
|
112
|
+
rejecter(data);
|
|
113
|
+
});
|
|
114
|
+
proc.on("close", (_, __) => {
|
|
115
|
+
resolver(proc.exitCode || 0);
|
|
116
|
+
});
|
|
117
|
+
return promise;
|
|
118
|
+
}
|
|
119
|
+
process.on("unhandledRejection", (error) => {
|
|
120
|
+
console.error("Unhandled promise rejection!");
|
|
121
|
+
internalError(error);
|
|
122
|
+
});
|
|
123
|
+
main().catch(internalError);
|
|
124
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,6CAA6C,eAAe,IAAI,CAAC,CAAC;IAE9E,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/B,UAAU,CAAC,MAAM,CAAC;SAClB,IAAI,EAAE;SACN,MAAM,EAAE;SACR,mBAAmB,CAAC;QACnB,eAAe,EAAE,KAAK;QACtB,kBAAkB,EAAE,KAAK;KAC1B,CAAC;SACD,OAAO,CACN,+DAA+D,EAC/D,yKAAyK,EACzK,CAAC,GAAG,EAAE,EAAE;QACN,OAAO,GAAG;aACP,MAAM,CAAC,eAAe,EAAE;YACvB,WAAW,EACT,iKAAiK;YACnK,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf,CAAC;aACD,UAAU,CAAC,mBAAmB,EAAE;YAC/B,WAAW,EAAE,0DAA0D;YACvE,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI;SACnB,CAAC;aACD,UAAU,CAAC,cAAc,EAAE;YAC1B,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;IACP,CAAC,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACpE,MAAM,UAAU,GAAY,IAAI,CAAC,eAAe,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC/C,IAAI,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;QACzF,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CACT,EAAE,CAAC,IAAI,CACL,0GAA0G,CAC3G,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,UAAU,iCAAiC,CAAC,CAAC,CAAC;YACnF,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE;gBACtC,KAAK;gBACL,UAAU;gBACV,SAAS;gBACT,wBAAwB;aACzB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACjE,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC/E,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAa;YAC5B,KAAK;YACL,SAAS;YACT,UAAU;YACV,QAAQ;YACR,8BAA8B;YAC9B,UAAU;YACV,mDAAmD,kBAAkB,EAAE;YACvE,UAAU;YACV,6CAA6C;SAC9C,CAAC;QAEF,MAAM,WAAW,GAAa;YAC5B,QAAQ;YACR,oBAAoB;YACpB,UAAU;YACV,yCAAyC,mBAAmB,EAAE;YAC9D,UAAU;YACV,iDAAiD;SAClD,CAAC;QACF,IAAI,UAAU;YAAE,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACjD,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,6CAA6C,UAAU,GAAG,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,GAAG,CACT,mEAAmE,UAAU,GAAG,CACjF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACtD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CACT,kGAAkG,CACnG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CACF;SACA,OAAO,CAAC,eAAe,CAAC;SACxB,aAAa,CAAC,CAAC,EAAE,6CAA6C,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,0EAA0E;IAC1E,sEAAsE;IACtE,2EAA2E;IAC3E,wEAAwE;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC;AAED,SAAS,cAAc,CAAC,GAAW,EAAE,IAAc;IACjD,IAAI,QAAuD,CAAC;IAC5D,IAAI,QAAkC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtD,QAAQ,GAAG,OAAO,CAAC;QACnB,QAAQ,GAAG,MAAM,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAc,EAAE,EAAE;IAClD,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC9C,aAAa,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -9,7 +9,7 @@ export declare function getFormatValue(program: Program, type: Scalar | ModelPro
|
|
|
9
9
|
* @param type The type to check
|
|
10
10
|
* @returns The attributes associated with the type, or none
|
|
11
11
|
*/
|
|
12
|
-
export declare function getEncodedNameAttribute(program: Program, type: ModelProperty): Attribute | undefined;
|
|
12
|
+
export declare function getEncodedNameAttribute(program: Program, type: ModelProperty, cSharpName?: string): Attribute | undefined;
|
|
13
13
|
/**
|
|
14
14
|
* Return the encoding attributes for model properties
|
|
15
15
|
* @param program The program being processed
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../src/lib/attributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,OAAO,EACP,MAAM,EACN,IAAI,EAUL,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,SAAS,EASV,MAAM,iBAAiB,CAAC;AAIzB,eAAO,MAAM,aAAa,EAAE,MAA2B,CAAC;AAExD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GAAG,aAAa,GAC3B,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAEjG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,SAAS,GAAG,SAAS,CAuDvB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,CA0BxF;AAoDD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAAG,MAAM,GAC3B,SAAS,GAAG,SAAS,CAgEvB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAAG,MAAM,GAC3B,SAAS,GAAG,SAAS,CA8CvB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAAG,MAAM,GAC3B,SAAS,GAAG,SAAS,CAgFvB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAyCvE;AAYD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAqC5F"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getEncode, getFormat, getMaxItems, getMaxValue, getMaxValueExclusive, getMinItems, getMinValue, getMinValueExclusive, resolveEncodedName, } from "@typespec/compiler";
|
|
2
|
+
import { camelCase } from "change-case";
|
|
2
3
|
import { Attribute, AttributeType, BooleanValue, CSharpType, HelperNamespace, NumericValue, Parameter, RawValue, StringValue, } from "./interfaces.js";
|
|
3
4
|
import { getStringConstraint, isArrayType } from "./type-helpers.js";
|
|
4
|
-
import {
|
|
5
|
+
import { getCSharpTypeForScalar } from "./utils.js";
|
|
5
6
|
export const JsonNamespace = "System.Text.Json";
|
|
6
7
|
export function getEncodingValue(program, type) {
|
|
7
8
|
const value = getEncode(program, type);
|
|
@@ -16,7 +17,7 @@ export function getFormatValue(program, type) {
|
|
|
16
17
|
* @param type The type to check
|
|
17
18
|
* @returns The attributes associated with the type, or none
|
|
18
19
|
*/
|
|
19
|
-
export function getEncodedNameAttribute(program, type) {
|
|
20
|
+
export function getEncodedNameAttribute(program, type, cSharpName) {
|
|
20
21
|
const encodedName = resolveEncodedName(program, type, "application/json");
|
|
21
22
|
if (encodedName !== type.name) {
|
|
22
23
|
const attr = new Attribute(new AttributeType({
|
|
@@ -36,6 +37,24 @@ export function getEncodedNameAttribute(program, type) {
|
|
|
36
37
|
}));
|
|
37
38
|
return attr;
|
|
38
39
|
}
|
|
40
|
+
if (cSharpName && type.name !== camelCase(cSharpName)) {
|
|
41
|
+
const attr = new Attribute(new AttributeType({
|
|
42
|
+
name: "JsonPropertyName",
|
|
43
|
+
namespace: JsonNamespace,
|
|
44
|
+
}), []);
|
|
45
|
+
attr.parameters.push(new Parameter({
|
|
46
|
+
name: "name",
|
|
47
|
+
value: new StringValue(type.name),
|
|
48
|
+
optional: false,
|
|
49
|
+
type: new CSharpType({
|
|
50
|
+
name: "string",
|
|
51
|
+
namespace: "System",
|
|
52
|
+
isBuiltIn: true,
|
|
53
|
+
isValueType: true,
|
|
54
|
+
}),
|
|
55
|
+
}));
|
|
56
|
+
return attr;
|
|
57
|
+
}
|
|
39
58
|
return undefined;
|
|
40
59
|
}
|
|
41
60
|
/**
|
|
@@ -59,7 +78,7 @@ export function getEncodingAttributes(program, type) {
|
|
|
59
78
|
if (propertyType.encoding !== undefined) {
|
|
60
79
|
switch (propertyType.encoding.name.toLowerCase()) {
|
|
61
80
|
case "base64url":
|
|
62
|
-
result.push(getJsonConverterAttribute("
|
|
81
|
+
result.push(getJsonConverterAttribute("Base64UrlJsonConverter"));
|
|
63
82
|
break;
|
|
64
83
|
case "unixtimestamp":
|
|
65
84
|
result.push(getJsonConverterAttribute("UnixEpochDateTimeOffsetConverter"));
|
|
@@ -289,15 +308,40 @@ export function getNumericConstraintAttribute(program, type) {
|
|
|
289
308
|
export function getSafeIntAttribute(type) {
|
|
290
309
|
if (type.name.toLowerCase() !== "safeint")
|
|
291
310
|
return undefined;
|
|
292
|
-
|
|
293
|
-
name:
|
|
311
|
+
const attr = new Attribute(new AttributeType({
|
|
312
|
+
name: `NumericConstraint<long>`,
|
|
294
313
|
namespace: HelperNamespace,
|
|
295
314
|
}), []);
|
|
315
|
+
attr.parameters.push(new Parameter({
|
|
316
|
+
name: "MinValue",
|
|
317
|
+
value: new NumericValue(-9007199254740991),
|
|
318
|
+
optional: true,
|
|
319
|
+
type: new CSharpType({
|
|
320
|
+
name: "long",
|
|
321
|
+
namespace: "System",
|
|
322
|
+
isBuiltIn: true,
|
|
323
|
+
isValueType: true,
|
|
324
|
+
isNullable: false,
|
|
325
|
+
}),
|
|
326
|
+
}));
|
|
327
|
+
attr.parameters.push(new Parameter({
|
|
328
|
+
name: "MaxValue",
|
|
329
|
+
value: new NumericValue(9007199254740991),
|
|
330
|
+
optional: true,
|
|
331
|
+
type: new CSharpType({
|
|
332
|
+
name: "long",
|
|
333
|
+
namespace: "System",
|
|
334
|
+
isBuiltIn: true,
|
|
335
|
+
isValueType: true,
|
|
336
|
+
isNullable: false,
|
|
337
|
+
}),
|
|
338
|
+
}));
|
|
339
|
+
return attr;
|
|
296
340
|
}
|
|
297
341
|
function getEnumAttribute(type, cSharpName) {
|
|
298
342
|
return new Attribute(new AttributeType({
|
|
299
|
-
name: `
|
|
300
|
-
namespace: "System.Text.Json",
|
|
343
|
+
name: `JsonConverter(typeof(JsonStringEnumConverter))`,
|
|
344
|
+
namespace: "System.Text.Json.Serialization",
|
|
301
345
|
}), []);
|
|
302
346
|
}
|
|
303
347
|
export function getAttributes(program, type, cSharpName) {
|
|
@@ -312,7 +356,7 @@ export function getAttributes(program, type, cSharpName) {
|
|
|
312
356
|
const arrayAttr = getArrayConstraintAttribute(program, type);
|
|
313
357
|
const stringAttr = getStringConstraintAttribute(program, type);
|
|
314
358
|
const numberAttr = getNumericConstraintAttribute(program, type);
|
|
315
|
-
const name = getEncodedNameAttribute(program, type);
|
|
359
|
+
const name = getEncodedNameAttribute(program, type, cSharpName);
|
|
316
360
|
if (arrayAttr)
|
|
317
361
|
result.add(arrayAttr);
|
|
318
362
|
if (stringAttr)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../../src/lib/attributes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { AssetEmitter } from "@typespec/compiler/emitter-framework";
|
|
2
2
|
import { LibrarySourceFile } from "./interfaces.js";
|
|
3
|
+
export declare const GeneratedFileHeader = "// Generated by @typespec/http-server-csharp\n// <auto-generated />";
|
|
4
|
+
export declare const GeneratedFileHeaderWithNullable: string;
|
|
3
5
|
export declare function getSerializationSourceFiles(emitter: AssetEmitter<string, Record<string, never>>): LibrarySourceFile[];
|
|
4
6
|
//# sourceMappingURL=boilerplate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boilerplate.d.ts","sourceRoot":"","sources":["../../../src/lib/boilerplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,eAAO,MAAM,mBAAmB,wEACV,CAAC;AACvB,eAAO,MAAM,+BAA+B,EAAE,MAE7B,CAAC;AAElB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GACnD,iBAAiB,EAAE,CA4DrB"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { LibrarySourceFile } from "./interfaces.js";
|
|
2
|
+
export const GeneratedFileHeader = `// Generated by @typespec/http-server-csharp
|
|
3
|
+
// <auto-generated />`;
|
|
4
|
+
export const GeneratedFileHeaderWithNullable = `// Generated by @typespec/http-server-csharp
|
|
5
|
+
// <auto-generated />
|
|
6
|
+
#nullable enable`;
|
|
2
7
|
export function getSerializationSourceFiles(emitter) {
|
|
3
8
|
const sourceFiles = [];
|
|
4
9
|
sourceFiles.push(new LibrarySourceFile({
|
|
@@ -6,9 +11,9 @@ export function getSerializationSourceFiles(emitter) {
|
|
|
6
11
|
emitter: emitter,
|
|
7
12
|
getContents: getTimeSpanDurationConverter,
|
|
8
13
|
}), new LibrarySourceFile({
|
|
9
|
-
filename: "
|
|
14
|
+
filename: "Base64UrlJsonConverter.cs",
|
|
10
15
|
emitter: emitter,
|
|
11
|
-
getContents:
|
|
16
|
+
getContents: getBase64UrlJsonConverter,
|
|
12
17
|
}), new LibrarySourceFile({
|
|
13
18
|
filename: "UnixEpochDateTimeConverter.cs",
|
|
14
19
|
emitter: emitter,
|
|
@@ -37,14 +42,19 @@ export function getSerializationSourceFiles(emitter) {
|
|
|
37
42
|
filename: "NumericArrayConstraintAttribute.cs",
|
|
38
43
|
emitter: emitter,
|
|
39
44
|
getContents: getNumericArrayConstraintConverter,
|
|
45
|
+
}), new LibrarySourceFile({
|
|
46
|
+
filename: "IJsonSerializationProvider.cs",
|
|
47
|
+
emitter: emitter,
|
|
48
|
+
getContents: getJsonProviderInterface,
|
|
49
|
+
}), new LibrarySourceFile({
|
|
50
|
+
filename: "JsonSerializationProvider.cs",
|
|
51
|
+
emitter: emitter,
|
|
52
|
+
getContents: getJsonProvider,
|
|
40
53
|
}));
|
|
41
54
|
return sourceFiles;
|
|
42
55
|
}
|
|
43
56
|
function getNumericConstraintConverter() {
|
|
44
|
-
return
|
|
45
|
-
// Licensed under the MIT License.
|
|
46
|
-
// <auto-generated />
|
|
47
|
-
#nullable enable
|
|
57
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
48
58
|
|
|
49
59
|
using System.Numerics;
|
|
50
60
|
using System.Text.Json;
|
|
@@ -144,10 +154,7 @@ function getNumericConstraintConverter() {
|
|
|
144
154
|
}`;
|
|
145
155
|
}
|
|
146
156
|
function getStringConstraintConverter() {
|
|
147
|
-
return
|
|
148
|
-
// Licensed under the MIT License.
|
|
149
|
-
// <auto-generated />
|
|
150
|
-
#nullable enable
|
|
157
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
151
158
|
|
|
152
159
|
using System.Text.Json;
|
|
153
160
|
using System.Text.Json.Serialization;
|
|
@@ -268,10 +275,7 @@ function getStringConstraintConverter() {
|
|
|
268
275
|
}`;
|
|
269
276
|
}
|
|
270
277
|
function getArrayConstraintConverter() {
|
|
271
|
-
return
|
|
272
|
-
// Licensed under the MIT License.
|
|
273
|
-
// <auto-generated />
|
|
274
|
-
#nullable enable
|
|
278
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
275
279
|
|
|
276
280
|
using System.Text.Json;
|
|
277
281
|
using System.Text.Json.Serialization;
|
|
@@ -383,10 +387,7 @@ function getArrayConstraintConverter() {
|
|
|
383
387
|
}`;
|
|
384
388
|
}
|
|
385
389
|
function getNumericArrayConstraintConverter() {
|
|
386
|
-
return
|
|
387
|
-
// Licensed under the MIT License.
|
|
388
|
-
// <auto-generated />
|
|
389
|
-
#nullable enable
|
|
390
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
390
391
|
|
|
391
392
|
using System.Numerics;
|
|
392
393
|
using System.Text.Json;
|
|
@@ -420,10 +421,7 @@ public class NumericArrayConstraintAttribute<T> : ArrayConstraintAttribute<T> wh
|
|
|
420
421
|
}`;
|
|
421
422
|
}
|
|
422
423
|
function getStringArrayConstraintConverter() {
|
|
423
|
-
return
|
|
424
|
-
// Licensed under the MIT License.
|
|
425
|
-
// <auto-generated />
|
|
426
|
-
#nullable enable
|
|
424
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
427
425
|
|
|
428
426
|
using System.Text.Json;
|
|
429
427
|
using System.Text.Json.Serialization;
|
|
@@ -454,10 +452,7 @@ public class StringArrayConstraintAttribute : ArrayConstraintAttribute<string>
|
|
|
454
452
|
}`;
|
|
455
453
|
}
|
|
456
454
|
function getTimeSpanDurationConverter() {
|
|
457
|
-
return
|
|
458
|
-
// Licensed under the MIT License.
|
|
459
|
-
// <auto-generated />
|
|
460
|
-
#nullable enable
|
|
455
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
461
456
|
|
|
462
457
|
using System.Text.Json;
|
|
463
458
|
using System.Text.Json.Serialization;
|
|
@@ -468,7 +463,7 @@ function getTimeSpanDurationConverter() {
|
|
|
468
463
|
/// <summary>
|
|
469
464
|
/// Converts between Json duration and .Net TimeSpan
|
|
470
465
|
/// </summary>
|
|
471
|
-
public class
|
|
466
|
+
public class TimeSpanDurationConverter : JsonConverter<TimeSpan>
|
|
472
467
|
{
|
|
473
468
|
public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
474
469
|
{
|
|
@@ -488,11 +483,8 @@ function getTimeSpanDurationConverter() {
|
|
|
488
483
|
}
|
|
489
484
|
`;
|
|
490
485
|
}
|
|
491
|
-
function
|
|
492
|
-
return
|
|
493
|
-
// Licensed under the MIT License.
|
|
494
|
-
// <auto-generated />
|
|
495
|
-
#nullable enable
|
|
486
|
+
function getBase64UrlJsonConverter() {
|
|
487
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
496
488
|
|
|
497
489
|
using System.Text.Json;
|
|
498
490
|
using System.Text.Json.Serialization;
|
|
@@ -536,10 +528,7 @@ function getBase64UrlConverter() {
|
|
|
536
528
|
`;
|
|
537
529
|
}
|
|
538
530
|
function getUnixEpochDateTimeConverter() {
|
|
539
|
-
return
|
|
540
|
-
// Licensed under the MIT License.
|
|
541
|
-
// <auto-generated />
|
|
542
|
-
#nullable enable
|
|
531
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
543
532
|
|
|
544
533
|
using System.Text.Json;
|
|
545
534
|
using System.Text.Json.Serialization;
|
|
@@ -569,10 +558,7 @@ function getUnixEpochDateTimeConverter() {
|
|
|
569
558
|
`;
|
|
570
559
|
}
|
|
571
560
|
function getUnixEpochDateTimeOffsetConverter() {
|
|
572
|
-
return
|
|
573
|
-
// Licensed under the MIT License.
|
|
574
|
-
// <auto-generated />
|
|
575
|
-
#nullable enable
|
|
561
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
576
562
|
|
|
577
563
|
using System.Text.Json;
|
|
578
564
|
using System.Text.Json.Serialization;
|
|
@@ -602,4 +588,83 @@ function getUnixEpochDateTimeOffsetConverter() {
|
|
|
602
588
|
}
|
|
603
589
|
`;
|
|
604
590
|
}
|
|
591
|
+
function getJsonProviderInterface() {
|
|
592
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
593
|
+
|
|
594
|
+
using System.Text.Json;
|
|
595
|
+
using System.Text.Json.Serialization;
|
|
596
|
+
|
|
597
|
+
namespace TypeSpec.Helpers
|
|
598
|
+
{
|
|
599
|
+
/// <summary>
|
|
600
|
+
/// Interface for Json serialization, suitable for providing a service in ASP.Net dependency injection
|
|
601
|
+
/// </summary>
|
|
602
|
+
public interface IJsonSerializationProvider
|
|
603
|
+
{
|
|
604
|
+
/// <summary>
|
|
605
|
+
/// Serialize an object to a JSON string
|
|
606
|
+
/// </summary>
|
|
607
|
+
/// <typeparam name="T">The type of the object</typeparam>
|
|
608
|
+
/// <param name="value">The object to serialize</param>
|
|
609
|
+
/// <returns>A string representing the serialized object</returns>
|
|
610
|
+
string Serialize<T>(T value);
|
|
611
|
+
|
|
612
|
+
/// <summary>
|
|
613
|
+
/// Create an object from a json string
|
|
614
|
+
/// </summary>
|
|
615
|
+
/// <typeparam name="T">The type of the object represented in the string</typeparam>
|
|
616
|
+
/// <param name="value">The strign to deserialize</param>
|
|
617
|
+
/// <returns>The deserialized object, or null</returns>
|
|
618
|
+
T? Deserialize<T>(string value);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
`;
|
|
622
|
+
}
|
|
623
|
+
function getJsonProvider() {
|
|
624
|
+
return `${GeneratedFileHeaderWithNullable}
|
|
625
|
+
|
|
626
|
+
using System.Text.Json;
|
|
627
|
+
using System.Text.Json.Serialization;
|
|
628
|
+
|
|
629
|
+
namespace TypeSpec.Helpers
|
|
630
|
+
{
|
|
631
|
+
/// <summary>
|
|
632
|
+
/// Standard implementation of IJsonSerializationProvider
|
|
633
|
+
/// </summary>
|
|
634
|
+
public class JsonSerializationProvider : IJsonSerializationProvider
|
|
635
|
+
{
|
|
636
|
+
/// <summary>
|
|
637
|
+
/// The options to use for serialization
|
|
638
|
+
/// </summary>
|
|
639
|
+
public virtual JsonSerializerOptions Options { get; } = new JsonSerializerOptions
|
|
640
|
+
{
|
|
641
|
+
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
|
642
|
+
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
/// <summary>
|
|
646
|
+
/// Create an object from a json string
|
|
647
|
+
/// </summary>
|
|
648
|
+
/// <typeparam name="T">The type of the object represented in the string</typeparam>
|
|
649
|
+
/// <param name="value">The strign to deserialize</param>
|
|
650
|
+
/// <returns>The deserialized object, or null</returns>
|
|
651
|
+
public virtual T? Deserialize<T>(string value)
|
|
652
|
+
{
|
|
653
|
+
return JsonSerializer.Deserialize<T>(value, Options);
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
/// <summary>
|
|
657
|
+
/// Serialize an object to a JSON string
|
|
658
|
+
/// </summary>
|
|
659
|
+
/// <typeparam name="T">The type of the object</typeparam>
|
|
660
|
+
/// <param name="value">The object to serialize</param>
|
|
661
|
+
/// <returns>A string representing the serialized object</returns>
|
|
662
|
+
public virtual string Serialize<T>(T value)
|
|
663
|
+
{
|
|
664
|
+
return JsonSerializer.Serialize(value, Options);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
`;
|
|
669
|
+
}
|
|
605
670
|
//# sourceMappingURL=boilerplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boilerplate.js","sourceRoot":"","sources":["../../../src/lib/boilerplate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,4BAA4B,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,yBAAyB,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
import { Model } from "@typespec/compiler";
|
|
2
2
|
import { AssetEmitter, Context, EmittedSourceFile, EmitterOutput, Scope, SourceFile } from "@typespec/compiler/emitter-framework";
|
|
3
|
+
import { HttpStatusCodeRange } from "@typespec/http";
|
|
4
|
+
import { HttpRequestParameterKind } from "@typespec/http/experimental/typekit";
|
|
3
5
|
export declare const HelperNamespace: string;
|
|
4
6
|
export interface CSharpTypeMetadata {
|
|
5
7
|
name: string;
|
|
6
8
|
namespace?: string;
|
|
7
9
|
}
|
|
10
|
+
export interface ResponseInfo {
|
|
11
|
+
statusCode: number | HttpStatusCodeRange | "*";
|
|
12
|
+
csharpStatusCode: string;
|
|
13
|
+
resultType: CSharpType;
|
|
14
|
+
}
|
|
8
15
|
export declare class CSharpType implements CSharpTypeMetadata {
|
|
9
16
|
name: string;
|
|
10
17
|
namespace: string;
|
|
11
18
|
isBuiltIn: boolean;
|
|
12
19
|
isValueType: boolean;
|
|
20
|
+
isNullable: boolean;
|
|
13
21
|
constructor(input: {
|
|
14
22
|
name: string;
|
|
15
23
|
namespace: string;
|
|
16
24
|
isBuiltIn?: boolean;
|
|
17
25
|
isValueType?: boolean;
|
|
26
|
+
isNullable?: boolean;
|
|
18
27
|
});
|
|
19
28
|
isNamespaceInScope(scope?: Scope<string>, visited?: Set<Scope<string>>): boolean;
|
|
20
29
|
getTypeReference(scope?: Scope<string>): string;
|
|
@@ -121,9 +130,23 @@ export declare class LibrarySourceFile {
|
|
|
121
130
|
filename: string;
|
|
122
131
|
getContents: () => string;
|
|
123
132
|
emitter: AssetEmitter<string, Record<string, never>>;
|
|
133
|
+
path?: string;
|
|
124
134
|
});
|
|
125
135
|
filename: string;
|
|
126
136
|
source: SourceFile<string>;
|
|
127
137
|
emitted: EmittedSourceFile;
|
|
138
|
+
path: string;
|
|
139
|
+
}
|
|
140
|
+
export interface CSharpOperationParameter {
|
|
141
|
+
name: string;
|
|
142
|
+
typeName: EmitterOutput<string>;
|
|
143
|
+
optional: boolean;
|
|
144
|
+
httpParameterKind: HttpRequestParameterKind;
|
|
145
|
+
httpParameterName?: string;
|
|
146
|
+
callName: string;
|
|
147
|
+
isExplicitBody: boolean;
|
|
148
|
+
nullable: boolean;
|
|
149
|
+
operationKind: "Http" | "BusinessLogic" | "All";
|
|
150
|
+
defaultValue?: string | boolean;
|
|
128
151
|
}
|
|
129
152
|
//# sourceMappingURL=interfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/lib/interfaces.ts"],"names":[],"mappings":"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"}
|