refactoring(plugins/home): Remove unnecessary injection

This patch removes the injection of localStorage and randomUUID.

Signed-off-by: Renan Mendes Carvalho <aitherios@gmail.com>
Co-authored-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
Renan Mendes Carvalho
2023-09-18 10:37:24 +02:00
committed by Camila Belo
parent 6c93a6799e
commit 64caa4bf20
5 changed files with 7 additions and 24 deletions
+1 -6
View File
@@ -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<Visit>) => Promise<void>;
// (undocumented)
protected readonly randomUUID: Window['crypto']['randomUUID'];
protected readonly randomUUID: () => `${string}-${string}-${string}-${string}-${string}`;
// (undocumented)
protected retrieveAll: () => Promise<Array<Visit>>;
// (undocumented)
@@ -290,7 +286,6 @@ export class VisitsApiFactory implements VisitsApi {
// @public (undocumented)
export type VisitsApiFactoryOptions = {
randomUUID: Window['crypto']['randomUUID'];
limit: number;
retrieveAll?: () => Promise<Array<Visit>>;
persistAll?: (visits: Array<Visit>) => Promise<void>;
+1 -3
View File
@@ -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<Array<Visit>> => {
@@ -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<Array<Visit>> => {
let visits: Array<Visit>;
@@ -21,13 +21,11 @@ class MemoryVisitsApi extends VisitsApiFactory {
private visits: Array<Visit> = [];
constructor({
randomUUID = window?.crypto?.randomUUID,
limit = 100,
}: {
randomUUID?: Window['crypto']['randomUUID'];
limit?: number;
} = {}) {
super({ randomUUID, limit });
super({ limit });
this.retrieveAll = async (): Promise<Array<Visit>> => {
let visits: Array<Visit>;
try {
+2 -5
View File
@@ -24,7 +24,6 @@ type ArrayElement<A> = A extends readonly (infer T)[] ? T : never;
/** @public */
export type VisitsApiFactoryOptions = {
randomUUID: Window['crypto']['randomUUID'];
limit: number;
retrieveAll?: () => Promise<Array<Visit>>;
persistAll?: (visits: Array<Visit>) => Promise<void>;
@@ -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<Array<Visit>>;
protected persistAll: (visits: Array<Visit>) => Promise<void>;
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(),
};