diff --git a/plugins/home/README.md b/plugins/home/README.md
index af3b3a12f6..d70667e886 100644
--- a/plugins/home/README.md
+++ b/plugins/home/README.md
@@ -274,8 +274,8 @@ documentation for more information. Bellow you can see an example for two option
// packages/app/src/apis.ts
// ...
import {
- CoreStorageVisitsApi,
- LocalStoreVisitsApi,
+ VisitsStorageApi,
+ VisitsWebStorageApi,
visitsApiRef,
} from '@backstage/plugin-home';
// ...
@@ -288,17 +288,17 @@ export const apis: AnyApiFactory[] = [
identityApi: identityApiRef,
},
factory: ({ storageApi, identityApi }) =>
- CoreStorageVisitsApi.create({ storageApi, identityApi }),
+ VisitsStorageApi.create({ storageApi, identityApi }),
}),
- // Or a local data implementation, relies on WebStorage implementation of storageApi
+ // Or a localStorage data implementation, relies on WebStorage implementation of storageApi
createApiFactory({
api: visitsApiRef,
deps: {
identityApi: identityApiRef,
errorApi: errorApiRef
},
- factory: ({ identityApi, errorApi }) => LocalStoreVisitsApi.create({ identityApi, errorApi }),
+ factory: ({ identityApi, errorApi }) => VisitsWebStorageApi.create({ identityApi, errorApi }),
}),
// ...
```
@@ -308,14 +308,14 @@ See the example usage:
```ts
// packages/app/src/App.tsx
-import { VisitsListener } from '@backstage/plugin-home';
+import { VisitListener } from '@backstage/plugin-home';
// ...
export default app.createRoot(
<>
-
+
{routes}
>,
diff --git a/plugins/home/api-report.md b/plugins/home/api-report.md
index 5da8f912a5..e3f789c2af 100644
--- a/plugins/home/api-report.md
+++ b/plugins/home/api-report.md
@@ -77,21 +77,6 @@ export const ComponentTabs: (props: {
}[];
}) => JSX_2.Element;
-// @public
-export class CoreStorageVisitsApi implements VisitsApi {
- // (undocumented)
- static create(options: CoreStorageVisitsApiOptions): CoreStorageVisitsApi;
- list(queryParams?: VisitsApiQueryParams): Promise;
- save(saveParams: VisitsApiSaveParams): Promise;
-}
-
-// @public (undocumented)
-export type CoreStorageVisitsApiOptions = {
- limit?: number;
- storageApi: StorageApi;
- identityApi: IdentityApi;
-};
-
// @public @deprecated (undocumented)
export const createCardExtension: typeof createCardExtension_2;
@@ -179,19 +164,6 @@ export type LayoutConfiguration = {
resizable?: boolean;
};
-// @public
-export class LocalStorageVisitsApi {
- // (undocumented)
- static create(options: LocalStorageVisitsApiOptions): CoreStorageVisitsApi;
-}
-
-// @public (undocumented)
-export type LocalStorageVisitsApiOptions = {
- limit?: number;
- identityApi: IdentityApi;
- errorApi: ErrorApi;
-};
-
// @public @deprecated (undocumented)
export type RendererProps = RendererProps_2;
@@ -289,6 +261,34 @@ export type VisitsApiSaveParams = {
visit: Omit;
};
+// @public
+export class VisitsStorageApi implements VisitsApi {
+ // (undocumented)
+ static create(options: VisitsStorageApiOptions): VisitsStorageApi;
+ list(queryParams?: VisitsApiQueryParams): Promise;
+ save(saveParams: VisitsApiSaveParams): Promise;
+}
+
+// @public (undocumented)
+export type VisitsStorageApiOptions = {
+ limit?: number;
+ storageApi: StorageApi;
+ identityApi: IdentityApi;
+};
+
+// @public
+export class VisitsWebStorageApi {
+ // (undocumented)
+ static create(options: VisitsWebStorageApiOptions): VisitsStorageApi;
+}
+
+// @public (undocumented)
+export type VisitsWebStorageApiOptions = {
+ limit?: number;
+ identityApi: IdentityApi;
+ errorApi: ErrorApi;
+};
+
// @public
export const WelcomeTitle: ({
language,
diff --git a/plugins/home/src/api/CoreStorageVisitsApi.test.ts b/plugins/home/src/api/VisitsStorageApi.test.ts
similarity index 97%
rename from plugins/home/src/api/CoreStorageVisitsApi.test.ts
rename to plugins/home/src/api/VisitsStorageApi.test.ts
index 9118b2546b..6faeb62350 100644
--- a/plugins/home/src/api/CoreStorageVisitsApi.test.ts
+++ b/plugins/home/src/api/VisitsStorageApi.test.ts
@@ -15,11 +15,11 @@
*/
import { BackstageUserIdentity, IdentityApi } from '@backstage/core-plugin-api';
-import { CoreStorageVisitsApi } from './CoreStorageVisitsApi';
+import { VisitsStorageApi } from './VisitsStorageApi';
import { MockStorageApi } from '@backstage/test-utils';
import { Visit, VisitsApi } from './VisitsApi';
-describe('CoreStorageVisitsApi.create', () => {
+describe('VisitsStorageApi.create', () => {
const mockRandomUUID = () =>
'068f3129-7440-4e0e-8fd4-xxxxxxxxxxxx'.replace(
/x/g,
@@ -46,7 +46,7 @@ describe('CoreStorageVisitsApi.create', () => {
});
it('instantiates', () => {
- const api = CoreStorageVisitsApi.create({
+ const api = VisitsStorageApi.create({
storageApi: MockStorageApi.create(),
identityApi: mockIdentityApi,
});
@@ -55,7 +55,7 @@ describe('CoreStorageVisitsApi.create', () => {
describe('.save()', () => {
it('saves a visit', async () => {
- const api = CoreStorageVisitsApi.create({
+ const api = VisitsStorageApi.create({
storageApi: MockStorageApi.create(),
identityApi: mockIdentityApi,
});
@@ -72,7 +72,7 @@ describe('CoreStorageVisitsApi.create', () => {
});
it('can control the number of stored entities', async () => {
- const api = CoreStorageVisitsApi.create({
+ const api = VisitsStorageApi.create({
storageApi: MockStorageApi.create(),
identityApi: mockIdentityApi,
limit: 2,
@@ -106,7 +106,7 @@ describe('CoreStorageVisitsApi.create', () => {
});
it('correctly bumps the hits from a previous visit', async () => {
- const api = CoreStorageVisitsApi.create({
+ const api = VisitsStorageApi.create({
storageApi: MockStorageApi.create(),
identityApi: mockIdentityApi,
});
@@ -135,7 +135,7 @@ describe('CoreStorageVisitsApi.create', () => {
let baseDate: number;
beforeEach(() => {
- api = CoreStorageVisitsApi.create({
+ api = VisitsStorageApi.create({
storageApi: MockStorageApi.create(),
identityApi: mockIdentityApi,
});
diff --git a/plugins/home/src/api/CoreStorageVisitsApi.ts b/plugins/home/src/api/VisitsStorageApi.ts
similarity index 92%
rename from plugins/home/src/api/CoreStorageVisitsApi.ts
rename to plugins/home/src/api/VisitsStorageApi.ts
index 2707a50b87..daf24d716b 100644
--- a/plugins/home/src/api/CoreStorageVisitsApi.ts
+++ b/plugins/home/src/api/VisitsStorageApi.ts
@@ -22,7 +22,7 @@ import {
} from './VisitsApi';
/** @public */
-export type CoreStorageVisitsApiOptions = {
+export type VisitsStorageApiOptions = {
limit?: number;
storageApi: StorageApi;
identityApi: IdentityApi;
@@ -36,18 +36,17 @@ type ArrayElement = A extends readonly (infer T)[] ? T : never;
* Beware that filtering and ordering are done in memory therefore it is
* prudent to keep limit to a reasonable size.
*/
-export class CoreStorageVisitsApi implements VisitsApi {
- private readonly randomUUID = window.crypto.randomUUID;
+export class VisitsStorageApi implements VisitsApi {
private readonly limit: number;
private readonly storageApi: StorageApi;
private readonly storageKeyPrefix = '@backstage/plugin-home:visits';
private readonly identityApi: IdentityApi;
- static create(options: CoreStorageVisitsApiOptions) {
- return new CoreStorageVisitsApi(options);
+ static create(options: VisitsStorageApiOptions) {
+ return new VisitsStorageApi(options);
}
- private constructor(options: CoreStorageVisitsApiOptions) {
+ private constructor(options: VisitsStorageApiOptions) {
this.limit = Math.abs(options.limit ?? 100);
this.storageApi = options.storageApi;
this.identityApi = options.identityApi;
@@ -95,7 +94,7 @@ export class CoreStorageVisitsApi implements VisitsApi {
const visit: Visit = {
...saveParams.visit,
- id: this.randomUUID(),
+ id: window.crypto.randomUUID(),
hits: 1,
timestamp: Date.now(),
};
diff --git a/plugins/home/src/api/LocalStorageVisitsApi.test.ts b/plugins/home/src/api/VisitsWebStorageApi.test.ts
similarity index 91%
rename from plugins/home/src/api/LocalStorageVisitsApi.test.ts
rename to plugins/home/src/api/VisitsWebStorageApi.test.ts
index b646af209e..1cf1fa3129 100644
--- a/plugins/home/src/api/LocalStorageVisitsApi.test.ts
+++ b/plugins/home/src/api/VisitsWebStorageApi.test.ts
@@ -15,9 +15,9 @@
*/
import { BackstageUserIdentity, IdentityApi } from '@backstage/core-plugin-api';
-import { LocalStorageVisitsApi } from './LocalStorageVisitsApi';
+import { VisitsWebStorageApi } from './VisitsWebStorageApi';
-describe('LocalStorageVisitsApi.create()', () => {
+describe('VisitsWebStorageApi.create()', () => {
const mockRandomUUID = () =>
'068f3129-7440-4e0e-8fd4-xxxxxxxxxxxx'.replace(
/x/g,
@@ -44,7 +44,7 @@ describe('LocalStorageVisitsApi.create()', () => {
});
it('instantiates with only identitiyApi', () => {
- const api = LocalStorageVisitsApi.create({
+ const api = VisitsWebStorageApi.create({
identityApi: mockIdentityApi,
errorApi: mockErrorApi,
});
@@ -52,7 +52,7 @@ describe('LocalStorageVisitsApi.create()', () => {
});
it('saves a visit', async () => {
- const api = LocalStorageVisitsApi.create({
+ const api = VisitsWebStorageApi.create({
identityApi: mockIdentityApi,
errorApi: mockErrorApi,
});
@@ -69,7 +69,7 @@ describe('LocalStorageVisitsApi.create()', () => {
});
it('retrieves visits', async () => {
- const api = LocalStorageVisitsApi.create({
+ const api = VisitsWebStorageApi.create({
identityApi: mockIdentityApi,
errorApi: mockErrorApi,
});
diff --git a/plugins/home/src/api/LocalStorageVisitsApi.ts b/plugins/home/src/api/VisitsWebStorageApi.ts
similarity index 81%
rename from plugins/home/src/api/LocalStorageVisitsApi.ts
rename to plugins/home/src/api/VisitsWebStorageApi.ts
index 01d57b93d9..56b3ae53c5 100644
--- a/plugins/home/src/api/LocalStorageVisitsApi.ts
+++ b/plugins/home/src/api/VisitsWebStorageApi.ts
@@ -14,11 +14,11 @@
* limitations under the License.
*/
import { ErrorApi, IdentityApi } from '@backstage/core-plugin-api';
-import { CoreStorageVisitsApi } from './CoreStorageVisitsApi';
+import { VisitsStorageApi } from './VisitsStorageApi';
import { WebStorage } from '@backstage/core-app-api';
/** @public */
-export type LocalStorageVisitsApiOptions = {
+export type VisitsWebStorageApiOptions = {
limit?: number;
identityApi: IdentityApi;
errorApi: ErrorApi;
@@ -28,9 +28,9 @@ export type LocalStorageVisitsApiOptions = {
* @public
* This is a reference implementation of VisitsApi using WebStorage.
*/
-export class LocalStorageVisitsApi {
- static create(options: LocalStorageVisitsApiOptions) {
- return CoreStorageVisitsApi.create({
+export class VisitsWebStorageApi {
+ static create(options: VisitsWebStorageApiOptions) {
+ return VisitsStorageApi.create({
limit: options.limit,
identityApi: options.identityApi,
storageApi: WebStorage.create({ errorApi: options.errorApi }),
diff --git a/plugins/home/src/api/index.ts b/plugins/home/src/api/index.ts
index 50b48e3204..944fa65330 100644
--- a/plugins/home/src/api/index.ts
+++ b/plugins/home/src/api/index.ts
@@ -14,6 +14,6 @@
* limitations under the License.
*/
-export * from './CoreStorageVisitsApi';
-export * from './LocalStorageVisitsApi';
+export * from './VisitsStorageApi';
+export * from './VisitsWebStorageApi';
export * from './VisitsApi';
diff --git a/plugins/home/src/plugin.ts b/plugins/home/src/plugin.ts
index 3bbfd9d544..d4ed401c86 100644
--- a/plugins/home/src/plugin.ts
+++ b/plugins/home/src/plugin.ts
@@ -25,7 +25,7 @@ import {
import { createCardExtension } from '@backstage/plugin-home-react';
import { ToolkitContentProps, VisitedByTypeProps } from './homePageComponents';
import { rootRouteRef } from './routes';
-import { CoreStorageVisitsApi, visitsApiRef } from './api';
+import { VisitsStorageApi, visitsApiRef } from './api';
/** @public */
export const homePlugin = createPlugin({
@@ -38,7 +38,7 @@ export const homePlugin = createPlugin({
identityApi: identityApiRef,
},
factory: ({ storageApi, identityApi }) =>
- CoreStorageVisitsApi.create({ storageApi, identityApi }),
+ VisitsStorageApi.create({ storageApi, identityApi }),
}),
],
routes: {