@grafana/openapi-to-k6 0.1.2 → 0.2.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.
Files changed (121) hide show
  1. package/.github/workflows/publish.yaml +2 -2
  2. package/.github/workflows/tests.yaml +14 -6
  3. package/README.md +54 -14
  4. package/dist/analytics.js +2 -1
  5. package/dist/cli.js +20 -6
  6. package/dist/constants.js +8 -2
  7. package/dist/{generator.js → generator/index.js} +7 -13
  8. package/dist/{k6SdkClient.js → generator/k6Client.js} +148 -161
  9. package/examples/basic_schema/single/k6-script.sample.ts +11 -0
  10. package/examples/basic_schema/single/simpleAPI.ts +87 -0
  11. package/examples/basic_schema/split/k6-script.sample.ts +11 -0
  12. package/examples/basic_schema/split/simpleAPI.schemas.ts +9 -0
  13. package/examples/basic_schema/split/simpleAPI.ts +85 -0
  14. package/examples/basic_schema/tags/default.ts +85 -0
  15. package/examples/basic_schema/tags/k6-script.sample.ts +11 -0
  16. package/examples/basic_schema/tags/simpleAPI.schemas.ts +9 -0
  17. package/examples/form_data_schema/single/formDataAPI.ts +115 -0
  18. package/examples/form_data_schema/{k6-script.sample.ts → single/k6-script.sample.ts} +2 -2
  19. package/examples/form_data_schema/split/formDataAPI.schemas.ts +24 -0
  20. package/examples/form_data_schema/split/formDataAPI.ts +98 -0
  21. package/examples/form_data_schema/split/k6-script.sample.ts +11 -0
  22. package/examples/form_data_schema/tags/default.ts +98 -0
  23. package/examples/form_data_schema/tags/formDataAPI.schemas.ts +24 -0
  24. package/examples/form_data_schema/tags/k6-script.sample.ts +11 -0
  25. package/examples/form_url_encoded_data_schema/single/formURLEncodedAPI.ts +112 -0
  26. package/examples/form_url_encoded_data_schema/{k6-script.sample.ts → single/k6-script.sample.ts} +2 -2
  27. package/examples/form_url_encoded_data_schema/split/formURLEncodedAPI.schemas.ts +24 -0
  28. package/examples/form_url_encoded_data_schema/split/formURLEncodedAPI.ts +98 -0
  29. package/examples/form_url_encoded_data_schema/split/k6-script.sample.ts +11 -0
  30. package/examples/form_url_encoded_data_schema/tags/default.ts +98 -0
  31. package/examples/form_url_encoded_data_schema/tags/formURLEncodedAPI.schemas.ts +24 -0
  32. package/examples/form_url_encoded_data_schema/tags/k6-script.sample.ts +11 -0
  33. package/examples/form_url_encoded_data_with_query_params_schema/single/formURLEncodedAPIWithQueryParameters.ts +128 -0
  34. package/examples/form_url_encoded_data_with_query_params_schema/{k6-script.sample.ts → single/k6-script.sample.ts} +2 -2
  35. package/examples/form_url_encoded_data_with_query_params_schema/split/formURLEncodedAPIWithQueryParameters.schemas.ts +35 -0
  36. package/examples/form_url_encoded_data_with_query_params_schema/split/formURLEncodedAPIWithQueryParameters.ts +104 -0
  37. package/examples/form_url_encoded_data_with_query_params_schema/split/k6-script.sample.ts +14 -0
  38. package/examples/form_url_encoded_data_with_query_params_schema/tags/default.ts +104 -0
  39. package/examples/form_url_encoded_data_with_query_params_schema/tags/formURLEncodedAPIWithQueryParameters.schemas.ts +35 -0
  40. package/examples/form_url_encoded_data_with_query_params_schema/tags/k6-script.sample.ts +14 -0
  41. package/examples/get_request_with_path_parameters_schema/{k6-script.sample.ts → single/k6-script.sample.ts} +2 -2
  42. package/examples/get_request_with_path_parameters_schema/single/simpleAPI.ts +94 -0
  43. package/examples/get_request_with_path_parameters_schema/split/k6-script.sample.ts +11 -0
  44. package/examples/get_request_with_path_parameters_schema/split/simpleAPI.schemas.ts +12 -0
  45. package/examples/get_request_with_path_parameters_schema/split/simpleAPI.ts +90 -0
  46. package/examples/get_request_with_path_parameters_schema/tags/default.ts +90 -0
  47. package/examples/get_request_with_path_parameters_schema/tags/k6-script.sample.ts +11 -0
  48. package/examples/get_request_with_path_parameters_schema/tags/simpleAPI.schemas.ts +12 -0
  49. package/examples/headers_schema/single/headerDemoAPI.ts +202 -0
  50. package/examples/headers_schema/{k6-script.sample.ts → single/k6-script.sample.ts} +2 -2
  51. package/examples/headers_schema/split/headerDemoAPI.schemas.ts +32 -0
  52. package/examples/headers_schema/split/headerDemoAPI.ts +184 -0
  53. package/examples/headers_schema/split/k6-script.sample.ts +25 -0
  54. package/examples/headers_schema/tags/default.ts +182 -0
  55. package/examples/headers_schema/tags/headerDemoAPI.schemas.ts +32 -0
  56. package/examples/headers_schema/tags/k6-script.sample.ts +25 -0
  57. package/examples/no_title_schema/{k6-script.sample.ts → single/k6-script.sample.ts} +2 -2
  58. package/examples/no_title_schema/single/k6Client.ts +87 -0
  59. package/examples/{basic_schema → no_title_schema/split}/k6-script.sample.ts +2 -2
  60. package/examples/no_title_schema/split/k6Client.schemas.ts +9 -0
  61. package/examples/no_title_schema/split/k6Client.ts +85 -0
  62. package/examples/no_title_schema/tags/default.ts +85 -0
  63. package/examples/no_title_schema/tags/k6-script.sample.ts +11 -0
  64. package/examples/no_title_schema/tags/k6Client.schemas.ts +9 -0
  65. package/examples/post_request_with_query_params/single/exampleAPI.ts +126 -0
  66. package/examples/post_request_with_query_params/{k6-script.sample.ts → single/k6-script.sample.ts} +2 -2
  67. package/examples/post_request_with_query_params/split/exampleAPI.schemas.ts +33 -0
  68. package/examples/post_request_with_query_params/split/exampleAPI.ts +105 -0
  69. package/examples/post_request_with_query_params/split/k6-script.sample.ts +14 -0
  70. package/examples/post_request_with_query_params/tags/default.ts +105 -0
  71. package/examples/post_request_with_query_params/tags/exampleAPI.schemas.ts +33 -0
  72. package/examples/post_request_with_query_params/tags/k6-script.sample.ts +14 -0
  73. package/examples/query_params_schema/single/exampleAPI.ts +120 -0
  74. package/examples/query_params_schema/{k6-script.sample.ts → single/k6-script.sample.ts} +2 -2
  75. package/examples/query_params_schema/split/exampleAPI.schemas.ts +37 -0
  76. package/examples/query_params_schema/split/exampleAPI.ts +94 -0
  77. package/examples/query_params_schema/split/k6-script.sample.ts +11 -0
  78. package/examples/query_params_schema/tags/default.ts +94 -0
  79. package/examples/query_params_schema/tags/exampleAPI.schemas.ts +37 -0
  80. package/examples/query_params_schema/tags/k6-script.sample.ts +11 -0
  81. package/examples/simple_post_request_schema/{exampleAPI.ts → single/exampleAPI.ts} +49 -49
  82. package/examples/simple_post_request_schema/{k6-script.sample.ts → single/k6-script.sample.ts} +2 -2
  83. package/examples/simple_post_request_schema/split/exampleAPI.schemas.ts +47 -0
  84. package/examples/simple_post_request_schema/split/exampleAPI.ts +99 -0
  85. package/examples/simple_post_request_schema/split/k6-script.sample.ts +13 -0
  86. package/examples/simple_post_request_schema/tags/default.ts +99 -0
  87. package/examples/simple_post_request_schema/tags/exampleAPI.schemas.ts +47 -0
  88. package/examples/simple_post_request_schema/tags/k6-script.sample.ts +13 -0
  89. package/images/openapi-to-k6.png +0 -0
  90. package/package.json +2 -2
  91. package/src/analytics.ts +3 -1
  92. package/src/cli.ts +34 -8
  93. package/src/constants.ts +7 -1
  94. package/src/{generator.ts → generator/index.ts} +8 -21
  95. package/src/{k6SdkClient.ts → generator/k6Client.ts} +174 -222
  96. package/src/type.d.ts +4 -4
  97. package/tests/e2e/schema.json +8 -0
  98. package/tests/e2e/{k6Script.ts → single/k6Script.ts} +7 -2
  99. package/tests/e2e/split/k6Script.ts +82 -0
  100. package/tests/e2e/tags/k6Script.ts +106 -0
  101. package/tests/functional-tests/fixtures/schemas/basic_schema.json +1 -4
  102. package/tests/functional-tests/fixtures/schemas/form_data_schema.json +4 -4
  103. package/tests/functional-tests/fixtures/schemas/form_url_encoded_data_schema.json +3 -3
  104. package/tests/functional-tests/fixtures/schemas/form_url_encoded_data_with_query_params_schema.json +2 -2
  105. package/tests/functional-tests/fixtures/schemas/get_request_with_path_parameters_schema.json +2 -2
  106. package/tests/functional-tests/fixtures/schemas/headers_schema.json +7 -8
  107. package/tests/functional-tests/fixtures/schemas/no_title_schema.json +2 -5
  108. package/tests/functional-tests/fixtures/schemas/post_request_with_query_params.json +3 -4
  109. package/tests/functional-tests/fixtures/schemas/query_params_schema.json +3 -3
  110. package/tests/functional-tests/fixtures/schemas/simple_post_request_schema.json +3 -5
  111. package/tests/functional-tests/generator.test.ts +46 -5
  112. package/examples/basic_schema/simpleAPI.ts +0 -87
  113. package/examples/form_data_schema/formDataAPI.ts +0 -115
  114. package/examples/form_url_encoded_data_schema/formURLEncodedAPI.ts +0 -114
  115. package/examples/form_url_encoded_data_with_query_params_schema/formURLEncodedAPIWithQueryParameters.ts +0 -130
  116. package/examples/get_request_with_path_parameters_schema/simpleAPI.ts +0 -94
  117. package/examples/headers_schema/headerDemoAPI.ts +0 -196
  118. package/examples/no_title_schema/K6Client.ts +0 -86
  119. package/examples/post_request_with_query_params/exampleAPI.ts +0 -124
  120. package/examples/query_params_schema/exampleAPI.ts +0 -118
  121. package/examples/update_examples.sh +0 -21
