UNPKG

espruino-web-ide

Version:

A Terminal and Graphical code Editor for Espruino JavaScript Microcontrollers

149 lines (143 loc) 4.85 kB
// Service worker for Offline Web IDE const VERSION = 'v72'; const CACHED_RESOURCES = [ 'blockly/blockly_espruino.js', 'blockly/blockly_amperka_motorshield.js', 'blockly/blockly_robot.js', 'blockly/blockly_gfx.js', 'blockly/blockly_menu.js', 'blockly/blockly_nordic_thingy.js', 'blockly/blockly_smartibot.js', 'blockly/blockly_ble.js', 'blockly/blockly_bangle.js', 'blockly/blockly_compressed.js', 'blockly/blocks_compressed.js', 'blockly/javascript_compressed.js', 'blockly/blockly.html', 'blockly/en.js', 'blockly/field_textarea.js', 'blockly/ru.js', 'blockly/de.js', 'blockly/media/handclosed.cur', 'blockly/media/quote0.png', 'blockly/media/sprites.png', 'blockly/media/handopen.cur', 'blockly/media/disconnect.wav', 'blockly/media/disconnect.mp3', 'blockly/media/quote1.png', 'blockly/media/1x1.gif', 'blockly/media/delete.mp3', 'blockly/media/delete.wav', 'blockly/media/delete.ogg', 'blockly/media/handdelete.cur', 'blockly/media/click.mp3', 'blockly/media/disconnect.ogg', 'blockly/media/click.ogg', 'blockly/media/click.wav', 'data/espruino.json', 'data/app/openTestingLog.js', 'data/app/openTestingLog.html', 'data/testing_initial.html', 'data/sounds/doorbell2.wav', 'data/sounds/car_horn_x.wav', 'data/sounds/sirens_x.wav', 'data/sounds/honk2_x.wav', 'data/sounds/toot2_x.wav', 'data/sounds/boxing_bell.wav', 'data/sounds/truck_horn.wav', 'data/sounds/phone_ring_old.wav', 'data/sounds/trolley2.wav', 'data/sounds/warning_horn.wav', 'data/sounds/chime_up.wav', 'data/settings_flasher.html', 'data/tours/projectSnippet.json', 'data/tours/project.json', 'data/tours/testingExt.json', 'data/tours/testing.json', 'data/tours/watchExpr.json', 'data/tutorials/1.js', 'data/testing_form.html', 'data/settings_about.html', 'data/testing_image.html', 'css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png', 'css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png', 'css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png', 'css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png', 'css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png', 'css/ui-lightness/images/ui-icons_228ef1_256x240.png', 'css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png', 'css/ui-lightness/images/animated-overlay.gif', 'css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png', 'css/ui-lightness/images/ui-icons_ffffff_256x240.png', 'css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png', 'css/ui-lightness/images/ui-icons_ffd27a_256x240.png', 'css/ui-lightness/images/ui-icons_ef8c08_256x240.png', 'css/ui-lightness/images/ui-icons_222222_256x240.png', 'css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png', 'css/images/treeview-black-line.gif', 'css/images/treeview-red.gif', 'css/images/file.gif', 'css/images/treeview-red-line.gif', 'css/images/treeview-default-line.gif', 'css/images/plus.gif', 'css/images/treeview-gray-line.gif', 'css/images/folder.gif', 'css/images/treeview-famfamfam-line.gif', 'css/images/minus.gif', 'css/images/folder-closed.gif', 'css/images/treeview-default.gif', 'css/images/treeview-black.gif', 'css/images/treeview-gray.gif', 'css/images/treeview-famfamfam.gif', 'img/icons.png', 'img/icon_128.png', 'img/icon_patreon.png', 'img/icon_twitter.png', 'img/icon_youtube.png', 'img/ide_logo.png', 'favicon.ico', 'manifest.json', 'index.js', // auto-generated file of squished JS 'index.css', // auto-generated file of squished CSS 'index.html', 'emu_banglejs.html', 'js/plugins/emulator_espruino.js', './' ]; const CACHE_PREFIX = 'espruino-web-ide-'; const CACHE_NAME = CACHE_PREFIX + VERSION; self.addEventListener('install', function(event) { console.log('serviceworker> '+VERSION+' installing.'); // force the waiting service worker to become the active service worker. self.skipWaiting(); // Load cache event.waitUntil( caches.open(CACHE_NAME).then(function(cache) { return cache.addAll(CACHED_RESOURCES); }) ); }); // Use the cache, fallback to network self.addEventListener('fetch', function(event) { event.respondWith( caches.match(event.request, {ignoreSearch: true}).then(function(response) { return response || fetch(event.request); }) ); }); // Delete old caches when we change VERSION self.addEventListener('activate', function(event) { event.waitUntil( caches.keys().then(function(cacheNames) { return Promise.all( cacheNames.map(function(cacheName) { if (CACHE_NAME !== cacheName) { return caches.delete(cacheName); } }) ); }).then(() => { console.log('serviceworker> '+VERSION+' now ready to handle fetches'); }) ); });