From 4b896485e4d2ac423fdf348ca5222546066c108f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Dec 2020 13:56:24 +0100 Subject: [PATCH 1/3] core-api: deprecate RouteRef path and remove deprecated createSubRoute --- packages/core-api/src/routing/RouteRef.ts | 14 ++------------ packages/core-api/src/routing/types.ts | 9 +++------ 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/packages/core-api/src/routing/RouteRef.ts b/packages/core-api/src/routing/RouteRef.ts index f89634e0ec..164722766b 100644 --- a/packages/core-api/src/routing/RouteRef.ts +++ b/packages/core-api/src/routing/RouteRef.ts @@ -25,25 +25,15 @@ export class AbsoluteRouteRef { // TODO(Rugvip): Remove this, routes are looked up via the registry instead get path() { - return this.config.path; + return this.config.path ?? ''; } get title() { return this.config.title; } - /** - * This function should not be used, create a separate RouteRef instead - * @deprecated - */ - createSubRoute(): any { - throw new Error( - 'This method should not be called, create a separate RouteRef instead', - ); - } - toString() { - return `routeRef{path=${this.path}}`; + return `routeRef{title=${this.title}}`; } } diff --git a/packages/core-api/src/routing/types.ts b/packages/core-api/src/routing/types.ts index c6d79fd991..99a20c31e9 100644 --- a/packages/core-api/src/routing/types.ts +++ b/packages/core-api/src/routing/types.ts @@ -19,14 +19,10 @@ import { IconComponent } from '../icons'; // @ts-ignore, we're just embedding the Params type for usage in other places export type RouteRef = { // TODO(Rugvip): Remove path, look up via registry instead + /** @deprecated paths are no longer accessed directly from RouteRefs, use useRouteRef instead */ path: string; icon?: IconComponent; title: string; - /** - * This function should not be used, create a separate RouteRef instead - * @deprecated - */ - createSubRoute(): any; }; export type AnyRouteRef = RouteRef; @@ -51,7 +47,8 @@ export type MutableRouteRef = RouteRef<{}>; export type RouteRefConfig = { params?: Array; - path: string; + /** @deprecated Route refs no longer decide their own path */ + path?: string; icon?: IconComponent; title: string; }; From 99205ec62590ac43e76c8bb949078f45fcf06ea5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Dec 2020 14:29:13 +0100 Subject: [PATCH 2/3] core-api: use typescript workaround for using private constructor instead of a runtime one --- packages/core-api/src/routing/RouteRef.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/core-api/src/routing/RouteRef.ts b/packages/core-api/src/routing/RouteRef.ts index 164722766b..4c2da34098 100644 --- a/packages/core-api/src/routing/RouteRef.ts +++ b/packages/core-api/src/routing/RouteRef.ts @@ -44,13 +44,7 @@ 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() { @@ -59,5 +53,5 @@ export class ExternalRouteRef { } export function createExternalRouteRef(): ExternalRouteRef { - return ExternalRouteRef[create](); + return new ((ExternalRouteRef as unknown) as { new (): ExternalRouteRef })(); } From 86c3c652a8ced9e31dbed1d47f85c8ee72d8017e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Dec 2020 14:32:04 +0100 Subject: [PATCH 3/3] changeset: add changeset for core-api RouteRef deprecations --- .changeset/polite-turtles-prove.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/polite-turtles-prove.md diff --git a/.changeset/polite-turtles-prove.md b/.changeset/polite-turtles-prove.md new file mode 100644 index 0000000000..094617026c --- /dev/null +++ b/.changeset/polite-turtles-prove.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-api': patch +--- + +Deprecate `RouteRef` path parameter and member, and remove deprecated `routeRef.createSubRouteRef`.