Skip to content

Commit 4852795

Browse files
committed
feat: add spec-types package
1 parent b198c5c commit 4852795

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+741
-865
lines changed

.changeset/green-shoes-wish.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@hey-api/spec-types": minor
3+
---
4+
5+
**feat**: initial release

.changeset/yellow-eagles-stare.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@hey-api/openapi-ts": patch
3+
"@hey-api/shared": patch
4+
---
5+
6+
**internal**: add `@hey-api/spec-types` dependency

packages/openapi-python/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
"@hey-api/codegen-core": "workspace:*",
6464
"@hey-api/json-schema-ref-parser": "workspace:*",
6565
"@hey-api/shared": "workspace:*",
66+
"@hey-api/spec-types": "workspace:*",
6667
"@hey-api/types": "workspace:*",
6768
"ansi-colors": "4.1.3",
6869
"color-support": "1.1.3",

packages/openapi-python/src/plugins/@hey-api/sdk/examples/types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import type { FeatureToggle, IR, LinguistLanguages } from '@hey-api/shared';
1+
import type { FeatureToggle, IR } from '@hey-api/shared';
2+
import type { LinguistLanguages } from '@hey-api/spec-types';
23
import type { MaybeFunc } from '@hey-api/types';
34

45
import type { CallArgs, DollarPyDsl, ExampleOptions } from '../../../../py-dsl';

packages/openapi-ts/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
"@hey-api/codegen-core": "workspace:*",
7373
"@hey-api/json-schema-ref-parser": "workspace:*",
7474
"@hey-api/shared": "workspace:*",
75+
"@hey-api/spec-types": "workspace:*",
7576
"@hey-api/types": "workspace:*",
7677
"ansi-colors": "4.1.3",
7778
"color-support": "1.1.3",

packages/openapi-ts/src/plugins/@hey-api/schemas/plugin.ts

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
1-
import type {
2-
Context,
3-
OpenApi,
4-
OpenApiV2_0_XTypes,
5-
OpenApiV3_0_XTypes,
6-
OpenApiV3_1_XTypes,
7-
} from '@hey-api/shared';
1+
import type { Context, OpenApi } from '@hey-api/shared';
82
import { satisfies } from '@hey-api/shared';
3+
import type { OpenAPIV2, OpenAPIV3, OpenAPIV3_1 } from '@hey-api/spec-types';
94

