From eb6a928eb0f0f1f7057437a3b28dc14552511a0d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 16 Dec 2020 16:12:29 +0100 Subject: [PATCH] core-api: avoid exporting AnyRoutes, AnyExternalRoutes, and ExternalRouteRef constructor --- packages/core-api/src/app/types.ts | 2 +- packages/core-api/src/plugin/index.ts | 17 ++++++++++++++++- packages/core-api/src/routing/RouteRef.ts | 10 +++++++++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/packages/core-api/src/app/types.ts b/packages/core-api/src/app/types.ts index 898f4d978b..b6b1002d12 100644 --- a/packages/core-api/src/app/types.ts +++ b/packages/core-api/src/app/types.ts @@ -16,7 +16,7 @@ import { ComponentType } from 'react'; import { IconComponent, SystemIconKey, SystemIcons } from '../icons'; -import { BackstagePlugin, AnyExternalRoutes } from '../plugin'; +import { BackstagePlugin, AnyExternalRoutes } from '../plugin/types'; import { RouteRef } from '../routing'; import { AnyApiFactory } from '../apis'; import { AppTheme, ProfileInfo } from '../apis/definitions'; diff --git a/packages/core-api/src/plugin/index.ts b/packages/core-api/src/plugin/index.ts index 79b0575755..bbeeca4824 100644 --- a/packages/core-api/src/plugin/index.ts +++ b/packages/core-api/src/plugin/index.ts @@ -15,4 +15,19 @@ */ export { createPlugin } from './Plugin'; -export * from './types'; +export type { + BackstagePlugin, + Extension, + FeatureFlagOutput, + FeatureFlagsHooks, + LegacyRedirectRouteOutput, + LegacyRouteOutput, + PluginConfig, + PluginHooks, + PluginOutput, + RedirectRouteOutput, + RouteOptions, + RouteOutput, + RoutePath, + RouterHooks, +} from './types'; diff --git a/packages/core-api/src/routing/RouteRef.ts b/packages/core-api/src/routing/RouteRef.ts index c7db48045a..f89634e0ec 100644 --- a/packages/core-api/src/routing/RouteRef.ts +++ b/packages/core-api/src/routing/RouteRef.ts @@ -54,12 +54,20 @@ export function createRouteRef< return new AbsoluteRouteRef(config); } +const create = Symbol('create-external-route-ref'); + export class ExternalRouteRef { + static [create]() { + return new ExternalRouteRef(); + } + + private constructor() {} + toString() { return `externalRouteRef{}`; } } export function createExternalRouteRef(): ExternalRouteRef { - return new ExternalRouteRef(); + return ExternalRouteRef[create](); }