renamed refPlaceholderResolver.ts to jsonSchemaRefPlaceholderResolver.ts
Signed-off-by: Thorsten Hake <mail@thorsten-hake.com>
This commit is contained in:
@@ -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`.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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<JsonValue>;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
+4
-4
@@ -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 = '<bundled-specification>';
|
||||
|
||||
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);
|
||||
});
|
||||
+2
-2
@@ -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<JsonValue> {
|
||||
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}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user