diff --git a/plugins/home/api-report.md b/plugins/home/api-report.md index a71916d8b3..38ae82aa7c 100644 --- a/plugins/home/api-report.md +++ b/plugins/home/api-report.md @@ -85,7 +85,6 @@ export class CoreStorageVisitsApi extends VisitsApiFactory { // @public (undocumented) export type CoreStorageVisitsApiOptions = { storageApi: StorageApi; - randomUUID?: Window['crypto']['randomUUID']; limit?: number; identityApi: IdentityApi; }; @@ -185,8 +184,6 @@ export class LocalStorageVisitsApi extends VisitsApiFactory { // @public (undocumented) export type LocalStorageVisitsApiOptions = { - localStorage?: Window['localStorage']; - randomUUID?: Window['crypto']['randomUUID']; limit?: number; identityApi: IdentityApi; }; @@ -269,7 +266,6 @@ export interface VisitsApi { // @public export class VisitsApiFactory implements VisitsApi { protected constructor({ - randomUUID, limit, retrieveAll, persistAll, @@ -281,7 +277,7 @@ export class VisitsApiFactory implements VisitsApi { // (undocumented) protected persistAll: (visits: Array) => Promise; // (undocumented) - protected readonly randomUUID: Window['crypto']['randomUUID']; + protected readonly randomUUID: () => `${string}-${string}-${string}-${string}-${string}`; // (undocumented) protected retrieveAll: () => Promise>; // (undocumented) @@ -290,7 +286,6 @@ export class VisitsApiFactory implements VisitsApi { // @public (undocumented) export type VisitsApiFactoryOptions = { - randomUUID: Window['crypto']['randomUUID']; limit: number; retrieveAll?: () => Promise>; persistAll?: (visits: Array) => Promise; diff --git a/plugins/home/src/api/CoreStorageVisitsApi.ts b/plugins/home/src/api/CoreStorageVisitsApi.ts index c4b70eff88..e392c2f30c 100644 --- a/plugins/home/src/api/CoreStorageVisitsApi.ts +++ b/plugins/home/src/api/CoreStorageVisitsApi.ts @@ -20,7 +20,6 @@ import { VisitsApiFactory } from './VisitsApiFactory'; /** @public */ export type CoreStorageVisitsApiOptions = { storageApi: StorageApi; - randomUUID?: Window['crypto']['randomUUID']; limit?: number; identityApi: IdentityApi; }; @@ -41,10 +40,9 @@ export class CoreStorageVisitsApi extends VisitsApiFactory { private constructor({ storageApi, identityApi, - randomUUID = window?.crypto?.randomUUID, limit = 100, }: CoreStorageVisitsApiOptions) { - super({ randomUUID, limit }); + super({ limit }); this.storageApi = storageApi; this.identityApi = identityApi; this.retrieveAll = async (): Promise> => { diff --git a/plugins/home/src/api/LocalStorageVisitsApi.ts b/plugins/home/src/api/LocalStorageVisitsApi.ts index 31cd30dc21..42f8495a5e 100644 --- a/plugins/home/src/api/LocalStorageVisitsApi.ts +++ b/plugins/home/src/api/LocalStorageVisitsApi.ts @@ -19,8 +19,6 @@ import { VisitsApiFactory } from './VisitsApiFactory'; /** @public */ export type LocalStorageVisitsApiOptions = { - localStorage?: Window['localStorage']; - randomUUID?: Window['crypto']['randomUUID']; limit?: number; identityApi: IdentityApi; }; @@ -30,7 +28,7 @@ export type LocalStorageVisitsApiOptions = { * This is a reference implementation of VisitsApi using window.localStorage. */ export class LocalStorageVisitsApi extends VisitsApiFactory { - private readonly localStorage: Window['localStorage']; + private readonly localStorage = window.localStorage; private readonly storageKeyPrefix = '@backstage/plugin-home:visits'; private readonly identityApi: IdentityApi; @@ -39,13 +37,10 @@ export class LocalStorageVisitsApi extends VisitsApiFactory { } private constructor({ - localStorage = window?.localStorage, - randomUUID = window?.crypto?.randomUUID, limit = 100, identityApi, }: LocalStorageVisitsApiOptions) { - super({ randomUUID, limit }); - this.localStorage = localStorage; + super({ limit }); this.identityApi = identityApi; this.retrieveAll = async (): Promise> => { let visits: Array; diff --git a/plugins/home/src/api/VisitsApiFactory.test.ts b/plugins/home/src/api/VisitsApiFactory.test.ts index 8c19a8e6a5..4e00b1432f 100644 --- a/plugins/home/src/api/VisitsApiFactory.test.ts +++ b/plugins/home/src/api/VisitsApiFactory.test.ts @@ -21,13 +21,11 @@ class MemoryVisitsApi extends VisitsApiFactory { private visits: Array = []; constructor({ - randomUUID = window?.crypto?.randomUUID, limit = 100, }: { - randomUUID?: Window['crypto']['randomUUID']; limit?: number; } = {}) { - super({ randomUUID, limit }); + super({ limit }); this.retrieveAll = async (): Promise> => { let visits: Array; try { diff --git a/plugins/home/src/api/VisitsApiFactory.ts b/plugins/home/src/api/VisitsApiFactory.ts index d54ed0c984..48952c0a1c 100644 --- a/plugins/home/src/api/VisitsApiFactory.ts +++ b/plugins/home/src/api/VisitsApiFactory.ts @@ -24,7 +24,6 @@ type ArrayElement = A extends readonly (infer T)[] ? T : never; /** @public */ export type VisitsApiFactoryOptions = { - randomUUID: Window['crypto']['randomUUID']; limit: number; retrieveAll?: () => Promise>; persistAll?: (visits: Array) => Promise; @@ -38,18 +37,16 @@ export type VisitsApiFactoryOptions = { * See LocalStorageVisitsApi for an usage example. */ export class VisitsApiFactory implements VisitsApi { - protected readonly randomUUID: Window['crypto']['randomUUID']; + protected readonly randomUUID = window.crypto.randomUUID; protected readonly limit: number; protected retrieveAll: () => Promise>; protected persistAll: (visits: Array) => Promise; protected constructor({ - randomUUID = window?.crypto?.randomUUID, limit = 100, retrieveAll, persistAll, }: VisitsApiFactoryOptions) { - this.randomUUID = randomUUID; this.limit = Math.abs(limit); this.retrieveAll = retrieveAll ?? (async () => []); this.persistAll = persistAll ?? (async () => {}); @@ -90,7 +87,7 @@ export class VisitsApiFactory implements VisitsApi { const visit: Visit = { ...saveParams.visit, - id: this.randomUUID(), + id: window.crypto.randomUUID(), hits: 1, timestamp: Date.now(), };