diff --git a/packages/openapi-ts-tests/main/test/2.0.x.test.ts b/packages/openapi-ts-tests/main/test/2.0.x.test.ts index b84b87e226..8ff192415b 100644 --- a/packages/openapi-ts-tests/main/test/2.0.x.test.ts +++ b/packages/openapi-ts-tests/main/test/2.0.x.test.ts @@ -44,6 +44,13 @@ describe(`OpenAPI ${version}`, () => { }; const scenarios = [ + { + config: createConfig({ + input: 'json-pointer-path.json', + output: 'json-pointer-path', + }), + description: 'handles json pointer to path', + }, { config: createConfig({ input: 'additional-properties-false.json', diff --git a/packages/openapi-ts-tests/main/test/3.0.x.test.ts b/packages/openapi-ts-tests/main/test/3.0.x.test.ts index 86dde4f23c..b212e96c33 100644 --- a/packages/openapi-ts-tests/main/test/3.0.x.test.ts +++ b/packages/openapi-ts-tests/main/test/3.0.x.test.ts @@ -44,6 +44,13 @@ describe(`OpenAPI ${version}`, () => { }; const scenarios = [ + { + config: createConfig({ + input: 'json-pointer-path.json', + output: 'json-pointer-path', + }), + description: 'handles json pointer to path', + }, { config: createConfig({ input: 'additional-properties-false.json', diff --git a/packages/openapi-ts-tests/main/test/3.1.x.test.ts b/packages/openapi-ts-tests/main/test/3.1.x.test.ts index 4534e8eb90..6de3d811dd 100644 --- a/packages/openapi-ts-tests/main/test/3.1.x.test.ts +++ b/packages/openapi-ts-tests/main/test/3.1.x.test.ts @@ -44,6 +44,13 @@ describe(`OpenAPI ${version}`, () => { }; const scenarios = [ + { + config: createConfig({ + input: 'json-pointer-path.json', + output: 'json-pointer-path', + }), + description: 'handles json pointer to path', + }, { config: createConfig({ input: 'pattern-properties.json', diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/json-pointer-path/index.ts b/packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/json-pointer-path/index.ts new file mode 100644 index 0000000000..56bade120a --- /dev/null +++ b/packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/json-pointer-path/index.ts @@ -0,0 +1,2 @@ +// This file is auto-generated by @hey-api/openapi-ts +export * from './types.gen'; \ No newline at end of file diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/json-pointer-path/types.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/json-pointer-path/types.gen.ts new file mode 100644 index 0000000000..a8cdd74716 --- /dev/null +++ b/packages/openapi-ts-tests/main/test/__snapshots__/2.0.x/json-pointer-path/types.gen.ts @@ -0,0 +1,43 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type GetFooBooData = { + body?: never; + path?: never; + query?: never; + url: '/foo/boo'; +}; + +export type GetFooBooResponses = { + /** + * Successful response + */ + 200: Array<{ + foo?: number; + bar?: string; + }>; +}; + +export type GetFooBooResponse = GetFooBooResponses[keyof GetFooBooResponses]; + +export type PostFooBooData = { + body?: never; + path?: never; + query?: never; + url: '/foo/boo'; +}; + +export type PostFooBooResponses = { + /** + * successful operation + */ + 200: Array<{ + foo?: number; + bar?: string; + }>; +}; + +export type PostFooBooResponse = PostFooBooResponses[keyof PostFooBooResponses]; + +export type ClientOptions = { + baseUrl: string; +}; \ No newline at end of file diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/json-pointer-path/index.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/json-pointer-path/index.ts new file mode 100644 index 0000000000..56bade120a --- /dev/null +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/json-pointer-path/index.ts @@ -0,0 +1,2 @@ +// This file is auto-generated by @hey-api/openapi-ts +export * from './types.gen'; \ No newline at end of file diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/json-pointer-path/types.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/json-pointer-path/types.gen.ts new file mode 100644 index 0000000000..cf8861bb08 --- /dev/null +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/json-pointer-path/types.gen.ts @@ -0,0 +1,43 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type GetFooBooData = { + body?: never; + path?: never; + query?: never; + url: '/foo/boo'; +}; + +export type GetFooBooResponses = { + /** + * Successful response + */ + 200: Array<{ + foo?: number; + bar?: string; + }>; +}; + +export type GetFooBooResponse = GetFooBooResponses[keyof GetFooBooResponses]; + +export type PostFooBooData = { + body?: never; + path?: never; + query?: never; + url: '/foo/boo'; +}; + +export type PostFooBooResponses = { + /** + * successful operation + */ + 200: Array<{ + foo?: number; + bar?: string; + }>; +}; + +export type PostFooBooResponse = PostFooBooResponses[keyof PostFooBooResponses]; + +export type ClientOptions = { + baseUrl: `${string}://${string}` | (string & {}); +}; \ No newline at end of file diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/json-pointer-path/index.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/json-pointer-path/index.ts new file mode 100644 index 0000000000..56bade120a --- /dev/null +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/json-pointer-path/index.ts @@ -0,0 +1,2 @@ +// This file is auto-generated by @hey-api/openapi-ts +export * from './types.gen'; \ No newline at end of file diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/json-pointer-path/types.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/json-pointer-path/types.gen.ts new file mode 100644 index 0000000000..cf8861bb08 --- /dev/null +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/json-pointer-path/types.gen.ts @@ -0,0 +1,43 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type GetFooBooData = { + body?: never; + path?: never; + query?: never; + url: '/foo/boo'; +}; + +export type GetFooBooResponses = { + /** + * Successful response + */ + 200: Array<{ + foo?: number; + bar?: string; + }>; +}; + +export type GetFooBooResponse = GetFooBooResponses[keyof GetFooBooResponses]; + +export type PostFooBooData = { + body?: never; + path?: never; + query?: never; + url: '/foo/boo'; +}; + +export type PostFooBooResponses = { + /** + * successful operation + */ + 200: Array<{ + foo?: number; + bar?: string; + }>; +}; + +export type PostFooBooResponse = PostFooBooResponses[keyof PostFooBooResponses]; + +export type ClientOptions = { + baseUrl: `${string}://${string}` | (string & {}); +}; \ No newline at end of file diff --git a/packages/openapi-ts-tests/specs/2.0.x/json-pointer-path.json b/packages/openapi-ts-tests/specs/2.0.x/json-pointer-path.json new file mode 100644 index 0000000000..a1d98b87e7 --- /dev/null +++ b/packages/openapi-ts-tests/specs/2.0.x/json-pointer-path.json @@ -0,0 +1,37 @@ +{ + "swagger": "2.0", + "info": { "title": "Sample API", "version": "1.0.0" }, + "paths": { + "/foo/boo": { + "get": { + "summary": "Get foo", + "responses": { + "200": { + "description": "Successful response", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "foo": { "type": "integer" }, + "bar": { "type": "string" } + } + } + } + } + } + }, + "post": { + "summary": "Post foo", + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/paths/~1foo~1boo/get/responses/200/schema" + } + } + } + } + } + } +} diff --git a/packages/openapi-ts-tests/specs/3.0.x/json-pointer-path.json b/packages/openapi-ts-tests/specs/3.0.x/json-pointer-path.json new file mode 100644 index 0000000000..3ae114516d --- /dev/null +++ b/packages/openapi-ts-tests/specs/3.0.x/json-pointer-path.json @@ -0,0 +1,45 @@ +{ + "openapi": "3.0.0", + "info": { "title": "Sample API", "version": "1.0.0" }, + "paths": { + "/foo/boo": { + "get": { + "summary": "Get foo", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "foo": { "type": "integer" }, + "bar": { "type": "string" } + } + } + } + } + } + } + } + }, + "post": { + "summary": "Post foo", + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/paths/~1foo~1boo/get/responses/200/content/application~1json/schema" + } + } + } + } + } + } + } + } +} diff --git a/packages/openapi-ts-tests/specs/3.1.x/json-pointer-path.json b/packages/openapi-ts-tests/specs/3.1.x/json-pointer-path.json new file mode 100644 index 0000000000..0266ec2c3c --- /dev/null +++ b/packages/openapi-ts-tests/specs/3.1.x/json-pointer-path.json @@ -0,0 +1,45 @@ +{ + "openapi": "3.1.0", + "info": { "title": "Sample API", "version": "1.0.0" }, + "paths": { + "/foo/boo": { + "get": { + "summary": "Get foo", + "responses": { + "200": { + "description": "Successful response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "foo": { "type": "integer" }, + "bar": { "type": "string" } + } + } + } + } + } + } + } + }, + "post": { + "summary": "Post foo", + "responses": { + "200": { + "description": "successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/paths/~1foo~1boo/get/responses/200/content/application~1json/schema" + } + } + } + } + } + } + } + } +}