commit
b6c92ea82f
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "Turnip Prophet - ACNH Turnip Tracker",
|
||||
"short_name": "Turnip Prophet",
|
||||
"description": "An app to track your Animal Crossing: New Horizons turnip prices daily!",
|
||||
"start_url": "index.html",
|
||||
"display": "standalone",
|
||||
"background_color": "#def2d9",
|
||||
"theme_color": "#def2d9",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/img/192.png",
|
||||
"sizes": "192x192"
|
||||
},
|
||||
{
|
||||
"src": "/img/512.png",
|
||||
"sizes": "512x512"
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
// PWA Code adapted from https://github.com/pwa-builder/PWABuilder
|
||||
const CACHE = "pwa-precache";
|
||||
const precacheFiles = [
|
||||
"/index.html",
|
||||
"/js/predictions.js",
|
||||
"/js/scripts.js",
|
||||
"/css/styles.css",
|
||||
"https://code.jquery.com/jquery-3.4.1.min.js",
|
||||
];
|
||||
|
||||
self.addEventListener("install", function (event) {
|
||||
console.log("[PWA] Install Event processing");
|
||||
|
||||
console.log("[PWA] Skip waiting on install");
|
||||
self.skipWaiting();
|
||||
|
||||
event.waitUntil(
|
||||
caches.open(CACHE).then(function (cache) {
|
||||
console.log("[PWA] Caching pages during install");
|
||||
return cache.addAll(precacheFiles);
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
// Allow sw to control of current page
|
||||
self.addEventListener("activate", function (event) {
|
||||
console.log("[PWA] Claiming clients for current page");
|
||||
event.waitUntil(self.clients.claim());
|
||||
});
|
||||
|
||||
// If any fetch fails, it will look for the request in the cache and serve it from there first
|
||||
self.addEventListener("fetch", function (event) {
|
||||
if (event.request.method !== "GET") return;
|
||||
|
||||
event.respondWith(
|
||||
fromCache(event.request).then(
|
||||
(response) => {
|
||||
// The response was found in the cache so we responde with it and update the entry
|
||||
|
||||
// This is where we call the server to get the newest version of the
|
||||
// file to use the next time we show view
|
||||
event.waitUntil(
|
||||
fetch(event.request).then(function (response) {
|
||||
return updateCache(event.request, response);
|
||||
})
|
||||
);
|
||||
|
||||
return response;
|
||||
},
|
||||
() => {
|
||||
// The response was not found in the cache so we look for it on the server
|
||||
return fetch(event.request)
|
||||
.then(function (response) {
|
||||
// If request was success, add or update it in the cache
|
||||
event.waitUntil(
|
||||
updateCache(event.request, response.clone())
|
||||
);
|
||||
|
||||
return response;
|
||||
})
|
||||
.catch(function (error) {
|
||||
console.log(
|
||||
"[PWA] Network request failed and no cache." + error
|
||||
);
|
||||
});
|
||||
}
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
function fromCache(request) {
|
||||
// Check to see if you have it in the cache
|
||||
// Return response
|
||||
// If not in the cache, then return
|
||||
return caches.open(CACHE).then(function (cache) {
|
||||
return cache.match(request).then(function (matching) {
|
||||
if (!matching || matching.status === 404) {
|
||||
return Promise.reject("no-match");
|
||||
}
|
||||
|
||||
return matching;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function updateCache(request, response) {
|
||||
return caches.open(CACHE).then(function (cache) {
|
||||
return cache.put(request, response);
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue