mirror of
https://github.com/transloadit/uppy.git
synced 2026-01-24 02:46:39 +00:00
* relocate .vscode
* Switch to transloadit linter
* Update .eslintrc.json
* autofix code
* unlink and install eslint-config-transloadit@1.1.1
* Change 0 to "off"
* Don't change 'use strict'
* Do not vertically align
* disable key-spacing
* add import/no-extraneous-dependencies per package
* add more react/a11y warnings
* Revert "autofix code"
This reverts commit 14c8a8cde8.
* add import/no-extraneous-dependencies per example and main package
* autofix code (2)
* Allow devDependencies in ./bin
* Change import/no-extraneous-dependencies to warn again
* upgrade linter
* Set import/no-extraneous-dependencies to warn
61 lines
1.3 KiB
JavaScript
61 lines
1.3 KiB
JavaScript
/* globals clients */
|
|
|
|
const fileCache = Object.create(null)
|
|
|
|
function getCache (name) {
|
|
if (!fileCache[name]) {
|
|
fileCache[name] = Object.create(null)
|
|
}
|
|
return fileCache[name]
|
|
}
|
|
|
|
self.addEventListener('install', (event) => {
|
|
console.log('Installing Uppy Service Worker...')
|
|
|
|
event.waitUntil(Promise.resolve()
|
|
.then(() => self.skipWaiting()))
|
|
})
|
|
|
|
self.addEventListener('activate', (event) => {
|
|
event.waitUntil(self.clients.claim())
|
|
})
|
|
|
|
function sendMessageToAllClients (msg) {
|
|
clients.matchAll().then((clients) => {
|
|
clients.forEach((client) => {
|
|
client.postMessage(msg)
|
|
})
|
|
})
|
|
}
|
|
|
|
function addFile (store, file) {
|
|
getCache(store)[file.id] = file.data
|
|
console.log('Added file blob to service worker cache:', file.data)
|
|
}
|
|
|
|
function removeFile (store, fileID) {
|
|
delete getCache(store)[fileID]
|
|
console.log('Removed file blob from service worker cache:', fileID)
|
|
}
|
|
|
|
function getFiles (store) {
|
|
sendMessageToAllClients({
|
|
type: 'uppy/ALL_FILES',
|
|
store,
|
|
files: getCache(store),
|
|
})
|
|
}
|
|
|
|
self.addEventListener('message', (event) => {
|
|
switch (event.data.type) {
|
|
case 'uppy/ADD_FILE':
|
|
addFile(event.data.store, event.data.file)
|
|
break
|
|
case 'uppy/REMOVE_FILE':
|
|
removeFile(event.data.store, event.data.fileID)
|
|
break
|
|
case 'uppy/GET_FILES':
|
|
getFiles(event.data.store)
|
|
break
|
|
}
|
|
})
|