@qualisero/openapi-endpoint 0.18.3 → 0.19.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/README.md +5 -5
- package/dist/cli.js +70 -28
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +21 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -171,19 +171,19 @@ const mutation = api.createPet.useMutation({
|
|
|
171
171
|
|
|
172
172
|
```typescript
|
|
173
173
|
import type {
|
|
174
|
-
ApiResponse, // Response type (
|
|
175
|
-
|
|
174
|
+
ApiResponse, // Response type (ALL fields required - default)
|
|
175
|
+
ApiResponseStrict, // Response type (only readonly/required fields required - strict mode)
|
|
176
176
|
ApiRequest, // Request body type
|
|
177
177
|
ApiPathParams, // Path parameters type
|
|
178
178
|
ApiQueryParams, // Query parameters type
|
|
179
179
|
} from './generated/api-operations'
|
|
180
180
|
|
|
181
|
-
// ApiResponse - ALL fields required
|
|
181
|
+
// ApiResponse - default, ALL fields required
|
|
182
182
|
type PetResponse = ApiResponse<OpType.getPet>
|
|
183
183
|
// { readonly id: string, name: string, tag: string, status: 'available' | ... }
|
|
184
184
|
|
|
185
|
-
//
|
|
186
|
-
type
|
|
185
|
+
// ApiResponseStrict - strict mode, only readonly/required fields required
|
|
186
|
+
type PetResponseStrict = ApiResponseStrict<OpType.getPet>
|
|
187
187
|
// { readonly id: string, name: string, tag?: string, status?: 'available' | ... }
|
|
188
188
|
```
|
|
189
189
|
|
package/dist/cli.js
CHANGED
|
@@ -830,13 +830,15 @@ function _generateOperationJSDoc(operationId, method, apiPath) {
|
|
|
830
830
|
lines.push(' */');
|
|
831
831
|
return lines.join('\n');
|
|
832
832
|
}
|
|
833
|
-
function generateApiClientContent(operationMap) {
|
|
833
|
+
function generateApiClientContent(operationMap, useStrictResponse = false) {
|
|
834
834
|
const ids = Object.keys(operationMap).sort();
|
|
835
835
|
const QUERY_HTTP = new Set(['GET', 'HEAD', 'OPTIONS']);
|
|
836
836
|
const isQuery = (id) => QUERY_HTTP.has(operationMap[id].method);
|
|
837
837
|
const hasPathParams = (id) => operationMap[id].path.includes('{');
|
|
838
838
|
// Registry for invalidateOperations support
|
|
839
839
|
const registryEntries = ids.map((id) => ` ${id}: { path: '${operationMap[id].path}' },`).join('\n');
|
|
840
|
+
// Response type to use for ALL operations (queries and mutations)
|
|
841
|
+
const responseType = useStrictResponse ? 'ApiResponseStrict' : 'ApiResponse';
|
|
840
842
|
// Generic factory helpers (4 patterns)
|
|
841
843
|
const helpers = `/**
|
|
842
844
|
* Generic query helper for operations without path parameters.
|
|
@@ -847,7 +849,7 @@ function _queryNoParams<Op extends AllOps>(
|
|
|
847
849
|
cfg: { path: string; method: HttpMethod; listPath: string | null },
|
|
848
850
|
enums: Record<string, unknown>,
|
|
849
851
|
) {
|
|
850
|
-
type Response =
|
|
852
|
+
type Response = ${responseType}<Op>
|
|
851
853
|
type QueryParams = ApiQueryParams<Op>
|
|
852
854
|
|
|
853
855
|
const useQuery = (
|
|
@@ -914,7 +916,7 @@ function _queryWithParams<Op extends AllOps>(
|
|
|
914
916
|
) {
|
|
915
917
|
type PathParams = ApiPathParams<Op>
|
|
916
918
|
type PathParamsInput = ApiPathParamsInput<Op>
|
|
917
|
-
type Response =
|
|
919
|
+
type Response = ${responseType}<Op>
|
|
918
920
|
type QueryParams = ApiQueryParams<Op>
|
|
919
921
|
|
|
920
922
|
// Two-overload interface: non-function (exact via object-literal checking) +
|
|
@@ -1008,7 +1010,7 @@ function _mutationNoParams<Op extends AllOps>(
|
|
|
1008
1010
|
enums: Record<string, unknown>,
|
|
1009
1011
|
) {
|
|
1010
1012
|
type RequestBody = ApiRequest<Op>
|
|
1011
|
-
type Response =
|
|
1013
|
+
type Response = ${responseType}<Op>
|
|
1012
1014
|
type QueryParams = ApiQueryParams<Op>
|
|
1013
1015
|
|
|
1014
1016
|
const useMutation = (
|
|
@@ -1053,7 +1055,7 @@ function _mutationWithParams<Op extends AllOps>(
|
|
|
1053
1055
|
type PathParams = ApiPathParams<Op>
|
|
1054
1056
|
type PathParamsInput = ApiPathParamsInput<Op>
|
|
1055
1057
|
type RequestBody = ApiRequest<Op>
|
|
1056
|
-
type Response =
|
|
1058
|
+
type Response = ${responseType}<Op>
|
|
1057
1059
|
type QueryParams = ApiQueryParams<Op>
|
|
1058
1060
|
|
|
1059
1061
|
// Three-overload interface:
|
|
@@ -1177,7 +1179,7 @@ import {
|
|
|
1177
1179
|
import type { QueryClient } from '@tanstack/vue-query'
|
|
1178
1180
|
|
|
1179
1181
|
import type {
|
|
1180
|
-
ApiResponse,
|
|
1182
|
+
ApiResponse${useStrictResponse ? ',\n ApiResponseStrict' : ''},
|
|
1181
1183
|
ApiRequest,
|
|
1182
1184
|
ApiPathParams,
|
|
1183
1185
|
ApiPathParamsInput,
|
|
@@ -1261,9 +1263,9 @@ ${factoryCalls}
|
|
|
1261
1263
|
export type ApiClient = ReturnType<typeof createApiClient>
|
|
1262
1264
|
`;
|
|
1263
1265
|
}
|
|
1264
|
-
async function generateApiClientFile(openApiSpec, outputDir, excludePrefix) {
|
|
1266
|
+
async function generateApiClientFile(openApiSpec, outputDir, excludePrefix, useStrictResponse = false) {
|
|
1265
1267
|
const operationMap = buildOperationMap(openApiSpec, excludePrefix);
|
|
1266
|
-
const content = generateApiClientContent(operationMap);
|
|
1268
|
+
const content = generateApiClientContent(operationMap, useStrictResponse);
|
|
1267
1269
|
fs.writeFileSync(path.join(outputDir, 'api-client.ts'), content);
|
|
1268
1270
|
console.log(`✅ Generated api-client.ts (${Object.keys(operationMap).length} operations)`);
|
|
1269
1271
|
}
|
|
@@ -1277,16 +1279,18 @@ Arguments:
|
|
|
1277
1279
|
output-directory Directory where generated files will be saved
|
|
1278
1280
|
|
|
1279
1281
|
Options:
|
|
1280
|
-
--exclude-prefix PREFIX
|
|
1281
|
-
|
|
1282
|
-
--
|
|
1283
|
-
|
|
1282
|
+
--exclude-prefix PREFIX Exclude operations with operationId starting with PREFIX
|
|
1283
|
+
(default: '_deprecated', use 'false' to disable)
|
|
1284
|
+
--use-strict-response Use ApiResponseStrict for responses (only readonly/required fields required)
|
|
1285
|
+
(default: false; when disabled, ALL fields required)
|
|
1286
|
+
--help, -h Show this help message
|
|
1284
1287
|
|
|
1285
1288
|
Examples:
|
|
1286
1289
|
npx @qualisero/openapi-endpoint ./api/openapi.json ./src/generated
|
|
1287
1290
|
npx @qualisero/openapi-endpoint https://api.example.com/openapi.json ./src/api
|
|
1288
1291
|
npx @qualisero/openapi-endpoint ./api.json ./src/gen --exclude-prefix _internal
|
|
1289
|
-
npx @qualisero/openapi-endpoint ./api.json ./src/gen --
|
|
1292
|
+
npx @qualisero/openapi-endpoint ./api.json ./src/gen --exclude-prefix false
|
|
1293
|
+
npx @qualisero/openapi-endpoint ./api.json ./src/gen --use-strict-response true
|
|
1290
1294
|
|
|
1291
1295
|
This command will generate:
|
|
1292
1296
|
- openapi-types.ts (TypeScript types from OpenAPI spec)
|
|
@@ -1295,6 +1299,20 @@ This command will generate:
|
|
|
1295
1299
|
- api-types.ts (Types namespace for type-only access)
|
|
1296
1300
|
- api-enums.ts (Type-safe enum objects from OpenAPI spec)
|
|
1297
1301
|
- api-schemas.ts (Type aliases for schema objects from OpenAPI spec)
|
|
1302
|
+
|
|
1303
|
+
Response Typing (--use-strict-response):
|
|
1304
|
+
By default, ApiResponse makes ALL fields required for all endpoint responses
|
|
1305
|
+
(GET, POST, PUT, PATCH, DELETE). This assumes the API always returns all fields
|
|
1306
|
+
regardless of how they're marked in the OpenAPI spec.
|
|
1307
|
+
|
|
1308
|
+
When --use-strict-response is enabled, ApiResponseStrict is used instead, which
|
|
1309
|
+
only marks fields as required if they are:
|
|
1310
|
+
- readonly (server-generated fields like 'id'), OR
|
|
1311
|
+
- marked as required in the OpenAPI spec
|
|
1312
|
+
All other fields remain optional.
|
|
1313
|
+
|
|
1314
|
+
Note: readonly only affects REQUEST BODIES (mutations), not response types.
|
|
1315
|
+
Request bodies always exclude readonly fields (client cannot set them).
|
|
1298
1316
|
`);
|
|
1299
1317
|
}
|
|
1300
1318
|
// ============================================================================
|
|
@@ -1471,10 +1489,10 @@ function generateApiOperationsContent(operationMap, opEnums, schemaEnumNames) {
|
|
|
1471
1489
|
const typeHelpers = `
|
|
1472
1490
|
type AllOps = keyof operations
|
|
1473
1491
|
|
|
1474
|
-
/** Response data type
|
|
1492
|
+
/** Response data type (ALL fields required - default). */
|
|
1475
1493
|
export type ApiResponse<K extends AllOps> = _ApiResponse<operations, K>
|
|
1476
|
-
/** Response data type
|
|
1477
|
-
export type
|
|
1494
|
+
/** Response data type (only readonly/required fields required - strict mode). */
|
|
1495
|
+
export type ApiResponseStrict<K extends AllOps> = _ApiResponseStrict<operations, K>
|
|
1478
1496
|
/** Request body type. */
|
|
1479
1497
|
export type ApiRequest<K extends AllOps> = _ApiRequest<operations, K>
|
|
1480
1498
|
/** Path parameters type. */
|
|
@@ -1495,7 +1513,7 @@ import type { operations } from './openapi-types.js'
|
|
|
1495
1513
|
import { HttpMethod } from '@qualisero/openapi-endpoint'
|
|
1496
1514
|
import type {
|
|
1497
1515
|
ApiResponse as _ApiResponse,
|
|
1498
|
-
|
|
1516
|
+
ApiResponseStrict as _ApiResponseStrict,
|
|
1499
1517
|
ApiRequest as _ApiRequest,
|
|
1500
1518
|
ApiPathParams as _ApiPathParams,
|
|
1501
1519
|
ApiPathParamsInput as _ApiPathParamsInput,
|
|
@@ -1566,10 +1584,10 @@ function generateApiTypesContent(operationMap, opEnums) {
|
|
|
1566
1584
|
})
|
|
1567
1585
|
.join('\n');
|
|
1568
1586
|
const commonLines = [
|
|
1569
|
-
` /**
|
|
1570
|
-
` export type Response
|
|
1571
|
-
` /** Response type - only
|
|
1572
|
-
` export type
|
|
1587
|
+
` /** Response type - ALL fields required (default). */`,
|
|
1588
|
+
` export type Response = _ApiResponse<OpenApiOperations, '${id}'>`,
|
|
1589
|
+
` /** Response type - only readonly/required fields required (strict mode). */`,
|
|
1590
|
+
` export type StrictResponse = _ApiResponseStrict<OpenApiOperations, '${id}'>`,
|
|
1573
1591
|
];
|
|
1574
1592
|
if (!query) {
|
|
1575
1593
|
commonLines.push(` /** Request body type. */`, ` export type Request = _ApiRequest<OpenApiOperations, '${id}'>`);
|
|
@@ -1584,7 +1602,7 @@ function generateApiTypesContent(operationMap, opEnums) {
|
|
|
1584
1602
|
|
|
1585
1603
|
import type {
|
|
1586
1604
|
ApiResponse as _ApiResponse,
|
|
1587
|
-
|
|
1605
|
+
ApiResponseStrict as _ApiResponseStrict,
|
|
1588
1606
|
ApiRequest as _ApiRequest,
|
|
1589
1607
|
ApiPathParams as _ApiPathParams,
|
|
1590
1608
|
ApiQueryParams as _ApiQueryParams,
|
|
@@ -1634,13 +1652,18 @@ async function main() {
|
|
|
1634
1652
|
const [openapiInput, outputDir, ...optionArgs] = args;
|
|
1635
1653
|
// Parse options
|
|
1636
1654
|
let excludePrefix = '_deprecated'; // default
|
|
1655
|
+
let useStrictResponse = false; // default to false
|
|
1637
1656
|
for (let i = 0; i < optionArgs.length; i++) {
|
|
1638
|
-
if (optionArgs[i] === '--
|
|
1639
|
-
excludePrefix = null;
|
|
1640
|
-
}
|
|
1641
|
-
else if (optionArgs[i] === '--exclude-prefix') {
|
|
1657
|
+
if (optionArgs[i] === '--exclude-prefix') {
|
|
1642
1658
|
if (i + 1 < optionArgs.length) {
|
|
1643
|
-
|
|
1659
|
+
const value = optionArgs[i + 1];
|
|
1660
|
+
// If value is 'false', treat as no exclusion
|
|
1661
|
+
if (value === 'false') {
|
|
1662
|
+
excludePrefix = null;
|
|
1663
|
+
}
|
|
1664
|
+
else {
|
|
1665
|
+
excludePrefix = value;
|
|
1666
|
+
}
|
|
1644
1667
|
i++; // Skip next arg since we consumed it
|
|
1645
1668
|
}
|
|
1646
1669
|
else {
|
|
@@ -1649,6 +1672,18 @@ async function main() {
|
|
|
1649
1672
|
process.exit(1);
|
|
1650
1673
|
}
|
|
1651
1674
|
}
|
|
1675
|
+
else if (optionArgs[i] === '--use-strict-response') {
|
|
1676
|
+
if (i + 1 < optionArgs.length) {
|
|
1677
|
+
const value = optionArgs[i + 1];
|
|
1678
|
+
// Support 'true' or 'false' values
|
|
1679
|
+
useStrictResponse = value !== 'false';
|
|
1680
|
+
i++; // Skip next arg since we consumed it
|
|
1681
|
+
}
|
|
1682
|
+
else {
|
|
1683
|
+
// Flag without value means true
|
|
1684
|
+
useStrictResponse = true;
|
|
1685
|
+
}
|
|
1686
|
+
}
|
|
1652
1687
|
}
|
|
1653
1688
|
try {
|
|
1654
1689
|
// Ensure output directory exists
|
|
@@ -1663,6 +1698,13 @@ async function main() {
|
|
|
1663
1698
|
else {
|
|
1664
1699
|
console.log(`✅ Including all operations (no exclusion filter)`);
|
|
1665
1700
|
}
|
|
1701
|
+
// Log response typing setting
|
|
1702
|
+
if (useStrictResponse) {
|
|
1703
|
+
console.log(`✅ Using ApiResponseStrict (only readonly/required fields required)`);
|
|
1704
|
+
}
|
|
1705
|
+
else {
|
|
1706
|
+
console.log(`✅ Using ApiResponse (ALL fields required)`);
|
|
1707
|
+
}
|
|
1666
1708
|
// Fetch and parse OpenAPI spec once
|
|
1667
1709
|
let openapiContent = await fetchOpenAPISpec(openapiInput);
|
|
1668
1710
|
const openApiSpec = JSON.parse(openapiContent);
|
|
@@ -1678,7 +1720,7 @@ async function main() {
|
|
|
1678
1720
|
generateApiSchemas(openapiContent, outputDir, excludePrefix),
|
|
1679
1721
|
generateApiOperationsFile(openApiSpec, outputDir, excludePrefix, schemaEnumNames),
|
|
1680
1722
|
generateApiTypesFile(openApiSpec, outputDir, excludePrefix),
|
|
1681
|
-
generateApiClientFile(openApiSpec, outputDir, excludePrefix),
|
|
1723
|
+
generateApiClientFile(openApiSpec, outputDir, excludePrefix, useStrictResponse),
|
|
1682
1724
|
]);
|
|
1683
1725
|
console.log('🎉 Code generation completed successfully!');
|
|
1684
1726
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { useEndpointMutation } from './openapi-mutation';
|
|
|
3
3
|
export { defaultQueryClient } from './openapi-helpers';
|
|
4
4
|
export type { QueryReturn, LazyQueryReturn } from './openapi-query';
|
|
5
5
|
export type { MutationReturn } from './openapi-mutation';
|
|
6
|
-
export type { EndpointConfig, QueryOptions, LazyQueryFetchOptions, MutationOptions, MutationVars, CacheInvalidationOptions, Refetchable, MutateFn, MutateAsyncFn, MutateAsyncReturn, ReactiveOr, NoExcessReturn, AxiosRequestConfigExtended, ApiResponse,
|
|
6
|
+
export type { EndpointConfig, QueryOptions, LazyQueryFetchOptions, MutationOptions, MutationVars, CacheInvalidationOptions, Refetchable, MutateFn, MutateAsyncFn, MutateAsyncReturn, ReactiveOr, NoExcessReturn, AxiosRequestConfigExtended, ApiResponse, ApiResponseStrict, ApiRequest, ApiPathParams, ApiPathParamsInput, ApiQueryParams, } from './types';
|
|
7
7
|
export { HttpMethod, QUERY_METHODS, MUTATION_METHODS, isQueryMethod, isMutationMethod } from './types';
|
|
8
8
|
export type { Ref, ComputedRef } from 'vue';
|
|
9
9
|
export type { MaybeRefOrGetter } from '@vue/reactivity';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAKtD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAKxD,YAAY,EAEV,cAAc,EAGd,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,YAAY,EAGZ,wBAAwB,EACxB,WAAW,EAGX,QAAQ,EACR,aAAa,EACb,iBAAiB,EAGjB,UAAU,EACV,cAAc,EAGd,0BAA0B,EAG1B,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAKtD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAKxD,YAAY,EAEV,cAAc,EAGd,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,YAAY,EAGZ,wBAAwB,EACxB,WAAW,EAGX,QAAQ,EACR,aAAa,EACb,iBAAiB,EAGjB,UAAU,EACV,cAAc,EAGd,0BAA0B,EAG1B,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAA;AAKhB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAKtG,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,KAAK,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -188,17 +188,17 @@ export type MutateAsyncFn<TResponse, TPathParams extends Record<string, unknown>
|
|
|
188
188
|
* interfaces with known keys (like those generated by openapi-typescript).
|
|
189
189
|
*/
|
|
190
190
|
type AnyOps = object;
|
|
191
|
-
type RequireAll<T> = {
|
|
192
|
-
[K in keyof T]-?: T[K]
|
|
191
|
+
type RequireAll<T> = T extends (infer E)[] ? RequireAll<E>[] : T extends readonly (infer E)[] ? readonly RequireAll<E>[] : {
|
|
192
|
+
[K in keyof T]-?: RequireAll<T[K]>;
|
|
193
193
|
};
|
|
194
194
|
type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends <T>() => T extends Y ? 1 : 2 ? A : B;
|
|
195
195
|
type IsReadonly<T, K extends keyof T> = IfEquals<Pick<T, K>, {
|
|
196
196
|
-readonly [Q in K]: T[K];
|
|
197
197
|
}, false, true>;
|
|
198
|
-
type
|
|
199
|
-
[K in keyof T as IsReadonly<T, K> extends true ? K : never]-?: T[K];
|
|
198
|
+
type RequireReadonlyOrRequired<T> = {
|
|
199
|
+
[K in keyof T as IsReadonly<T, K> extends true ? K : undefined extends T[K] ? never : K]-?: T[K];
|
|
200
200
|
} & {
|
|
201
|
-
[K in keyof T as IsReadonly<T, K> extends false ? K : never]: T[K];
|
|
201
|
+
[K in keyof T as IsReadonly<T, K> extends false ? (undefined extends T[K] ? K : never) : never]: T[K];
|
|
202
202
|
};
|
|
203
203
|
type ExtractResponseData<Ops extends AnyOps, Op extends keyof Ops> = Ops[Op] extends {
|
|
204
204
|
responses: {
|
|
@@ -250,14 +250,26 @@ type ExtractResponseData<Ops extends AnyOps, Op extends keyof Ops> = Ops[Op] ext
|
|
|
250
250
|
};
|
|
251
251
|
} ? Data : unknown;
|
|
252
252
|
/**
|
|
253
|
-
* Extract
|
|
254
|
-
*
|
|
253
|
+
* Extract response data type (ALL fields required - default behavior).
|
|
254
|
+
*
|
|
255
|
+
* Used for ALL endpoint responses (GET, POST, PUT, PATCH, DELETE) by default.
|
|
256
|
+
* Assumes the API always returns all fields regardless of how they're marked in the spec.
|
|
257
|
+
*
|
|
258
|
+
* @example `ApiResponse<operations, 'getPet'>` → `{ readonly id: string, name: string, tag: string, status: 'available' | ... }`
|
|
255
259
|
*/
|
|
256
260
|
export type ApiResponse<Ops extends AnyOps, Op extends keyof Ops> = RequireAll<ExtractResponseData<Ops, Op>>;
|
|
257
261
|
/**
|
|
258
|
-
* Extract
|
|
262
|
+
* Extract response data type (only readonly OR required fields are required - strict mode).
|
|
263
|
+
*
|
|
264
|
+
* Used for ALL endpoint responses when `--use-strict-response` flag is enabled.
|
|
265
|
+
* Only marks fields as required if they are:
|
|
266
|
+
* - readonly (server-generated), OR
|
|
267
|
+
* - marked as required in the OpenAPI spec
|
|
268
|
+
* All other fields remain optional.
|
|
269
|
+
*
|
|
270
|
+
* @example `ApiResponseStrict<operations, 'getPet'>` → `{ readonly id: string, name: string, tag?: string, status?: 'available' | ... }`
|
|
259
271
|
*/
|
|
260
|
-
export type
|
|
272
|
+
export type ApiResponseStrict<Ops extends AnyOps, Op extends keyof Ops> = RequireReadonlyOrRequired<ExtractResponseData<Ops, Op>>;
|
|
261
273
|
type Writable<T> = {
|
|
262
274
|
-readonly [K in keyof T as IfEquals<Pick<T, K>, {
|
|
263
275
|
-readonly [Q in K]: T[K];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|