@@ -1,114 +0,0 @@
1
- /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.1.2
3
- * Do not edit manually.
4
- * Form URL Encoded API
5
- * OpenAPI spec version: 1.0.0
6
- */
7
- import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js'
8
- import http from 'k6/http'
9
- import type { Params, Response, ResponseBody } from 'k6/http'
10
- export type PostSubmitForm400 = {
11
- error?: string
12
- success?: boolean
13
- }
14
-
15
- export type PostSubmitForm200 = {
16
- message?: string
17
- success?: boolean
18
- }
19
-
20
- export type PostSubmitFormBody = {
21
- /** Age of the user */
22
- age?: number
23
- /** Email address of the user */
24
- email: string
25
- /** Name of the user */
26
- name: string
27
- }
28
-
29
- export type CreateFormURLEncodedAPIOptions = {
30
- baseUrl: string
31
- commonRequestParameters?: Params
32
- }
33
-
34
- /**
35
- * This is the base client to use for interacting with the API.
36
- */
37
- export const createFormURLEncodedAPI = (
38
- clientOptions: CreateFormURLEncodedAPIOptions
39
- ) => {
40
- const cleanBaseUrl = clientOptions.baseUrl.replace(/\/+$/, '')
41
- /**
42
- * This endpoint accepts form URL-encoded data.
43
- * @summary Submit form data
44
- */
45
- const postSubmitForm = (
46
- postSubmitFormBody: PostSubmitFormBody,
47
- requestParameters?: Params
48
- ): PostSubmitFormResponse => {
49
- const url = new URL(cleanBaseUrl + `/submit-form`)
50
- const mergedRequestParameters = _mergeRequestParameters(
51
- requestParameters || {},
52
- clientOptions.commonRequestParameters
53
- )
54
- const response = http.request(
55
- 'POST',
56
- url.toString(),
57
- JSON.stringify(postSubmitFormBody),
58
- {
59
- ...mergedRequestParameters,
60
- headers: {
61
- 'Content-Type': 'application/x-www-form-urlencoded',
62
- ...mergedRequestParameters?.headers,
63
- },
64
- }
65
- )
66
- let data
67
-
68
- try {
69
- data = response.json()
70
- } catch (error) {
71
- data = response.body
72
- }
73
- return {
74
- response,
75
- data,
76
- }
77
- }
78
-
79
- return { postSubmitForm }
80
- }
81
-
82
- export type PostSubmitFormResponse = {
83
- response: Response
84
- data: PostSubmitForm200 | ResponseBody
85
- }
86
-
87
- /**
88
- * Merges the provided request parameters with default parameters for the client.
89
- *
90
- * @param {Params} requestParameters - The parameters provided specifically for the request
91
- * @param {Params} commonRequestParameters - Common parameters for all requests
92
- * @returns {Params} - The merged parameters
93
- */
94
- const _mergeRequestParameters = (
95
- requestParameters?: Params,
96
- commonRequestParameters?: Params
97
- ): Params => {
98
- return {
99
- ...commonRequestParameters, // Default to common parameters
100
- ...requestParameters, // Override with request-specific parameters
101
- headers: {
102
- ...(commonRequestParameters?.headers || {}), // Ensure headers are defined
103
- ...(requestParameters?.headers || {}),
104
- },
105
- cookies: {
106
- ...(commonRequestParameters?.cookies || {}), // Ensure cookies are defined
107
- ...(requestParameters?.cookies || {}),
108
- },
109
- tags: {
110
- ...(commonRequestParameters?.tags || {}), // Ensure tags are defined
111
- ...(requestParameters?.tags || {}),
112
- },
113
- }
114
- }
@@ -1,130 +0,0 @@
1
- /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.1.2
3
- * Do not edit manually.
4
- * Form URL Encoded API with Query Parameters
5
- * OpenAPI spec version: 1.0.0
6
- */
7
- import { URL, URLSearchParams } from 'https://jslib.k6.io/url/1.0.0/index.js'
8
- import http from 'k6/http'
9
- import type { Params, Response, ResponseBody } from 'k6/http'
10
- export type PostSubmitForm400 = {
11
- error?: string
12
- success?: boolean
13
- }
14
-
15
- export type PostSubmitForm200 = {
16
- message?: string
17
- success?: boolean
18
- }
19
-
20
- export type PostSubmitFormBody = {
21
- /** Age of the user */
22
- age?: number
23
- /** Email address of the user */
24
- email: string
25
- /** Name of the user */
26
- name: string
27
- }
28
-
29
- export type PostSubmitFormParams = {
30
- /**
31
- * Authentication token
32
- */
33
- token: string
34
- /**
35
- * Locale of the user
36
- */
37
- locale?: string
38
- }
39
-
40
- export type CreateFormURLEncodedAPIWithQueryParametersOptions = {
41
- baseUrl: string
42
- commonRequestParameters?: Params
43
- }
44
-
45
- /**
46
- * This is the base client to use for interacting with the API.
47
- */
48
- export const createFormURLEncodedAPIWithQueryParameters = (
49
- clientOptions: CreateFormURLEncodedAPIWithQueryParametersOptions
50
- ) => {
51
- const cleanBaseUrl = clientOptions.baseUrl.replace(/\/+$/, '')
52
- /**
53
- * This endpoint accepts form URL-encoded data and query parameters.
54
- * @summary Submit form data with query parameters
55
- */
56
- const postSubmitForm = (
57
- postSubmitFormBody: PostSubmitFormBody,
58
- params: PostSubmitFormParams,
59
- requestParameters?: Params
60
- ): PostSubmitFormResponse => {
61
- const url = new URL(
62
- cleanBaseUrl +
63
- `/submit-form` +
64
- `?${new URLSearchParams(params).toString()}`
65
- )
66
- const mergedRequestParameters = _mergeRequestParameters(
67
- requestParameters || {},
68
- clientOptions.commonRequestParameters
69
- )
70
- const response = http.request(
71
- 'POST',
72
- url.toString(),
73
- JSON.stringify(postSubmitFormBody),
74
- {
75
- ...mergedRequestParameters,
76
- headers: {
77
- 'Content-Type': 'application/x-www-form-urlencoded',
78
- ...mergedRequestParameters?.headers,
79
- },
80
- }
81
- )
82
- let data
83
-
84
- try {
85
- data = response.json()
86
- } catch (error) {
87
- data = response.body
88
- }
89
- return {
90
- response,
91
- data,
92
- }
93
- }
94
-
95
- return { postSubmitForm }
96
- }
97
-
98
- export type PostSubmitFormResponse = {
99
- response: Response
100
- data: PostSubmitForm200 | ResponseBody
101
- }
102
-
103
- /**
104
- * Merges the provided request parameters with default parameters for the client.
105
- *
106
- * @param {Params} requestParameters - The parameters provided specifically for the request
107
- * @param {Params} commonRequestParameters - Common parameters for all requests
108
- * @returns {Params} - The merged parameters
109
- */
110
- const _mergeRequestParameters = (
111
- requestParameters?: Params,
112
- commonRequestParameters?: Params
113
- ): Params => {
114
- return {
115
- ...commonRequestParameters, // Default to common parameters
116
- ...requestParameters, // Override with request-specific parameters
117
- headers: {
118
- ...(commonRequestParameters?.headers || {}), // Ensure headers are defined
119
- ...(requestParameters?.headers || {}),
120
- },
121
- cookies: {
122
- ...(commonRequestParameters?.cookies || {}), // Ensure cookies are defined
123
- ...(requestParameters?.cookies || {}),
124
- },
125
- tags: {
126
- ...(commonRequestParameters?.tags || {}), // Ensure tags are defined
127
- ...(requestParameters?.tags || {}),
128
- },
129
- }
130
- }
@@ -1,94 +0,0 @@
1
- /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.1.2
3
- * Do not edit manually.
4
- * Simple API
5
- * An API with a single GET request that takes a path parameter
6
- * OpenAPI spec version: 1.0.0
7
- */
8
- import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js'
9
- import http from 'k6/http'
10
- import type { Params, Response, ResponseBody } from 'k6/http'
11
- export type GetItemById200 = {
12
- description?: string
13
- id?: string
14
- name?: string
15
- }
16
-
17
- export type CreateSimpleAPIOptions = {
18
- baseUrl: string
19
- commonRequestParameters?: Params
20
- }
21
-
22
- /**
23
- * This is the base client to use for interacting with the API.
24
- */
25
- export const createSimpleAPI = (clientOptions: CreateSimpleAPIOptions) => {
26
- const cleanBaseUrl = clientOptions.baseUrl.replace(/\/+$/, '')
27
- /**
28
- * Returns a single item based on the provided ID
29
- * @summary Get an item by its ID
30
- */
31
- const getItemById = (
32
- id: string,
33
- requestParameters?: Params
34
- ): GetItemByIdResponse => {
35
- const url = new URL(cleanBaseUrl + `/items/${id}`)
36
- const mergedRequestParameters = _mergeRequestParameters(
37
- requestParameters || {},
38
- clientOptions.commonRequestParameters
39
- )
40
- const response = http.request(
41
- 'GET',
42
- url.toString(),
43
- undefined,
44
- mergedRequestParameters
45
- )
46
- let data
47
-
48
- try {
49
- data = response.json()
50
- } catch (error) {
51
- data = response.body
52
- }
53
- return {
54
- response,
55
- data,
56
- }
57
- }
58
-
59
- return { getItemById }
60
- }
61
-
62
- export type GetItemByIdResponse = {
63
- response: Response
64
- data: GetItemById200 | ResponseBody
65
- }
66
-
67
- /**
68
- * Merges the provided request parameters with default parameters for the client.
69
- *
70
- * @param {Params} requestParameters - The parameters provided specifically for the request
71
- * @param {Params} commonRequestParameters - Common parameters for all requests
72
- * @returns {Params} - The merged parameters
73
- */
74
- const _mergeRequestParameters = (
75
- requestParameters?: Params,
76
- commonRequestParameters?: Params
77
- ): Params => {
78
- return {
79
- ...commonRequestParameters, // Default to common parameters
80
- ...requestParameters, // Override with request-specific parameters
81
- headers: {
82
- ...(commonRequestParameters?.headers || {}), // Ensure headers are defined
83
- ...(requestParameters?.headers || {}),
84
- },
85
- cookies: {
86
- ...(commonRequestParameters?.cookies || {}), // Ensure cookies are defined
87
- ...(requestParameters?.cookies || {}),
88
- },
89
- tags: {
90
- ...(commonRequestParameters?.tags || {}), // Ensure tags are defined
91
- ...(requestParameters?.tags || {}),
92
- },
93
- }
94
- }
@@ -1,196 +0,0 @@
1
- /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.1.2
3
- * Do not edit manually.
4
- * Header Demo API
5
- * An API demonstrating the use of headers in different ways
6
- * OpenAPI spec version: 1.0.0
7
- */
8
- import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js'
9
- import http from 'k6/http'
10
- import type { Params, Response, ResponseBody } from 'k6/http'
11
- export type GetExampleResponseHeaders200 = {
12
- status?: string
13
- }
14
-
15
- export type PostExamplePostBody = {
16
- data?: string
17
- }
18
-
19
- export type PostExamplePostHeaders = {
20
- /**
21
- * Bearer token for authorization
22
- */
23
- Authorization: string
24
- }
25
-
26
- export type GetExampleGet200 = {
27
- message?: string
28
- }
29
-
30
- export type GetExampleGetHeaders = {
31
- /**
32
- * A custom header for this request
33
- */
34
- 'X-Custom-Header'?: string
35
- }
36
-
37
- export type CreateHeaderDemoAPIOptions = {
38
- baseUrl: string
39
- commonRequestParameters?: Params
40
- }
41
-
42
- /**
43
- * This is the base client to use for interacting with the API.
44
- */
45
- export const createHeaderDemoAPI = (
46
- clientOptions: CreateHeaderDemoAPIOptions
47
- ) => {
48
- const cleanBaseUrl = clientOptions.baseUrl.replace(/\/+$/, '')
49
- /**
50
- * This GET request demonstrates the use of custom request headers
51
- * @summary GET request with headers
52
- */
53
- const getExampleGet = (
54
- headers?: GetExampleGetHeaders,
55
- requestParameters?: Params
56
- ): GetExampleGetResponse => {
57
- const url = new URL(cleanBaseUrl + `/example-get`)
58
- const mergedRequestParameters = _mergeRequestParameters(
59
- requestParameters || {},
60
- clientOptions.commonRequestParameters
61
- )
62
- const response = http.request('GET', url.toString(), undefined, {
63
- ...mergedRequestParameters,
64
- headers: {
65
- ...headers,
66
- ...mergedRequestParameters?.headers,
67
- },
68
- })
69
- let data
70
-
71
- try {
72
- data = response.json()
73
- } catch (error) {
74
- data = response.body
75
- }
76
- return {
77
- response,
78
- data,
79
- }
80
- }
81
-
82
- /**
83
- * This POST request uses a security header for authentication
84
- * @summary POST request with security headers
85
- */
86
- const postExamplePost = (
87
- postExamplePostBody: PostExamplePostBody,
88
- headers: PostExamplePostHeaders,
89
- requestParameters?: Params
90
- ): PostExamplePostResponse => {
91
- const url = new URL(cleanBaseUrl + `/example-post`)
92
- const mergedRequestParameters = _mergeRequestParameters(
93
- requestParameters || {},
94
- clientOptions.commonRequestParameters
95
- )
96
- const response = http.request(
97
- 'POST',
98
- url.toString(),
99
- JSON.stringify(postExamplePostBody),
100
- {
101
- ...mergedRequestParameters,
102
- headers: {
103
- 'Content-Type': 'application/json',
104
- ...headers,
105
- ...mergedRequestParameters?.headers,
106
- },
107
- }
108
- )
109
- let data
110
-
111
- try {
112
- data = response.json()
113
- } catch (error) {
114
- data = response.body
115
- }
116
- return {
117
- response,
118
- data,
119
- }
120
- }
121
-
122
- /**
123
- * This GET request returns custom response headers
124
- * @summary GET request with response headers only
125
- */
126
- const getExampleResponseHeaders = (
127
- requestParameters?: Params
128
- ): GetExampleResponseHeadersResponse => {
129
- const url = new URL(cleanBaseUrl + `/example-response-headers`)
130
- const mergedRequestParameters = _mergeRequestParameters(
131
- requestParameters || {},
132
- clientOptions.commonRequestParameters
133
- )
134
- const response = http.request(
135
- 'GET',
136
- url.toString(),
137
- undefined,
138
- mergedRequestParameters
139
- )
140
- let data
141
-
142
- try {
143
- data = response.json()
144
- } catch (error) {
145
- data = response.body
146
- }
147
- return {
148
- response,
149
- data,
150
- }
151
- }
152
-
153
- return { getExampleGet, postExamplePost, getExampleResponseHeaders }
154
- }
155
-
156
- export type GetExampleGetResponse = {
157
- response: Response
158
- data: GetExampleGet200 | ResponseBody
159
- }
160
- export type PostExamplePostResponse = {
161
- response: Response
162
- data: void | ResponseBody
163
- }
164
- export type GetExampleResponseHeadersResponse = {
165
- response: Response
166
- data: GetExampleResponseHeaders200 | ResponseBody
167
- }
168
-
169
- /**
170
- * Merges the provided request parameters with default parameters for the client.
171
- *
172
- * @param {Params} requestParameters - The parameters provided specifically for the request
173
- * @param {Params} commonRequestParameters - Common parameters for all requests
174
- * @returns {Params} - The merged parameters
175
- */
176
- const _mergeRequestParameters = (
177
- requestParameters?: Params,
178
- commonRequestParameters?: Params
179
- ): Params => {
180
- return {
181
- ...commonRequestParameters, // Default to common parameters
182
- ...requestParameters, // Override with request-specific parameters
183
- headers: {
184
- ...(commonRequestParameters?.headers || {}), // Ensure headers are defined
185
- ...(requestParameters?.headers || {}),
186
- },
187
- cookies: {
188
- ...(commonRequestParameters?.cookies || {}), // Ensure cookies are defined
189
- ...(requestParameters?.cookies || {}),
190
- },
191
- tags: {
192
- ...(commonRequestParameters?.tags || {}), // Ensure tags are defined
193
- ...(requestParameters?.tags || {}),
194
- },
195
- }
196
- }
@@ -1,86 +0,0 @@
1
- /**
2
- * Automatically generated by @grafana/openapi-to-k6: 0.1.2
3
- * Do not edit manually.
4
- * OpenAPI spec version: 1.0.0
5
- */
6
- import { URL } from 'https://jslib.k6.io/url/1.0.0/index.js'
7
- import http from 'k6/http'
8
- import type { Params, Response, ResponseBody } from 'k6/http'
9
- export type GetExample200 = {
10
- message?: string
11
- }
12
-
13
- export type CreateK6ClientOptions = {
14
- baseUrl: string
15
- commonRequestParameters?: Params
16
- }
17
-
18
- /**
19
- * This is the base client to use for interacting with the API.
20
- */
21
- export const createK6Client = (clientOptions: CreateK6ClientOptions) => {
22
- const cleanBaseUrl = clientOptions.baseUrl.replace(/\/+$/, '')
23
- /**
24
- * @summary Retrieve example data
25
- */
26
- const getExample = (requestParameters?: Params): GetExampleResponse => {
27
- const url = new URL(cleanBaseUrl + `/example`)
28
- const mergedRequestParameters = _mergeRequestParameters(
29
- requestParameters || {},
30
- clientOptions.commonRequestParameters
31
- )
32
- const response = http.request(
33
- 'GET',
34
- url.toString(),
35
- undefined,
36
- mergedRequestParameters
37
- )
38
- let data
39
-
40
- try {
41
- data = response.json()
42
- } catch (error) {
43
- data = response.body
44
- }
45
- return {
46
- response,
47
- data,
48
- }
49
- }
50
-
51
- return { getExample }
52
- }
53
-
54
- export type GetExampleResponse = {
55
- response: Response
56
- data: GetExample200 | ResponseBody
57
- }
58
-
59
- /**
60
- * Merges the provided request parameters with default parameters for the client.
61
- *
62
- * @param {Params} requestParameters - The parameters provided specifically for the request
63
- * @param {Params} commonRequestParameters - Common parameters for all requests
64
- * @returns {Params} - The merged parameters
65
- */
66
- const _mergeRequestParameters = (
67
- requestParameters?: Params,
68
- commonRequestParameters?: Params
69
- ): Params => {
70
- return {
71
- ...commonRequestParameters, // Default to common parameters
72
- ...requestParameters, // Override with request-specific parameters
73
- headers: {
74
- ...(commonRequestParameters?.headers || {}), // Ensure headers are defined
75
- ...(requestParameters?.headers || {}),
76
- },
77
- cookies: {
78
- ...(commonRequestParameters?.cookies || {}), // Ensure cookies are defined
79
- ...(requestParameters?.cookies || {}),
80
- },
81
- tags: {
82
- ...(commonRequestParameters?.tags || {}), // Ensure tags are defined
83
- ...(requestParameters?.tags || {}),
84
- },
85
- }
86
- }