replace cache usage with cacherProvider wrapper

This commit is contained in:
Abhinav 2022-08-11 14:13:23 +05:30
parent ee0dd9614d
commit e6ac494bea
4 changed files with 12 additions and 7 deletions

View file

@ -11,6 +11,7 @@ import { MLWorkerWithProxy } from 'utils/machineLearning/worker';
import { logError } from 'utils/sentry'; import { logError } from 'utils/sentry';
import mlIDbStorage from 'utils/storage/mlIDbStorage'; import mlIDbStorage from 'utils/storage/mlIDbStorage';
import { MLSyncJobResult, MLSyncJob } from './mlSyncJob'; import { MLSyncJobResult, MLSyncJob } from './mlSyncJob';
import { getCacheProvider } from 'services/cacheService';
const LIVE_SYNC_IDLE_DEBOUNCE_SEC = 30; const LIVE_SYNC_IDLE_DEBOUNCE_SEC = 30;
const LIVE_SYNC_QUEUE_TIMEOUT_SEC = 300; const LIVE_SYNC_QUEUE_TIMEOUT_SEC = 300;
@ -105,7 +106,7 @@ class MLWorkManager {
this.mlSyncJob = undefined; this.mlSyncJob = undefined;
await this.terminateLiveSyncWorker(); await this.terminateLiveSyncWorker();
await mlIDbStorage.clearMLDB(); await mlIDbStorage.clearMLDB();
await caches.delete(FACE_CROPS_CACHE_NAME); await getCacheProvider().delete(FACE_CROPS_CACHE_NAME);
} catch (e) { } catch (e) {
logError(e, 'Failed in ML logout Handler'); logError(e, 'Failed in ML logout Handler');
} }

View file

@ -1,3 +1,4 @@
import { getCacheProvider } from 'services/cacheService';
import { compose, Matrix, scale, translate } from 'transformation-matrix'; import { compose, Matrix, scale, translate } from 'transformation-matrix';
import { BlobOptions, Dimensions } from 'types/image'; import { BlobOptions, Dimensions } from 'types/image';
import { import {
@ -43,7 +44,7 @@ export async function storeFaceCropForBlob(
) { ) {
const faceCropUrl = `/${faceId}`; const faceCropUrl = `/${faceId}`;
const faceCropResponse = new Response(faceCropBlob); const faceCropResponse = new Response(faceCropBlob);
const faceCropCache = await caches.open(FACE_CROPS_CACHE_NAME); const faceCropCache = await getCacheProvider().open(FACE_CROPS_CACHE_NAME);
await faceCropCache.put(faceCropUrl, faceCropResponse); await faceCropCache.put(faceCropUrl, faceCropResponse);
return { return {
imageUrl: faceCropUrl, imageUrl: faceCropUrl,
@ -104,7 +105,7 @@ export async function removeOldFaceCrops(
export async function removeFaceCropUrls(faceCropUrls: Array<string>) { export async function removeFaceCropUrls(faceCropUrls: Array<string>) {
console.log('Removing face crop urls: ', faceCropUrls); console.log('Removing face crop urls: ', faceCropUrls);
const faceCropCache = await caches.open(FACE_CROPS_CACHE_NAME); const faceCropCache = await getCacheProvider().open(FACE_CROPS_CACHE_NAME);
const urlRemovalPromises = faceCropUrls?.map((url) => const urlRemovalPromises = faceCropUrls?.map((url) =>
faceCropCache.delete(url) faceCropCache.delete(url)
); );

View file

@ -1,6 +1,7 @@
import { FACE_CROPS_CACHE_NAME, MlFileData } from 'types/machineLearning'; import { FACE_CROPS_CACHE_NAME, MlFileData } from 'types/machineLearning';
import mlIDbStorage from 'utils/storage/mlIDbStorage'; import mlIDbStorage from 'utils/storage/mlIDbStorage';
import * as zip from '@zip.js/zip.js'; import * as zip from '@zip.js/zip.js';
import { getCacheProvider } from 'services/cacheService';
class FileSystemWriter extends zip.Writer { class FileSystemWriter extends zip.Writer {
writableStream: FileSystemWritableFileStream; writableStream: FileSystemWritableFileStream;
@ -82,7 +83,7 @@ async function exportMlDataToZipWriter(zipWriter: zip.ZipWriter) {
new zip.TextReader(JSON.stringify(mlDbData)) new zip.TextReader(JSON.stringify(mlDbData))
); );
const faceCropCache = await caches.open(FACE_CROPS_CACHE_NAME); const faceCropCache = await getCacheProvider().open(FACE_CROPS_CACHE_NAME);
const files = const files =
mlDbData['files'] && (Object.values(mlDbData['files']) as MlFileData[]); mlDbData['files'] && (Object.values(mlDbData['files']) as MlFileData[]);
for (const fileData of files || []) { for (const fileData of files || []) {
@ -126,7 +127,7 @@ async function importMlDataFromZipReader(zipReader: zip.ZipReader) {
// console.log(zipEntries); // console.log(zipEntries);
const faceCropPath = `caches/${FACE_CROPS_CACHE_NAME}`; const faceCropPath = `caches/${FACE_CROPS_CACHE_NAME}`;
const faceCropCache = await caches.open(FACE_CROPS_CACHE_NAME); const faceCropCache = await getCacheProvider().open(FACE_CROPS_CACHE_NAME);
let mldataEntry; let mldataEntry;
for (const entry of zipEntries) { for (const entry of zipEntries) {
if (entry.filename === 'indexeddb/mldata.json') { if (entry.filename === 'indexeddb/mldata.json') {

View file

@ -1,9 +1,11 @@
import { getCacheProvider } from 'services/cacheService';
export async function cached( export async function cached(
cacheName: string, cacheName: string,
id: string, id: string,
get: () => Promise<Blob> get: () => Promise<Blob>
): Promise<Blob> { ): Promise<Blob> {
const cache = await caches.open(cacheName); const cache = await getCacheProvider().open(cacheName);
const cacheResponse = await cache.match(id); const cacheResponse = await cache.match(id);
let result: Blob; let result: Blob;
@ -27,7 +29,7 @@ export async function getBlobFromCache(
cacheName: string, cacheName: string,
url: string url: string
): Promise<Blob> { ): Promise<Blob> {
const cache = await caches.open(cacheName); const cache = await getCacheProvider().open(cacheName);
const response = await cache.match(url); const response = await cache.match(url);
return response.blob(); return response.blob();