@typespec/http-specs 0.37.2
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/CHANGELOG.md +1 -0
- package/LICENSE +21 -0
- package/README.md +36 -0
- package/assets/image.jpg +0 -0
- package/assets/image.png +0 -0
- package/dist/specs/authentication/api-key/mockapi.d.ts +3 -0
- package/dist/specs/authentication/api-key/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/api-key/mockapi.js +45 -0
- package/dist/specs/authentication/api-key/mockapi.js.map +1 -0
- package/dist/specs/authentication/commonapi.d.ts +9 -0
- package/dist/specs/authentication/commonapi.d.ts.map +1 -0
- package/dist/specs/authentication/commonapi.js +19 -0
- package/dist/specs/authentication/commonapi.js.map +1 -0
- package/dist/specs/authentication/http/custom/mockapi.d.ts +3 -0
- package/dist/specs/authentication/http/custom/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/http/custom/mockapi.js +45 -0
- package/dist/specs/authentication/http/custom/mockapi.js.map +1 -0
- package/dist/specs/authentication/oauth2/mockapi.d.ts +3 -0
- package/dist/specs/authentication/oauth2/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/oauth2/mockapi.js +42 -0
- package/dist/specs/authentication/oauth2/mockapi.js.map +1 -0
- package/dist/specs/authentication/union/mockapi.d.ts +3 -0
- package/dist/specs/authentication/union/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/union/mockapi.js +37 -0
- package/dist/specs/authentication/union/mockapi.js.map +1 -0
- package/dist/specs/encode/bytes/mockapi.d.ts +3 -0
- package/dist/specs/encode/bytes/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/bytes/mockapi.js +179 -0
- package/dist/specs/encode/bytes/mockapi.js.map +1 -0
- package/dist/specs/encode/datetime/mockapi.d.ts +3 -0
- package/dist/specs/encode/datetime/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/datetime/mockapi.js +160 -0
- package/dist/specs/encode/datetime/mockapi.js.map +1 -0
- package/dist/specs/encode/duration/mockapi.d.ts +3 -0
- package/dist/specs/encode/duration/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/duration/mockapi.js +116 -0
- package/dist/specs/encode/duration/mockapi.js.map +1 -0
- package/dist/specs/encode/numeric/mockapi.d.ts +3 -0
- package/dist/specs/encode/numeric/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/numeric/mockapi.js +29 -0
- package/dist/specs/encode/numeric/mockapi.js.map +1 -0
- package/dist/specs/helper.d.ts +3 -0
- package/dist/specs/helper.d.ts.map +1 -0
- package/dist/specs/helper.js +7 -0
- package/dist/specs/helper.js.map +1 -0
- package/dist/specs/parameters/basic/mockapi.d.ts +3 -0
- package/dist/specs/parameters/basic/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/basic/mockapi.js +24 -0
- package/dist/specs/parameters/basic/mockapi.js.map +1 -0
- package/dist/specs/parameters/body-optionality/mockapi.d.ts +3 -0
- package/dist/specs/parameters/body-optionality/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/body-optionality/mockapi.js +62 -0
- package/dist/specs/parameters/body-optionality/mockapi.js.map +1 -0
- package/dist/specs/parameters/collection-format/mockapi.d.ts +3 -0
- package/dist/specs/parameters/collection-format/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/collection-format/mockapi.js +106 -0
- package/dist/specs/parameters/collection-format/mockapi.js.map +1 -0
- package/dist/specs/parameters/spread/mockapi.d.ts +3 -0
- package/dist/specs/parameters/spread/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/spread/mockapi.js +206 -0
- package/dist/specs/parameters/spread/mockapi.js.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts +40 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js +141 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js.map +1 -0
- package/dist/specs/payload/media-type/mockapi.d.ts +3 -0
- package/dist/specs/payload/media-type/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/media-type/mockapi.js +84 -0
- package/dist/specs/payload/media-type/mockapi.js.map +1 -0
- package/dist/specs/payload/multipart/mockapi.d.ts +3 -0
- package/dist/specs/payload/multipart/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/multipart/mockapi.js +153 -0
- package/dist/specs/payload/multipart/mockapi.js.map +1 -0
- package/dist/specs/payload/xml/mockapi.d.ts +15 -0
- package/dist/specs/payload/xml/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/xml/mockapi.js +189 -0
- package/dist/specs/payload/xml/mockapi.js.map +1 -0
- package/dist/specs/routes/mockapi.d.ts +3 -0
- package/dist/specs/routes/mockapi.d.ts.map +1 -0
- package/dist/specs/routes/mockapi.js +63 -0
- package/dist/specs/routes/mockapi.js.map +1 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.d.ts +3 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.d.ts.map +1 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.js +32 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.js.map +1 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.d.ts +3 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.d.ts.map +1 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.js +15 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.js.map +1 -0
- package/dist/specs/server/path/multiple/mockapi.d.ts +3 -0
- package/dist/specs/server/path/multiple/mockapi.d.ts.map +1 -0
- package/dist/specs/server/path/multiple/mockapi.js +27 -0
- package/dist/specs/server/path/multiple/mockapi.js.map +1 -0
- package/dist/specs/server/path/single/mockapi.d.ts +3 -0
- package/dist/specs/server/path/single/mockapi.d.ts.map +1 -0
- package/dist/specs/server/path/single/mockapi.js +15 -0
- package/dist/specs/server/path/single/mockapi.js.map +1 -0
- package/dist/specs/server/versions/not-versioned/mockapi.d.ts +3 -0
- package/dist/specs/server/versions/not-versioned/mockapi.d.ts.map +1 -0
- package/dist/specs/server/versions/not-versioned/mockapi.js +46 -0
- package/dist/specs/server/versions/not-versioned/mockapi.js.map +1 -0
- package/dist/specs/server/versions/versioned/mockapi.d.ts +3 -0
- package/dist/specs/server/versions/versioned/mockapi.d.ts.map +1 -0
- package/dist/specs/server/versions/versioned/mockapi.js +47 -0
- package/dist/specs/server/versions/versioned/mockapi.js.map +1 -0
- package/dist/specs/special-headers/conditional-request/mockapi.d.ts +3 -0
- package/dist/specs/special-headers/conditional-request/mockapi.d.ts.map +1 -0
- package/dist/specs/special-headers/conditional-request/mockapi.js +79 -0
- package/dist/specs/special-headers/conditional-request/mockapi.js.map +1 -0
- package/dist/specs/special-headers/repeatability/mockapi.d.ts +3 -0
- package/dist/specs/special-headers/repeatability/mockapi.d.ts.map +1 -0
- package/dist/specs/special-headers/repeatability/mockapi.js +36 -0
- package/dist/specs/special-headers/repeatability/mockapi.js.map +1 -0
- package/dist/specs/special-words/dec.d.ts +22 -0
- package/dist/specs/special-words/dec.d.ts.map +1 -0
- package/dist/specs/special-words/dec.js +37 -0
- package/dist/specs/special-words/dec.js.map +1 -0
- package/dist/specs/special-words/mockapi.d.ts +3 -0
- package/dist/specs/special-words/mockapi.d.ts.map +1 -0
- package/dist/specs/special-words/mockapi.js +246 -0
- package/dist/specs/special-words/mockapi.js.map +1 -0
- package/dist/specs/type/array/mockapi.d.ts +3 -0
- package/dist/specs/type/array/mockapi.d.ts.map +1 -0
- package/dist/specs/type/array/mockapi.js +104 -0
- package/dist/specs/type/array/mockapi.js.map +1 -0
- package/dist/specs/type/dictionary/mockapi.d.ts +3 -0
- package/dist/specs/type/dictionary/mockapi.d.ts.map +1 -0
- package/dist/specs/type/dictionary/mockapi.js +103 -0
- package/dist/specs/type/dictionary/mockapi.js.map +1 -0
- package/dist/specs/type/enum/extensible/mockapi.d.ts +3 -0
- package/dist/specs/type/enum/extensible/mockapi.d.ts.map +1 -0
- package/dist/specs/type/enum/extensible/mockapi.js +46 -0
- package/dist/specs/type/enum/extensible/mockapi.js.map +1 -0
- package/dist/specs/type/enum/fixed/mockapi.d.ts +3 -0
- package/dist/specs/type/enum/fixed/mockapi.d.ts.map +1 -0
- package/dist/specs/type/enum/fixed/mockapi.js +53 -0
- package/dist/specs/type/enum/fixed/mockapi.js.map +1 -0
- package/dist/specs/type/model/empty/mockapi.d.ts +3 -0
- package/dist/specs/type/model/empty/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/empty/mockapi.js +48 -0
- package/dist/specs/type/model/empty/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js +79 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js +147 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js +47 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.js +47 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js +122 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/templated/mockapi.d.ts +3 -0
- package/dist/specs/type/model/templated/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/templated/mockapi.js +99 -0
- package/dist/specs/type/model/templated/mockapi.js.map +1 -0
- package/dist/specs/type/model/usage/mockapi.d.ts +3 -0
- package/dist/specs/type/model/usage/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/usage/mockapi.js +52 -0
- package/dist/specs/type/model/usage/mockapi.js.map +1 -0
- package/dist/specs/type/model/visibility/mockapi.d.ts +3 -0
- package/dist/specs/type/model/visibility/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/visibility/mockapi.js +138 -0
- package/dist/specs/type/model/visibility/mockapi.js.map +1 -0
- package/dist/specs/type/property/additional-properties/mockapi.d.ts +3 -0
- package/dist/specs/type/property/additional-properties/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/additional-properties/mockapi.js +346 -0
- package/dist/specs/type/property/additional-properties/mockapi.js.map +1 -0
- package/dist/specs/type/property/nullable/mockapi.d.ts +3 -0
- package/dist/specs/type/property/nullable/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/nullable/mockapi.js +147 -0
- package/dist/specs/type/property/nullable/mockapi.js.map +1 -0
- package/dist/specs/type/property/optionality/mockapi.d.ts +3 -0
- package/dist/specs/type/property/optionality/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/optionality/mockapi.js +197 -0
- package/dist/specs/type/property/optionality/mockapi.js.map +1 -0
- package/dist/specs/type/property/value-types/mockapi.d.ts +3 -0
- package/dist/specs/type/property/value-types/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/value-types/mockapi.js +213 -0
- package/dist/specs/type/property/value-types/mockapi.js.map +1 -0
- package/dist/specs/type/scalar/mockapi.d.ts +3 -0
- package/dist/specs/type/scalar/mockapi.d.ts.map +1 -0
- package/dist/specs/type/scalar/mockapi.js +274 -0
- package/dist/specs/type/scalar/mockapi.js.map +1 -0
- package/dist/specs/type/union/mockapi.d.ts +3 -0
- package/dist/specs/type/union/mockapi.d.ts.map +1 -0
- package/dist/specs/type/union/mockapi.js +113 -0
- package/dist/specs/type/union/mockapi.js.map +1 -0
- package/dist/specs/versioning/added/mockapi.d.ts +3 -0
- package/dist/specs/versioning/added/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/added/mockapi.js +76 -0
- package/dist/specs/versioning/added/mockapi.js.map +1 -0
- package/dist/specs/versioning/madeOptional/mockapi.d.ts +3 -0
- package/dist/specs/versioning/madeOptional/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/madeOptional/mockapi.js +24 -0
- package/dist/specs/versioning/madeOptional/mockapi.js.map +1 -0
- package/dist/specs/versioning/removed/mockapi.d.ts +3 -0
- package/dist/specs/versioning/removed/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/removed/mockapi.js +26 -0
- package/dist/specs/versioning/removed/mockapi.js.map +1 -0
- package/dist/specs/versioning/renamedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/renamedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/renamedFrom/mockapi.js +53 -0
- package/dist/specs/versioning/renamedFrom/mockapi.js.map +1 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js +25 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js.map +1 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js +29 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
- package/package.json +53 -0
- package/specs/README.md +3 -0
- package/specs/authentication/api-key/main.tsp +39 -0
- package/specs/authentication/api-key/mockapi.ts +47 -0
- package/specs/authentication/commonapi.ts +43 -0
- package/specs/authentication/http/custom/main.tsp +39 -0
- package/specs/authentication/http/custom/mockapi.ts +47 -0
- package/specs/authentication/oauth2/main.tsp +44 -0
- package/specs/authentication/oauth2/mockapi.ts +44 -0
- package/specs/authentication/union/main.tsp +29 -0
- package/specs/authentication/union/mockapi.ts +39 -0
- package/specs/encode/bytes/main.tsp +369 -0
- package/specs/encode/bytes/mockapi.ts +309 -0
- package/specs/encode/datetime/main.tsp +344 -0
- package/specs/encode/datetime/mockapi.ts +274 -0
- package/specs/encode/duration/main.tsp +322 -0
- package/specs/encode/duration/mockapi.ts +204 -0
- package/specs/encode/numeric/main.tsp +71 -0
- package/specs/encode/numeric/mockapi.ts +39 -0
- package/specs/helper.ts +8 -0
- package/specs/parameters/basic/main.tsp +61 -0
- package/specs/parameters/basic/mockapi.ts +29 -0
- package/specs/parameters/body-optionality/main.tsp +63 -0
- package/specs/parameters/body-optionality/mockapi.ts +71 -0
- package/specs/parameters/collection-format/main.tsp +95 -0
- package/specs/parameters/collection-format/mockapi.ts +113 -0
- package/specs/parameters/spread/main.tsp +340 -0
- package/specs/parameters/spread/mockapi.ts +216 -0
- package/specs/payload/json-merge-patch/main.tsp +183 -0
- package/specs/payload/json-merge-patch/mockapi.ts +146 -0
- package/specs/payload/media-type/main.tsp +54 -0
- package/specs/payload/media-type/mockapi.ts +88 -0
- package/specs/payload/multipart/main.tsp +499 -0
- package/specs/payload/multipart/mockapi.ts +226 -0
- package/specs/payload/xml/main.tsp +312 -0
- package/specs/payload/xml/mockapi.ts +244 -0
- package/specs/routes/main.tsp +476 -0
- package/specs/routes/mockapi.ts +158 -0
- package/specs/scratch/.gitignore +3 -0
- package/specs/serialization/encoded-name/json/main.tsp +45 -0
- package/specs/serialization/encoded-name/json/mockapi.ts +34 -0
- package/specs/server/endpoint/not-defined/main.tsp +19 -0
- package/specs/server/endpoint/not-defined/mockapi.ts +16 -0
- package/specs/server/path/multiple/main.tsp +46 -0
- package/specs/server/path/multiple/mockapi.ts +29 -0
- package/specs/server/path/single/main.tsp +23 -0
- package/specs/server/path/single/mockapi.ts +16 -0
- package/specs/server/versions/not-versioned/main.tsp +39 -0
- package/specs/server/versions/not-versioned/mockapi.ts +55 -0
- package/specs/server/versions/versioned/main.tsp +65 -0
- package/specs/server/versions/versioned/mockapi.ts +68 -0
- package/specs/special-headers/conditional-request/main.tsp +89 -0
- package/specs/special-headers/conditional-request/mockapi.ts +83 -0
- package/specs/special-headers/repeatability/main.tsp +39 -0
- package/specs/special-headers/repeatability/mockapi.ts +47 -0
- package/specs/special-words/dec.js +52 -0
- package/specs/special-words/main.tsp +238 -0
- package/specs/special-words/mockapi.ts +407 -0
- package/specs/type/array/main.tsp +132 -0
- package/specs/type/array/mockapi.ts +119 -0
- package/specs/type/dictionary/main.tsp +122 -0
- package/specs/type/dictionary/mockapi.ts +115 -0
- package/specs/type/enum/extensible/main.tsp +64 -0
- package/specs/type/enum/extensible/mockapi.ts +55 -0
- package/specs/type/enum/fixed/main.tsp +60 -0
- package/specs/type/enum/fixed/mockapi.ts +55 -0
- package/specs/type/model/empty/main.tsp +39 -0
- package/specs/type/model/empty/mockapi.ts +51 -0
- package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
- package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +99 -0
- package/specs/type/model/inheritance/nested-discriminator/main.tsp +223 -0
- package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +150 -0
- package/specs/type/model/inheritance/not-discriminated/main.tsp +53 -0
- package/specs/type/model/inheritance/not-discriminated/mockapi.ts +49 -0
- package/specs/type/model/inheritance/recursive/main.tsp +70 -0
- package/specs/type/model/inheritance/recursive/mockapi.ts +48 -0
- package/specs/type/model/inheritance/single-discriminator/main.tsp +171 -0
- package/specs/type/model/inheritance/single-discriminator/mockapi.ts +126 -0
- package/specs/type/model/templated/main.tsp +130 -0
- package/specs/type/model/templated/mockapi.ts +102 -0
- package/specs/type/model/usage/main.tsp +48 -0
- package/specs/type/model/usage/mockapi.ts +56 -0
- package/specs/type/model/visibility/main.tsp +152 -0
- package/specs/type/model/visibility/mockapi.ts +139 -0
- package/specs/type/property/additional-properties/main.tsp +591 -0
- package/specs/type/property/additional-properties/mockapi.ts +477 -0
- package/specs/type/property/nullable/client.tsp +21 -0
- package/specs/type/property/nullable/main.tsp +162 -0
- package/specs/type/property/nullable/mockapi.ts +202 -0
- package/specs/type/property/optionality/main.tsp +258 -0
- package/specs/type/property/optionality/mockapi.ts +308 -0
- package/specs/type/property/value-types/main.tsp +285 -0
- package/specs/type/property/value-types/mockapi.ts +297 -0
- package/specs/type/scalar/main.tsp +164 -0
- package/specs/type/scalar/mockapi.ts +280 -0
- package/specs/type/union/main.tsp +262 -0
- package/specs/type/union/mockapi.ts +137 -0
- package/specs/versioning/added/main.tsp +135 -0
- package/specs/versioning/added/mockapi.ts +79 -0
- package/specs/versioning/madeOptional/main.tsp +64 -0
- package/specs/versioning/madeOptional/mockapi.ts +25 -0
- package/specs/versioning/removed/main.tsp +125 -0
- package/specs/versioning/removed/mockapi.ts +27 -0
- package/specs/versioning/renamedFrom/main.tsp +111 -0
- package/specs/versioning/renamedFrom/mockapi.ts +55 -0
- package/specs/versioning/returnTypeChangedFrom/main.tsp +56 -0
- package/specs/versioning/returnTypeChangedFrom/mockapi.ts +26 -0
- package/specs/versioning/typeChangedFrom/main.tsp +70 -0
- package/specs/versioning/typeChangedFrom/mockapi.ts +30 -0
- package/temp/.tsbuildinfo +1 -0
- package/tsconfig.build.json +9 -0
- package/tsconfig.json +11 -0
- package/tspconfig.yaml +2 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
using Azure.ClientGenerator.Core;
|
|
6
|
+
|
|
7
|
+
@doc("Illustrates various types of arrays.")
|
|
8
|
+
@scenarioService("/type/array")
|
|
9
|
+
namespace Type.Array;
|
|
10
|
+
|
|
11
|
+
@doc("Template to have Array operations")
|
|
12
|
+
interface ArrayOperations<TArr, TDoc extends string> {
|
|
13
|
+
@scenario
|
|
14
|
+
@scenarioDoc(
|
|
15
|
+
"""
|
|
16
|
+
Expected Array response body:
|
|
17
|
+
```json
|
|
18
|
+
{doc}
|
|
19
|
+
```
|
|
20
|
+
""",
|
|
21
|
+
{
|
|
22
|
+
doc: TDoc,
|
|
23
|
+
}
|
|
24
|
+
)
|
|
25
|
+
@get
|
|
26
|
+
get(): TArr;
|
|
27
|
+
|
|
28
|
+
@scenario
|
|
29
|
+
@scenarioDoc(
|
|
30
|
+
"""
|
|
31
|
+
Expected Array input body:
|
|
32
|
+
```json
|
|
33
|
+
{doc}
|
|
34
|
+
```
|
|
35
|
+
""",
|
|
36
|
+
{
|
|
37
|
+
doc: TDoc,
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
@put
|
|
41
|
+
put(@body body: TArr): void;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@doc("Array of int32 values")
|
|
45
|
+
@route("/int32")
|
|
46
|
+
@operationGroup
|
|
47
|
+
interface Int32Value extends ArrayOperations<int32[], "[1, 2]"> {}
|
|
48
|
+
|
|
49
|
+
@doc("Array of int64 values")
|
|
50
|
+
@route("/int64")
|
|
51
|
+
@operationGroup
|
|
52
|
+
interface Int64Value
|
|
53
|
+
extends ArrayOperations<int64[], "[0x7FFFFFFFFFFFFFFF, -0x7FFFFFFFFFFFFFFF]"> {}
|
|
54
|
+
|
|
55
|
+
@doc("Array of boolean values")
|
|
56
|
+
@route("/boolean")
|
|
57
|
+
@operationGroup
|
|
58
|
+
interface BooleanValue extends ArrayOperations<boolean[], "[true, false]"> {}
|
|
59
|
+
|
|
60
|
+
@doc("Array of string values")
|
|
61
|
+
@route("/string")
|
|
62
|
+
@operationGroup
|
|
63
|
+
interface StringValue extends ArrayOperations<string[], "['hello', '']"> {}
|
|
64
|
+
|
|
65
|
+
@doc("Array of float values")
|
|
66
|
+
@route("/float32")
|
|
67
|
+
@operationGroup
|
|
68
|
+
interface Float32Value extends ArrayOperations<float32[], "[43.125]"> {}
|
|
69
|
+
|
|
70
|
+
@doc("Array of datetime values")
|
|
71
|
+
@route("/datetime")
|
|
72
|
+
@operationGroup
|
|
73
|
+
interface DatetimeValue extends ArrayOperations<utcDateTime[], "['2022-08-26T18:38:00Z']"> {}
|
|
74
|
+
|
|
75
|
+
@doc("Array of duration values")
|
|
76
|
+
@route("/duration")
|
|
77
|
+
@operationGroup
|
|
78
|
+
interface DurationValue extends ArrayOperations<duration[], "['P123DT22H14M12.011S']"> {}
|
|
79
|
+
|
|
80
|
+
@doc("Array of unknown values")
|
|
81
|
+
@route("/unknown")
|
|
82
|
+
@operationGroup
|
|
83
|
+
interface UnknownValue extends ArrayOperations<unknown[], "[1, 'hello', 'k3': null]"> {}
|
|
84
|
+
|
|
85
|
+
@doc("Array inner model")
|
|
86
|
+
model InnerModel {
|
|
87
|
+
@doc("Required string property")
|
|
88
|
+
property: string;
|
|
89
|
+
|
|
90
|
+
children?: InnerModel[];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@doc("Array of model values")
|
|
94
|
+
@route("/model")
|
|
95
|
+
@operationGroup
|
|
96
|
+
interface ModelValue
|
|
97
|
+
extends ArrayOperations<InnerModel[], "[{'property': 'hello'}, {'property': 'world'}]"> {}
|
|
98
|
+
|
|
99
|
+
alias NullableFloat = float32 | null;
|
|
100
|
+
@doc("Array of nullable float values")
|
|
101
|
+
@route("/nullable-float")
|
|
102
|
+
@operationGroup
|
|
103
|
+
interface NullableFloatValue extends ArrayOperations<NullableFloat[], "[1.25, null, 3.0]"> {}
|
|
104
|
+
|
|
105
|
+
alias NullableInt32 = int32 | null;
|
|
106
|
+
@doc("Array of nullable int32 values")
|
|
107
|
+
@route("/nullable-int32")
|
|
108
|
+
@operationGroup
|
|
109
|
+
interface NullableInt32Value extends ArrayOperations<NullableInt32[], "[1, null, 3]"> {}
|
|
110
|
+
|
|
111
|
+
alias NullableBoolean = boolean | null;
|
|
112
|
+
@doc("Array of nullable boolean values")
|
|
113
|
+
@route("/nullable-boolean")
|
|
114
|
+
@operationGroup
|
|
115
|
+
interface NullableBooleanValue extends ArrayOperations<NullableBoolean[], "[true, null, false]"> {}
|
|
116
|
+
|
|
117
|
+
alias NullableString = string | null;
|
|
118
|
+
@doc("Array of nullable string values")
|
|
119
|
+
@route("/nullable-string")
|
|
120
|
+
@operationGroup
|
|
121
|
+
interface NullableStringValue
|
|
122
|
+
extends ArrayOperations<NullableString[], "['hello', null, 'world']"> {}
|
|
123
|
+
|
|
124
|
+
alias NullableModel = InnerModel | null;
|
|
125
|
+
@doc("Array of nullable model values")
|
|
126
|
+
@route("/nullable-model")
|
|
127
|
+
@operationGroup
|
|
128
|
+
interface NullableModelValue
|
|
129
|
+
extends ArrayOperations<
|
|
130
|
+
NullableModel[],
|
|
131
|
+
"[{'property': 'hello'}, null, {'property': 'world'}]"
|
|
132
|
+
> {}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
function createServerTests(uri: string, data: any) {
|
|
6
|
+
return {
|
|
7
|
+
get: passOnSuccess({
|
|
8
|
+
uri,
|
|
9
|
+
method: "get",
|
|
10
|
+
request: {},
|
|
11
|
+
response: {
|
|
12
|
+
status: 200,
|
|
13
|
+
body: json(data),
|
|
14
|
+
},
|
|
15
|
+
handler: (req: MockRequest) => {
|
|
16
|
+
return {
|
|
17
|
+
status: 200,
|
|
18
|
+
body: json(data),
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
kind: "MockApiDefinition",
|
|
22
|
+
}),
|
|
23
|
+
put: passOnSuccess({
|
|
24
|
+
uri,
|
|
25
|
+
method: "put",
|
|
26
|
+
request: {
|
|
27
|
+
body: data,
|
|
28
|
+
},
|
|
29
|
+
response: {
|
|
30
|
+
status: 204,
|
|
31
|
+
},
|
|
32
|
+
handler: (req: MockRequest) => {
|
|
33
|
+
req.expect.coercedBodyEquals(data);
|
|
34
|
+
return {
|
|
35
|
+
status: 204,
|
|
36
|
+
};
|
|
37
|
+
},
|
|
38
|
+
kind: "MockApiDefinition",
|
|
39
|
+
}),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const Type_Array_Int32 = createServerTests(`/type/array/int32`, [1, 2]);
|
|
44
|
+
Scenarios.Type_Array_Int32Value_get = Type_Array_Int32.get;
|
|
45
|
+
Scenarios.Type_Array_Int32Value_put = Type_Array_Int32.put;
|
|
46
|
+
|
|
47
|
+
const Type_Array_Int64 = createServerTests(`/type/array/int64`, [
|
|
48
|
+
Number.MAX_SAFE_INTEGER,
|
|
49
|
+
Number.MIN_SAFE_INTEGER,
|
|
50
|
+
]);
|
|
51
|
+
Scenarios.Type_Array_Int64Value_get = Type_Array_Int64.get;
|
|
52
|
+
Scenarios.Type_Array_Int64Value_put = Type_Array_Int64.put;
|
|
53
|
+
|
|
54
|
+
const Type_Array_Boolean = createServerTests(`/type/array/boolean`, [true, false]);
|
|
55
|
+
Scenarios.Type_Array_BooleanValue_get = Type_Array_Boolean.get;
|
|
56
|
+
Scenarios.Type_Array_BooleanValue_put = Type_Array_Boolean.put;
|
|
57
|
+
|
|
58
|
+
const Type_Array_String = createServerTests(`/type/array/string`, ["hello", ""]);
|
|
59
|
+
Scenarios.Type_Array_StringValue_get = Type_Array_String.get;
|
|
60
|
+
Scenarios.Type_Array_StringValue_put = Type_Array_String.put;
|
|
61
|
+
|
|
62
|
+
const Type_Array_Float32 = createServerTests(`/type/array/float32`, [43.125]);
|
|
63
|
+
Scenarios.Type_Array_Float32Value_get = Type_Array_Float32.get;
|
|
64
|
+
Scenarios.Type_Array_Float32Value_put = Type_Array_Float32.put;
|
|
65
|
+
|
|
66
|
+
const Type_Array_Datetime = createServerTests(`/type/array/datetime`, ["2022-08-26T18:38:00Z"]);
|
|
67
|
+
Scenarios.Type_Array_DatetimeValue_get = Type_Array_Datetime.get;
|
|
68
|
+
Scenarios.Type_Array_DatetimeValue_put = Type_Array_Datetime.put;
|
|
69
|
+
|
|
70
|
+
const Type_Array_Duration = createServerTests(`/type/array/duration`, ["P123DT22H14M12.011S"]);
|
|
71
|
+
Scenarios.Type_Array_DurationValue_get = Type_Array_Duration.get;
|
|
72
|
+
Scenarios.Type_Array_DurationValue_put = Type_Array_Duration.put;
|
|
73
|
+
|
|
74
|
+
const Type_Array_Unknown = createServerTests(`/type/array/unknown`, [1, "hello", null]);
|
|
75
|
+
Scenarios.Type_Array_UnknownValue_get = Type_Array_Unknown.get;
|
|
76
|
+
Scenarios.Type_Array_UnknownValue_put = Type_Array_Unknown.put;
|
|
77
|
+
|
|
78
|
+
const Type_Array_Model = createServerTests(`/type/array/model`, [
|
|
79
|
+
{ property: "hello" },
|
|
80
|
+
{ property: "world" },
|
|
81
|
+
]);
|
|
82
|
+
Scenarios.Type_Array_ModelValue_get = Type_Array_Model.get;
|
|
83
|
+
Scenarios.Type_Array_ModelValue_put = Type_Array_Model.put;
|
|
84
|
+
|
|
85
|
+
const Type_Array_Nullable_Float = createServerTests(`/type/array/nullable-float`, [
|
|
86
|
+
1.25,
|
|
87
|
+
null,
|
|
88
|
+
3.0,
|
|
89
|
+
]);
|
|
90
|
+
Scenarios.Type_Array_NullableFloatValue_get = Type_Array_Nullable_Float.get;
|
|
91
|
+
Scenarios.Type_Array_NullableFloatValue_put = Type_Array_Nullable_Float.put;
|
|
92
|
+
|
|
93
|
+
const Type_Array_Nullable_Boolean = createServerTests(`/type/array/nullable-boolean`, [
|
|
94
|
+
true,
|
|
95
|
+
null,
|
|
96
|
+
false,
|
|
97
|
+
]);
|
|
98
|
+
Scenarios.Type_Array_NullableBooleanValue_get = Type_Array_Nullable_Boolean.get;
|
|
99
|
+
Scenarios.Type_Array_NullableBooleanValue_put = Type_Array_Nullable_Boolean.put;
|
|
100
|
+
|
|
101
|
+
const Type_Array_Nullable_Int32 = createServerTests(`/type/array/nullable-int32`, [1, null, 3]);
|
|
102
|
+
Scenarios.Type_Array_NullableInt32Value_get = Type_Array_Nullable_Int32.get;
|
|
103
|
+
Scenarios.Type_Array_NullableInt32Value_put = Type_Array_Nullable_Int32.put;
|
|
104
|
+
|
|
105
|
+
const Type_Array_Nullable_String = createServerTests(`/type/array/nullable-string`, [
|
|
106
|
+
"hello",
|
|
107
|
+
null,
|
|
108
|
+
"world",
|
|
109
|
+
]);
|
|
110
|
+
Scenarios.Type_Array_NullableStringValue_get = Type_Array_Nullable_String.get;
|
|
111
|
+
Scenarios.Type_Array_NullableStringValue_put = Type_Array_Nullable_String.put;
|
|
112
|
+
|
|
113
|
+
const Type_Array_Nullable_Model = createServerTests(`/type/array/nullable-model`, [
|
|
114
|
+
{ property: "hello" },
|
|
115
|
+
null,
|
|
116
|
+
{ property: "world" },
|
|
117
|
+
]);
|
|
118
|
+
Scenarios.Type_Array_NullableModelValue_get = Type_Array_Nullable_Model.get;
|
|
119
|
+
Scenarios.Type_Array_NullableModelValue_put = Type_Array_Nullable_Model.put;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
using Azure.ClientGenerator.Core;
|
|
6
|
+
|
|
7
|
+
@doc("Illustrates various of dictionaries.")
|
|
8
|
+
@scenarioService("/type/dictionary")
|
|
9
|
+
namespace Type.Dictionary;
|
|
10
|
+
|
|
11
|
+
@doc("Template to have dictionary operations")
|
|
12
|
+
interface DictionaryOperations<TDict, TDoc extends string> {
|
|
13
|
+
@scenario
|
|
14
|
+
@scenarioDoc(
|
|
15
|
+
"""
|
|
16
|
+
Expected dictionary response body:
|
|
17
|
+
```json
|
|
18
|
+
{doc}
|
|
19
|
+
```
|
|
20
|
+
""",
|
|
21
|
+
{
|
|
22
|
+
doc: TDoc,
|
|
23
|
+
}
|
|
24
|
+
)
|
|
25
|
+
@get
|
|
26
|
+
get(): TDict;
|
|
27
|
+
|
|
28
|
+
@scenario
|
|
29
|
+
@scenarioDoc(
|
|
30
|
+
"""
|
|
31
|
+
Expected dictionary input body:
|
|
32
|
+
```json
|
|
33
|
+
{doc}
|
|
34
|
+
```
|
|
35
|
+
""",
|
|
36
|
+
{
|
|
37
|
+
doc: TDoc,
|
|
38
|
+
}
|
|
39
|
+
)
|
|
40
|
+
@put
|
|
41
|
+
put(@body body: TDict): void;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@doc("Dictionary of int32 values")
|
|
45
|
+
@route("/int32")
|
|
46
|
+
@operationGroup
|
|
47
|
+
interface Int32Value extends DictionaryOperations<Record<int32>, "{'k1': 1, 'k2': 2}"> {}
|
|
48
|
+
|
|
49
|
+
@doc("Dictionary of int64 values")
|
|
50
|
+
@route("/int64")
|
|
51
|
+
@operationGroup
|
|
52
|
+
interface Int64Value
|
|
53
|
+
extends DictionaryOperations<
|
|
54
|
+
Record<int64>,
|
|
55
|
+
"{'k1': 0x7FFFFFFFFFFFFFFF, 'k2': -0x7FFFFFFFFFFFFFFF}"
|
|
56
|
+
> {}
|
|
57
|
+
|
|
58
|
+
@doc("Dictionary of boolean values")
|
|
59
|
+
@route("/boolean")
|
|
60
|
+
@operationGroup
|
|
61
|
+
interface BooleanValue extends DictionaryOperations<Record<boolean>, "{'k1': true, 'k2': false}"> {}
|
|
62
|
+
|
|
63
|
+
@doc("Dictionary of string values")
|
|
64
|
+
@route("/string")
|
|
65
|
+
@operationGroup
|
|
66
|
+
interface StringValue extends DictionaryOperations<Record<string>, "{'k1': 'hello', 'k2': ''}"> {}
|
|
67
|
+
|
|
68
|
+
@doc("Dictionary of float values")
|
|
69
|
+
@route("/float32")
|
|
70
|
+
@operationGroup
|
|
71
|
+
interface Float32Value extends DictionaryOperations<Record<float32>, "{'k1': 43.125}"> {}
|
|
72
|
+
|
|
73
|
+
@doc("Dictionary of datetime values")
|
|
74
|
+
@route("/datetime")
|
|
75
|
+
@operationGroup
|
|
76
|
+
interface DatetimeValue
|
|
77
|
+
extends DictionaryOperations<Record<utcDateTime>, "{'k1': '2022-08-26T18:38:00Z'}"> {}
|
|
78
|
+
|
|
79
|
+
@doc("Dictionary of duration values")
|
|
80
|
+
@route("/duration")
|
|
81
|
+
@operationGroup
|
|
82
|
+
interface DurationValue
|
|
83
|
+
extends DictionaryOperations<Record<duration>, "{'k1': 'P123DT22H14M12.011S'}"> {}
|
|
84
|
+
|
|
85
|
+
@doc("Dictionary of unknown values")
|
|
86
|
+
@route("/unknown")
|
|
87
|
+
@operationGroup
|
|
88
|
+
interface UnknownValue
|
|
89
|
+
extends DictionaryOperations<Record<unknown>, "{'k1': 1, 'k2': 'hello', 'k3': null}"> {}
|
|
90
|
+
|
|
91
|
+
@doc("Dictionary inner model")
|
|
92
|
+
model InnerModel {
|
|
93
|
+
@doc("Required string property")
|
|
94
|
+
property: string;
|
|
95
|
+
|
|
96
|
+
children?: Record<InnerModel>;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@doc("Dictionary of model values")
|
|
100
|
+
@route("/model")
|
|
101
|
+
@operationGroup
|
|
102
|
+
interface ModelValue
|
|
103
|
+
extends DictionaryOperations<
|
|
104
|
+
Record<InnerModel>,
|
|
105
|
+
"{'k1': {'property': 'hello'}, 'k2': {'property': 'world'}}"
|
|
106
|
+
> {}
|
|
107
|
+
|
|
108
|
+
@doc("Dictionary of model values")
|
|
109
|
+
@route("/model/recursive")
|
|
110
|
+
@operationGroup
|
|
111
|
+
interface RecursiveModelValue
|
|
112
|
+
extends DictionaryOperations<
|
|
113
|
+
Record<InnerModel>,
|
|
114
|
+
"{'k1': {'property': 'hello', children: {}}, 'k2': {'property': 'world', children: {'k2.1': {'property': 'inner world'}}}}"
|
|
115
|
+
> {}
|
|
116
|
+
|
|
117
|
+
alias NullableFloat = float32 | null;
|
|
118
|
+
@doc("Dictionary of nullable float values")
|
|
119
|
+
@route("/nullable-float")
|
|
120
|
+
@operationGroup
|
|
121
|
+
interface NullableFloatValue
|
|
122
|
+
extends DictionaryOperations<Record<NullableFloat>, "{'k1': 1.25, 'k2': 0.5, 'k3': null}"> {}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
function createServerTests(uri: string, data: any) {
|
|
6
|
+
return {
|
|
7
|
+
get: passOnSuccess({
|
|
8
|
+
uri,
|
|
9
|
+
method: "get",
|
|
10
|
+
request: {},
|
|
11
|
+
response: {
|
|
12
|
+
status: 200,
|
|
13
|
+
body: json(data),
|
|
14
|
+
},
|
|
15
|
+
handler: (req: MockRequest) => {
|
|
16
|
+
return {
|
|
17
|
+
status: 200,
|
|
18
|
+
body: json(data),
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
kind: "MockApiDefinition",
|
|
22
|
+
}),
|
|
23
|
+
put: passOnSuccess({
|
|
24
|
+
uri,
|
|
25
|
+
method: "put",
|
|
26
|
+
request: {
|
|
27
|
+
body: data,
|
|
28
|
+
},
|
|
29
|
+
response: {
|
|
30
|
+
status: 204,
|
|
31
|
+
},
|
|
32
|
+
handler: (req: MockRequest) => {
|
|
33
|
+
req.expect.coercedBodyEquals(data);
|
|
34
|
+
return {
|
|
35
|
+
status: 204,
|
|
36
|
+
};
|
|
37
|
+
},
|
|
38
|
+
kind: "MockApiDefinition",
|
|
39
|
+
}),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const Type_Dictionary_Int32 = createServerTests(`/type/dictionary/int32`, { k1: 1, k2: 2 });
|
|
44
|
+
Scenarios.Type_Dictionary_Int32Value_get = Type_Dictionary_Int32.get;
|
|
45
|
+
Scenarios.Type_Dictionary_Int32Value_put = Type_Dictionary_Int32.put;
|
|
46
|
+
|
|
47
|
+
const Type_Dictionary_Int64 = createServerTests(`/type/dictionary/int64`, {
|
|
48
|
+
k1: Number.MAX_SAFE_INTEGER,
|
|
49
|
+
k2: Number.MIN_SAFE_INTEGER,
|
|
50
|
+
});
|
|
51
|
+
Scenarios.Type_Dictionary_Int64Value_get = Type_Dictionary_Int64.get;
|
|
52
|
+
Scenarios.Type_Dictionary_Int64Value_put = Type_Dictionary_Int64.put;
|
|
53
|
+
|
|
54
|
+
const Type_Dictionary_Boolean = createServerTests(`/type/dictionary/boolean`, {
|
|
55
|
+
k1: true,
|
|
56
|
+
k2: false,
|
|
57
|
+
});
|
|
58
|
+
Scenarios.Type_Dictionary_BooleanValue_get = Type_Dictionary_Boolean.get;
|
|
59
|
+
Scenarios.Type_Dictionary_BooleanValue_put = Type_Dictionary_Boolean.put;
|
|
60
|
+
|
|
61
|
+
const Type_Dictionary_String = createServerTests(`/type/dictionary/string`, {
|
|
62
|
+
k1: "hello",
|
|
63
|
+
k2: "",
|
|
64
|
+
});
|
|
65
|
+
Scenarios.Type_Dictionary_StringValue_get = Type_Dictionary_String.get;
|
|
66
|
+
Scenarios.Type_Dictionary_StringValue_put = Type_Dictionary_String.put;
|
|
67
|
+
|
|
68
|
+
const Type_Dictionary_Float32 = createServerTests(`/type/dictionary/float32`, { k1: 43.125 });
|
|
69
|
+
Scenarios.Type_Dictionary_Float32Value_get = Type_Dictionary_Float32.get;
|
|
70
|
+
Scenarios.Type_Dictionary_Float32Value_put = Type_Dictionary_Float32.put;
|
|
71
|
+
|
|
72
|
+
const Type_Dictionary_Datetime = createServerTests(`/type/dictionary/datetime`, {
|
|
73
|
+
k1: "2022-08-26T18:38:00Z",
|
|
74
|
+
});
|
|
75
|
+
Scenarios.Type_Dictionary_DatetimeValue_get = Type_Dictionary_Datetime.get;
|
|
76
|
+
Scenarios.Type_Dictionary_DatetimeValue_put = Type_Dictionary_Datetime.put;
|
|
77
|
+
|
|
78
|
+
const Type_Dictionary_Duration = createServerTests(`/type/dictionary/duration`, {
|
|
79
|
+
k1: "P123DT22H14M12.011S",
|
|
80
|
+
});
|
|
81
|
+
Scenarios.Type_Dictionary_DurationValue_get = Type_Dictionary_Duration.get;
|
|
82
|
+
Scenarios.Type_Dictionary_DurationValue_put = Type_Dictionary_Duration.put;
|
|
83
|
+
|
|
84
|
+
const Type_Dictionary_Unknown = createServerTests(`/type/dictionary/unknown`, {
|
|
85
|
+
k1: 1,
|
|
86
|
+
k2: "hello",
|
|
87
|
+
k3: null,
|
|
88
|
+
});
|
|
89
|
+
Scenarios.Type_Dictionary_UnknownValue_get = Type_Dictionary_Unknown.get;
|
|
90
|
+
Scenarios.Type_Dictionary_UnknownValue_put = Type_Dictionary_Unknown.put;
|
|
91
|
+
|
|
92
|
+
const Type_Dictionary_Model = createServerTests(`/type/dictionary/model`, {
|
|
93
|
+
k1: { property: "hello" },
|
|
94
|
+
k2: { property: "world" },
|
|
95
|
+
});
|
|
96
|
+
Scenarios.Type_Dictionary_ModelValue_get = Type_Dictionary_Model.get;
|
|
97
|
+
Scenarios.Type_Dictionary_ModelValue_put = Type_Dictionary_Model.put;
|
|
98
|
+
|
|
99
|
+
const Type_Dictionary_Model_Recursive = createServerTests(`/type/dictionary/model/recursive`, {
|
|
100
|
+
k1: { property: "hello", children: {} },
|
|
101
|
+
k2: {
|
|
102
|
+
property: "world",
|
|
103
|
+
children: { "k2.1": { property: "inner world" } },
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
Scenarios.Type_Dictionary_RecursiveModelValue_get = Type_Dictionary_Model_Recursive.get;
|
|
107
|
+
Scenarios.Type_Dictionary_RecursiveModelValue_put = Type_Dictionary_Model_Recursive.put;
|
|
108
|
+
|
|
109
|
+
const Type_Dictionary_Nullable_Float = createServerTests(`/type/dictionary/nullable-float`, {
|
|
110
|
+
k1: 1.25,
|
|
111
|
+
k2: 0.5,
|
|
112
|
+
k3: null,
|
|
113
|
+
});
|
|
114
|
+
Scenarios.Type_Dictionary_NullableFloatValue_get = Type_Dictionary_Nullable_Float.get;
|
|
115
|
+
Scenarios.Type_Dictionary_NullableFloatValue_put = Type_Dictionary_Nullable_Float.put;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
|
|
6
|
+
@scenarioService("/type/enum/extensible")
|
|
7
|
+
namespace Type.Enum.Extensible;
|
|
8
|
+
|
|
9
|
+
@doc("Days of the week")
|
|
10
|
+
union DaysOfWeekExtensibleEnum {
|
|
11
|
+
string,
|
|
12
|
+
|
|
13
|
+
@doc("Monday.")
|
|
14
|
+
Monday: "Monday",
|
|
15
|
+
|
|
16
|
+
@doc("Tuesday.")
|
|
17
|
+
Tuesday: "Tuesday",
|
|
18
|
+
|
|
19
|
+
@doc("Wednesday.")
|
|
20
|
+
Wednesday: "Wednesday",
|
|
21
|
+
|
|
22
|
+
@doc("Thursday.")
|
|
23
|
+
Thursday: "Thursday",
|
|
24
|
+
|
|
25
|
+
@doc("Friday.")
|
|
26
|
+
Friday: "Friday",
|
|
27
|
+
|
|
28
|
+
@doc("Saturday.")
|
|
29
|
+
Saturday: "Saturday",
|
|
30
|
+
|
|
31
|
+
@doc("Sunday.")
|
|
32
|
+
Sunday: "Sunday",
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@route("/string")
|
|
36
|
+
interface String {
|
|
37
|
+
@scenario
|
|
38
|
+
@scenarioDoc("Expect to handle a known value. Mock api will return 'Monday'")
|
|
39
|
+
@get
|
|
40
|
+
@route("/known-value")
|
|
41
|
+
getKnownValue(): {
|
|
42
|
+
@body body: DaysOfWeekExtensibleEnum;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
@scenario
|
|
46
|
+
@scenarioDoc("Expect to handle an unknown value. Mock api will return 'Weekend'")
|
|
47
|
+
@get
|
|
48
|
+
@route("/unknown-value")
|
|
49
|
+
getUnknownValue(): {
|
|
50
|
+
@body body: DaysOfWeekExtensibleEnum;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
@scenario
|
|
54
|
+
@scenarioDoc("Expect to send a known value. Mock api expect to receive 'Monday'")
|
|
55
|
+
@put
|
|
56
|
+
@route("/known-value")
|
|
57
|
+
putKnownValue(@body body: DaysOfWeekExtensibleEnum): void;
|
|
58
|
+
|
|
59
|
+
@scenario
|
|
60
|
+
@scenarioDoc("Expect to handle an unknown value. Mock api expect to receive 'Weekend'")
|
|
61
|
+
@put
|
|
62
|
+
@route("/unknown-value")
|
|
63
|
+
putUnknownValue(@body body: DaysOfWeekExtensibleEnum): void;
|
|
64
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { json, MockRequest, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
function createMockServerTests(uri: string, data: any) {
|
|
6
|
+
return {
|
|
7
|
+
get: passOnSuccess({
|
|
8
|
+
uri,
|
|
9
|
+
method: "get",
|
|
10
|
+
request: {},
|
|
11
|
+
response: {
|
|
12
|
+
status: 200,
|
|
13
|
+
body: json(data),
|
|
14
|
+
},
|
|
15
|
+
handler: (req: MockRequest) => {
|
|
16
|
+
return { status: 200, body: json(data) };
|
|
17
|
+
},
|
|
18
|
+
kind: "MockApiDefinition",
|
|
19
|
+
}),
|
|
20
|
+
put: passOnSuccess({
|
|
21
|
+
uri,
|
|
22
|
+
method: "put",
|
|
23
|
+
request: {
|
|
24
|
+
body: data,
|
|
25
|
+
headers: {
|
|
26
|
+
"Content-Type": "text/plain",
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
response: {
|
|
30
|
+
status: 204,
|
|
31
|
+
},
|
|
32
|
+
handler: (req: MockRequest) => {
|
|
33
|
+
req.expect.bodyEquals(data);
|
|
34
|
+
return { status: 204 };
|
|
35
|
+
},
|
|
36
|
+
kind: "MockApiDefinition",
|
|
37
|
+
}),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const Type_Enum_Extensible_String_Known_Value = createMockServerTests(
|
|
42
|
+
`/type/enum/extensible/string/known-value`,
|
|
43
|
+
"Monday",
|
|
44
|
+
);
|
|
45
|
+
Scenarios.Type_Enum_Extensible_String_getKnownValue = Type_Enum_Extensible_String_Known_Value.get;
|
|
46
|
+
Scenarios.Type_Enum_Extensible_String_putKnownValue = Type_Enum_Extensible_String_Known_Value.put;
|
|
47
|
+
|
|
48
|
+
const Type_Enum_Extensible_String_UnKnown_Value = createMockServerTests(
|
|
49
|
+
`/type/enum/extensible/string/unknown-value`,
|
|
50
|
+
"Weekend",
|
|
51
|
+
);
|
|
52
|
+
Scenarios.Type_Enum_Extensible_String_getUnknownValue =
|
|
53
|
+
Type_Enum_Extensible_String_UnKnown_Value.get;
|
|
54
|
+
Scenarios.Type_Enum_Extensible_String_putUnknownValue =
|
|
55
|
+
Type_Enum_Extensible_String_UnKnown_Value.put;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using Azure.Core;
|
|
5
|
+
using TypeSpec.Http;
|
|
6
|
+
|
|
7
|
+
@scenarioService("/type/enum/fixed")
|
|
8
|
+
namespace Type.Enum.Fixed;
|
|
9
|
+
|
|
10
|
+
#suppress "@azure-tools/typespec-azure-core/use-extensible-enum" "For testing"
|
|
11
|
+
@doc("Days of the week")
|
|
12
|
+
enum DaysOfWeekEnum {
|
|
13
|
+
@doc("Monday.")
|
|
14
|
+
Monday,
|
|
15
|
+
|
|
16
|
+
@doc("Tuesday.")
|
|
17
|
+
Tuesday,
|
|
18
|
+
|
|
19
|
+
@doc("Wednesday.")
|
|
20
|
+
Wednesday,
|
|
21
|
+
|
|
22
|
+
@doc("Thursday.")
|
|
23
|
+
Thursday,
|
|
24
|
+
|
|
25
|
+
@doc("Friday.")
|
|
26
|
+
Friday,
|
|
27
|
+
|
|
28
|
+
@doc("Saturday.")
|
|
29
|
+
Saturday,
|
|
30
|
+
|
|
31
|
+
@doc("Sunday.")
|
|
32
|
+
Sunday,
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@route("/string")
|
|
36
|
+
interface String {
|
|
37
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing"
|
|
38
|
+
@scenario
|
|
39
|
+
@scenarioDoc("Expect to handle a known value. Mock api will return 'Monday'")
|
|
40
|
+
@get
|
|
41
|
+
@route("/known-value")
|
|
42
|
+
@doc("getKnownValue")
|
|
43
|
+
getKnownValue(): DaysOfWeekEnum;
|
|
44
|
+
|
|
45
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing"
|
|
46
|
+
@scenario
|
|
47
|
+
@scenarioDoc("Expect to send a known value. Mock api expect to receive 'Monday'")
|
|
48
|
+
@put
|
|
49
|
+
@route("/known-value")
|
|
50
|
+
@doc("putKnownValue")
|
|
51
|
+
putKnownValue(@body @doc("_") body: DaysOfWeekEnum): void;
|
|
52
|
+
|
|
53
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing"
|
|
54
|
+
@scenario
|
|
55
|
+
@scenarioDoc("Expect to handle an unknown value. Mock api expect to receive 'Weekend'")
|
|
56
|
+
@put
|
|
57
|
+
@route("/unknown-value")
|
|
58
|
+
@doc("putUnknownValue")
|
|
59
|
+
putUnknownValue(@body @doc("_") body: DaysOfWeekEnum): void;
|
|
60
|
+
}
|