Introduce "adapters"
This commit is contained in:
1 parent
ee5c9a85dd
commit
dd09bb536d
6 files changed
+26
-9
No files matched your search
File renamed without changes.
@@ -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,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';
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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;
|
||||
Reference in new issue
Block a user