diff --git a/.changeset/tender-colts-greet.md b/.changeset/tender-colts-greet.md index 77c1a8f1b5..ff59bf0bea 100644 --- a/.changeset/tender-colts-greet.md +++ b/.changeset/tender-colts-greet.md @@ -2,4 +2,4 @@ '@backstage/plugin-catalog-backend-module-openapi': patch --- -Enabled support of resolving `$refs` in all kind of yaml documents, not only OpenAPI. This implicitly adds `$ref` resolving support for AsyncAPI specs. Thus, the `openApiPlaceholderResolver` has been renamed to `refPlaceholderResolver`. +Enabled support of resolving `$refs` in all kind of yaml documents, not only OpenAPI. This implicitly adds `$ref` resolving support for AsyncAPI specs. Thus, the `openApiPlaceholderResolver` has been renamed to `jsonSchemaRefPlaceholderResolver`. diff --git a/plugins/catalog-backend-module-openapi/README.md b/plugins/catalog-backend-module-openapi/README.md index 44e0307ac7..6b988e15f5 100644 --- a/plugins/catalog-backend-module-openapi/README.md +++ b/plugins/catalog-backend-module-openapi/README.md @@ -17,13 +17,13 @@ yarn add --cwd packages/backend @backstage/plugin-catalog-backend-module-openapi ### Adding the plugin to your `packages/backend` -#### **refPlaceholderResolver** +#### **jsonSchemaRefPlaceholderResolver** -The placeholder resolver can be added by importing `refPlaceholderResolver` in `src/plugins/catalog.ts` in your `backend` package and adding the following. +The placeholder resolver can be added by importing `jsonSchemaRefPlaceholderResolver` in `src/plugins/catalog.ts` in your `backend` package and adding the following. ```ts -builder.setPlaceholderResolver('openapi', refPlaceholderResolver); -builder.setPlaceholderResolver('asyncapi', refPlaceholderResolver); +builder.setPlaceholderResolver('openapi', jsonSchemaRefPlaceholderResolver); +builder.setPlaceholderResolver('asyncapi', jsonSchemaRefPlaceholderResolver); ``` This allows you to use the `$openapi` placeholder when referencing your OpenAPI specification and `$asyncapi` when referencing your AsyncAPI specifications. This will then resolve all `$ref` instances in your specification. diff --git a/plugins/catalog-backend-module-openapi/api-report.md b/plugins/catalog-backend-module-openapi/api-report.md index 9dbc899dde..7294fd5936 100644 --- a/plugins/catalog-backend-module-openapi/api-report.md +++ b/plugins/catalog-backend-module-openapi/api-report.md @@ -14,7 +14,7 @@ import { ScmIntegrations } from '@backstage/integration'; import { UrlReader } from '@backstage/backend-common'; // @public @deprecated (undocumented) -export const openApiPlaceholderResolver: typeof refPlaceholderResolver; +export const openApiPlaceholderResolver: typeof jsonSchemaRefPlaceholderResolver; // @public @deprecated (undocumented) export class OpenApiRefProcessor implements CatalogProcessor { @@ -38,7 +38,7 @@ export class OpenApiRefProcessor implements CatalogProcessor { } // @public (undocumented) -export function refPlaceholderResolver( +export function jsonSchemaRefPlaceholderResolver( params: PlaceholderResolverParams, ): Promise; diff --git a/plugins/catalog-backend-module-openapi/src/index.ts b/plugins/catalog-backend-module-openapi/src/index.ts index 57f3d8806f..170c925a7f 100644 --- a/plugins/catalog-backend-module-openapi/src/index.ts +++ b/plugins/catalog-backend-module-openapi/src/index.ts @@ -13,12 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { refPlaceholderResolver } from './refPlaceholderResolver'; +import { jsonSchemaRefPlaceholderResolver } from './jsonSchemaRefPlaceholderResolver'; export { OpenApiRefProcessor } from './OpenApiRefProcessor'; -export { refPlaceholderResolver } from './refPlaceholderResolver'; +export { jsonSchemaRefPlaceholderResolver } from './jsonSchemaRefPlaceholderResolver'; /** * @public - * @deprecated replaced by refPlaceholderResolver + * @deprecated replaced by jsonSchemaRefPlaceholderResolver */ -export const openApiPlaceholderResolver = refPlaceholderResolver; +export const openApiPlaceholderResolver = jsonSchemaRefPlaceholderResolver; diff --git a/plugins/catalog-backend-module-openapi/src/refPlaceholderResolver.test.ts b/plugins/catalog-backend-module-openapi/src/jsonSchemaRefPlaceholderResolver.test.ts similarity index 86% rename from plugins/catalog-backend-module-openapi/src/refPlaceholderResolver.test.ts rename to plugins/catalog-backend-module-openapi/src/jsonSchemaRefPlaceholderResolver.test.ts index 9ecf0a2995..6aecc9b468 100644 --- a/plugins/catalog-backend-module-openapi/src/refPlaceholderResolver.test.ts +++ b/plugins/catalog-backend-module-openapi/src/jsonSchemaRefPlaceholderResolver.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ import { PlaceholderResolverParams } from '@backstage/plugin-catalog-backend'; -import { refPlaceholderResolver } from './refPlaceholderResolver'; +import { jsonSchemaRefPlaceholderResolver } from './jsonSchemaRefPlaceholderResolver'; import { bundleFileWithRefs } from './lib'; jest.mock('./lib', () => ({ @@ -23,7 +23,7 @@ jest.mock('./lib', () => ({ const bundled = ''; -describe('refPlaceholderResolver', () => { +describe('jsonSchemaRefPlaceholderResolver', () => { const mockResolveUrl = jest.fn(); mockResolveUrl.mockReturnValue('mockUrl'); @@ -50,13 +50,13 @@ describe('refPlaceholderResolver', () => { it('should throw error if unable to bundle the OpenAPI specification', async () => { (bundleFileWithRefs as any).mockRejectedValue(new Error('TEST')); - await expect(refPlaceholderResolver(params)).rejects.toThrow( + await expect(jsonSchemaRefPlaceholderResolver(params)).rejects.toThrow( 'Placeholder $openapi unable to bundle OpenAPI specification', ); }); it('should bundle the OpenAPI specification', async () => { - const result = await refPlaceholderResolver(params); + const result = await jsonSchemaRefPlaceholderResolver(params); expect(result).toEqual(bundled); }); diff --git a/plugins/catalog-backend-module-openapi/src/refPlaceholderResolver.ts b/plugins/catalog-backend-module-openapi/src/jsonSchemaRefPlaceholderResolver.ts similarity index 94% rename from plugins/catalog-backend-module-openapi/src/refPlaceholderResolver.ts rename to plugins/catalog-backend-module-openapi/src/jsonSchemaRefPlaceholderResolver.ts index 39c2e639ab..befafbde8a 100644 --- a/plugins/catalog-backend-module-openapi/src/refPlaceholderResolver.ts +++ b/plugins/catalog-backend-module-openapi/src/jsonSchemaRefPlaceholderResolver.ts @@ -19,7 +19,7 @@ import { processingResult } from '@backstage/plugin-catalog-node'; import { bundleFileWithRefs } from './lib'; /** @public */ -export async function refPlaceholderResolver( +export async function jsonSchemaRefPlaceholderResolver( params: PlaceholderResolverParams, ): Promise { const { content, url } = await readTextLocation(params); @@ -35,7 +35,7 @@ export async function refPlaceholderResolver( ); } catch (error) { throw new Error( - `Placeholder \$${params.key} unable to bundle OpenAPI specification at ${params.value}, ${error}`, + `Placeholder \$${params.key} unable to bundle the file at ${params.value}, ${error}`, ); } }