105
import { $ } from '../../../ts-dsl';
116
import type { HeyApiSchemasPlugin } from './types';
@@ -15,10 +10,7 @@ const stripSchema = ({
1510
schema,
1611
}: {
1712
plugin: HeyApiSchemasPlugin['Instance'];
18-
schema:
19-
| OpenApiV2_0_XTypes['SchemaObject']
20-
| OpenApiV3_0_XTypes['SchemaObject']
21-
| OpenApiV3_1_XTypes['SchemaObject'];
13+
schema: OpenAPIV2.SchemaObject | OpenAPIV3.SchemaObject | OpenAPIV3_1.SchemaObject;
2214
}) => {
2315
if (plugin.config.type === 'form') {
2416
if (schema.description) {
@@ -50,16 +42,16 @@ const schemaToJsonSchemaDraft_04 = ({
5042
}: {
5143
context: Context;
5244
plugin: HeyApiSchemasPlugin['Instance'];
53-
schema: OpenApiV2_0_XTypes['SchemaObject'];
54-
}): OpenApiV2_0_XTypes['SchemaObject'] => {
45+
schema: OpenAPIV2.SchemaObject;
46+
}): OpenAPIV2.SchemaObject => {
5547
if (Array.isArray(_schema)) {
5648
return _schema.map((item) =>
5749
schemaToJsonSchemaDraft_04({
5850
context,
5951
plugin,
6052
schema: item,
6153
}),
62-
) as unknown as OpenApiV2_0_XTypes['SchemaObject'];
54+
) as unknown as OpenAPIV2.SchemaObject;
6355
}
6456

6557
const schema = structuredClone(_schema);
@@ -95,7 +87,7 @@ const schemaToJsonSchemaDraft_04 = ({
9587
schema.items = schemaToJsonSchemaDraft_04({
9688
context,
9789
plugin,
98-
schema: schema.items as OpenApiV2_0_XTypes['SchemaObject'],
90+
schema: schema.items as OpenAPIV2.SchemaObject,
9991
});
10092
}
10193

@@ -123,16 +115,16 @@ const schemaToJsonSchemaDraft_05 = ({
123115
}: {
124116
context: Context;
125117
plugin: HeyApiSchemasPlugin['Instance'];
126-
schema: OpenApiV3_0_XTypes['SchemaObject'] | OpenApiV3_0_XTypes['ReferenceObject'];
127-
}): OpenApiV3_0_XTypes['SchemaObject'] | OpenApiV3_0_XTypes['ReferenceObject'] => {
118+
schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject;
119+
}): OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject => {
128120
if (Array.isArray(_schema)) {
129121
return _schema.map((item) =>
130122
schemaToJsonSchemaDraft_05({
131123
context,
132124
plugin,
133125
schema: item,
134126
}),
135-
) as unknown as OpenApiV3_0_XTypes['SchemaObject'] | OpenApiV3_0_XTypes['ReferenceObject'];
127+
) as unknown as OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject;
136128
}
137129

138130
const schema = structuredClone(_schema);
@@ -216,16 +208,16 @@ const schemaToJsonSchema2020_12 = ({
216208
}: {
217209
context: Context;
218210
plugin: HeyApiSchemasPlugin['Instance'];
219-
schema: OpenApiV3_1_XTypes['SchemaObject'];
220-
}): OpenApiV3_1_XTypes['SchemaObject'] => {
211+
schema: OpenAPIV3_1.SchemaObject;
212+
}): OpenAPIV3_1.SchemaObject => {
221213
if (Array.isArray(_schema)) {
222214
return _schema.map((item) =>
223215
schemaToJsonSchema2020_12({
224216
context,
225217
plugin,
226218
schema: item,
227219
}),
228-
) as unknown as OpenApiV3_1_XTypes['SchemaObject'];
220+
) as unknown as OpenAPIV3_1.SchemaObject;
229221
}
230222

231223
const schema = structuredClone(_schema);
@@ -319,10 +311,10 @@ const schemaName = ({
319311
name: string;
320312
plugin: HeyApiSchemasPlugin['Instance'];
321313
schema:
322-
| OpenApiV2_0_XTypes['SchemaObject']
323-
| OpenApiV3_0_XTypes['ReferenceObject']
324-
| OpenApiV3_0_XTypes['SchemaObject']
325-
| OpenApiV3_1_XTypes['SchemaObject'];
314+
| OpenAPIV2.SchemaObject
315+
| OpenAPIV3.ReferenceObject
316+
| OpenAPIV3.SchemaObject
317+
| OpenAPIV3_1.SchemaObject;
326318
}): string => {
327319
let customName = '';
328320

packages/openapi-ts/src/plugins/@hey-api/schemas/types.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
import type {
2-
DefinePlugin,
3-
OpenApiV2_0_XTypes,
4-
OpenApiV3_0_XTypes,
5-
OpenApiV3_1_XTypes,
6-
Plugin,
7-
} from '@hey-api/shared';
1+
import type { DefinePlugin, Plugin } from '@hey-api/shared';
2+
import type { OpenAPIV2, OpenAPIV3, OpenAPIV3_1 } from '@hey-api/spec-types';
83

94
export type UserConfig = Plugin.Name<'@hey-api/schemas'> &
105
Plugin.Hooks &
@@ -21,10 +16,10 @@ export type UserConfig = Plugin.Name<'@hey-api/schemas'> &
2116
| ((
2217
name: string,
2318
schema:
24-
| OpenApiV2_0_XTypes['SchemaObject']
25-
| OpenApiV3_0_XTypes['ReferenceObject']
26-
| OpenApiV3_0_XTypes['SchemaObject']
27-
| OpenApiV3_1_XTypes['SchemaObject'],
19+
| OpenAPIV2.SchemaObject
20+
| OpenAPIV3.ReferenceObject
21+
| OpenAPIV3.SchemaObject
22+
| OpenAPIV3_1.SchemaObject,
2823
) => string);
2924
/**
3025
* Choose schema type to generate. Select 'form' if you don't want

packages/openapi-ts/src/plugins/@hey-api/sdk/examples/types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import type { FeatureToggle, IR, LinguistLanguages } from '@hey-api/shared';
1+
import type { FeatureToggle, IR } from '@hey-api/shared';
2+
import type { LinguistLanguages } from '@hey-api/spec-types';
23
import type { MaybeFunc } from '@hey-api/types';
34

45
import type { CallArgs, DollarTsDsl, ExampleOptions } from '../../../../ts-dsl';

packages/shared/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"dependencies": {
4343
"@hey-api/codegen-core": "workspace:*",
4444
"@hey-api/json-schema-ref-parser": "workspace:*",
45+
"@hey-api/spec-types": "workspace:*",
4546
"@hey-api/types": "workspace:*",
4647
"ansi-colors": "4.1.3",
4748
"cross-spawn": "7.0.6",

packages/shared/src/index.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,12 @@ export type {
7979
} from './ir/types';
8080
export { addItemsToSchema } from './ir/utils';
8181
export { parseOpenApiSpec } from './openApi';
82-
export type { OpenApiV2_0_X, OpenApiV2_0_XTypes } from './openApi/2.0.x';
8382
export { parseV2_0_X } from './openApi/2.0.x';
84-
export type { OpenApiV3_0_X, OpenApiV3_0_XTypes } from './openApi/3.0.x';
8583
export { parseV3_0_X } from './openApi/3.0.x';
86-
export type { OpenApiV3_1_X, OpenApiV3_1_XTypes } from './openApi/3.1.x';
8784
export { parseV3_1_X } from './openApi/3.1.x';
8885
export type { OperationsStrategy } from './openApi/shared/locations';
8986
export type { OperationPathStrategy, OperationStructureStrategy } from './openApi/shared/locations';
9087
export { OperationPath, OperationStrategy } from './openApi/shared/locations';
91-
export type {
92-
CodeSampleObject,
93-
EnumExtensions,
94-
LinguistLanguages,
95-
} from './openApi/shared/types/openapi-spec-extensions';
9688
export { buildGraph } from './openApi/shared/utils/graph';
9789
export { patchOpenApiSpec } from './openApi/shared/utils/patch';
9890
export type {

0 commit comments

Comments
 (0)