Introduce "adapters"

This commit is contained in:
Thomas Weber committed 2021-12-12 01:15:27 -06:00
1 parent ee5c9a85dd
commit dd09bb536d
6 files changed
+26 -9

No files matched your search

File renamed without changes.
+2
View File
@@ -14,6 +14,7 @@
import Preview from './preview';
import deepClone from './deep-clone';
import Packager from '../packager/packager';
import WebAdapter from '../packager/web/adapter';
import Task from './task';
export let projectData;
@@ -83,6 +84,7 @@
};
const runPackager = async (task, options) => {
Packager.adapter = new WebAdapter();
const packager = new Packager();
packager.options = options;
packager.project = projectData.project;
+1 -1
View File
@@ -1,5 +1,5 @@
import {writable} from 'svelte/store';
import Database from '../packager/idb';
import Database from '../common/idb';
import {readAsArrayBuffer} from '../common/readers';
const DATABASE_NAME = 'p4-local-settings';
+7 -3
View File
@@ -6,7 +6,6 @@ import escapeXML from '../common/escape-xml';
import largeAssets from './large-assets';
import xhr from './xhr';
import pngToAppleICNS from './icns';
import assetCache from './cache';
import {buildId, verifyBuildId} from './build-id';
import {encode, decode} from './base85';
import {parsePlist, generatePlist} from './plist';
@@ -199,7 +198,7 @@ class Packager extends EventTarget {
let result;
let cameFromCache = false;
try {
const cached = await assetCache.get(asset);
const cached = await Packager.adapter.getCachedAsset(asset);
if (cached) {
result = cached;
cameFromCache = true;
@@ -234,7 +233,7 @@ class Packager extends EventTarget {
}
if (!cameFromCache) {
try {
await assetCache.set(asset, result);
await Packager.adapter.cacheAsset(asset, result);
} catch (e) {
console.warn(e);
}
@@ -758,6 +757,9 @@ cd "$(dirname "$0")"
}
async package () {
if (!Packager.adapter) {
throw new Error('Missing adapter');
}
this.ensureNotAborted();
await this.loadResources();
this.ensureNotAborted();
@@ -1213,6 +1215,8 @@ cd "$(dirname "$0")"
}
}
Packager.adapter = null;
Packager.getDefaultPackageNameFromFileName = (title) => {
// Remove file extension
title = title.split('.')[0];
+13
View File
@@ -0,0 +1,13 @@
import assetCache from './cache';
class WebAdapter {
getCachedAsset (asset) {
return assetCache.get(asset)
}
async cacheAsset (asset, result) {
await assetCache.set(asset, result);
}
}
export default WebAdapter;
@@ -1,8 +1,6 @@
import largeAssets from './large-assets';
import {buildId} from './build-id';
import Database from './idb';
// We can't trust the HTTP cache to reliably cache these large assets
import largeAssets from '../large-assets';
import {buildId} from '../build-id';
import Database from '../../common/idb';
const DATABASE_NAME = 'p4-large-assets';
const DATABASE_VERSION = 1;