diff --git a/examples/lib/cache.js b/examples/lib/cache.js
index a402e303..969ea3c6 100644
--- a/examples/lib/cache.js
+++ b/examples/lib/cache.js
@@ -1,6 +1,8 @@
+const { reject } = require("lodash");
+
var setupCache = function() {
let newWorker; // When sw.js is changed, this is the new service worker generated.
-
+
// Toggle a CSS class to display a popup prompting the user to fetch a new version.
function showUpdateModal() {
$('#update-prompt-modal').addClass('show');
@@ -22,6 +24,11 @@ var setupCache = function() {
registration.addEventListener('updatefound', () => {
// When sw.js has been changed, get a reference to the new service worker.
newWorker = registration.installing;
+
+ if(!newWorker){
+ return reject(new Error('error in installing service worker'));
+ }
+
newWorker.addEventListener('statechange', () => {
// Check if service worker state has changed.
switch(newWorker.state) {
@@ -29,24 +36,23 @@ var setupCache = function() {
if(navigator.serviceWorker.controller) {
// New service worker available; prompt the user to update.
showUpdateModal();
+ $('#reload').on('click',(e) => {
+ e.preventDefault();
+ console.log('New Service Worker Installed Successfully');
+ location.reload();
+ return resolve();
+ })
}
// No updates available; do nothing.
break;
- }
- });
- });
- const installingWorker = registration.installing;
- installingWorker.onstatechange = () => {
- console.log(installingWorker);
- if (installingWorker.state === 'installed') {
- location.reload();
- }
- };
- console.log('Registration successful, scope is:', registration.scope);
- })
- .catch(function(error) {
- console.log('Service worker registration failed, error:', error);
+ case 'redundant':
+ return reject(new Error('installing new service worker now became redundant'));
+ }
+ })
+ })
+ }).catch(err => {
+ console.log('Failed In Registering Service Worker: ',err);
});
/**
@@ -69,21 +75,22 @@ var setupCache = function() {
});
}
- $('#clear-cache').click(function() {
+ const clearCache = () => {
if ('serviceWorker' in navigator) {
- caches.keys().then(function(cacheNames) {
- cacheNames.forEach(function(cacheName) {
- caches.delete(cacheName);
- });
+ return caches.keys()
+ .then(function(cache) {
+ return Promise.all(cache.map(function(cacheItem) {
+ return caches.delete(cacheItem);
+ }));
});
}
+ }
+
+ $('#clear-cache').click(function() {
+ clearCache();
location.reload();
});
-
-
-
-
};
module.exports = setupCache;
diff --git a/examples/lib/defaultHtmlStepUi.js b/examples/lib/defaultHtmlStepUi.js
index cb22797b..d50caab3 100644
--- a/examples/lib/defaultHtmlStepUi.js
+++ b/examples/lib/defaultHtmlStepUi.js
@@ -121,7 +121,14 @@ function DefaultHtmlStepUi(_sequencer, options) {
paramVal + '">' + '' +
'';
}
- else { // Non color-picker input types
+ else if(inputDesc.type === 'button'){
+ html = '
\
+ click to select coordinates\
+
';
+ }
+ else { // Non color-picker input types and other than a button
+
html =
' {
+ return setupCache();
+ });
+}
+
+function UnRegisterSW(){
+
+ function unregister() {
+ return navigator.serviceWorker.getRegistrations()
+ .then(function(registrations) {
+ var unRegisteredWorker = registrations.map(function(registration) {
+ return registration.unregister();
+ });
+ return Promise.all(unRegisteredWorker);
+ });
+ }
+
+ return Promise.all([
+ unregister(),
+ setUpCache.clearCache()
+ ]);
+}
+
+test('Register service worker',function(t) {
+
+ t.test('unregister service worker',function(st) {
+ st.equal(UnRegisterSW(),true,'unregistered successfully and cleared the cache')
+ })
+
+ t.test('install service worker',function(st) {
+ st.equal(SWInstallation(),true,'successfully installed new service worker')
+ });
+});
diff --git a/yarn.lock b/yarn.lock
index d9a5bb75..a0d27152 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10,15 +10,15 @@
"@babel/highlight" "^7.12.13"
"@babel/core@^7.1.0", "@babel/core@^7.4.3", "@babel/core@^7.7.5":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.13.tgz#b73a87a3a3e7d142a66248bf6ad88b9ceb093425"
- integrity sha512-BQKE9kXkPlXHPeqissfxo0lySWJcYdEP0hdtJOH/iJfDdhOCcgtNCjftCJg3qqauB4h+lz2N6ixM++b9DN1Tcw==
+ version "7.12.16"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.16.tgz#8c6ba456b23b680a6493ddcfcd9d3c3ad51cab7c"
+ integrity sha512-t/hHIB504wWceOeaOoONOhu+gX+hpjfeN6YRBT209X/4sibZQfSF1I0HFRRlBe97UZZosGx5XwUg1ZgNbelmNw==
dependencies:
"@babel/code-frame" "^7.12.13"
- "@babel/generator" "^7.12.13"
+ "@babel/generator" "^7.12.15"
"@babel/helper-module-transforms" "^7.12.13"
"@babel/helpers" "^7.12.13"
- "@babel/parser" "^7.12.13"
+ "@babel/parser" "^7.12.16"
"@babel/template" "^7.12.13"
"@babel/traverse" "^7.12.13"
"@babel/types" "^7.12.13"
@@ -30,10 +30,10 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.12.13":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.13.tgz#5f6ebe6c85db99886db2d7b044409196f872a503"
- integrity sha512-9qQ8Fgo8HaSvHEt6A5+BATP7XktD/AdAnObUeTRz5/e2y3kbrxZgz32qUJJsdmwUvBJzF4AeV21nGTNwv05Mpw==
+"@babel/generator@^7.12.13", "@babel/generator@^7.12.15":
+ version "7.12.15"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz#4617b5d0b25cc572474cc1aafee1edeaf9b5368f"
+ integrity sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ==
dependencies:
"@babel/types" "^7.12.13"
jsesc "^2.5.1"
@@ -143,10 +143,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.7.5":
- version "7.12.14"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.14.tgz#4adb7c5eef1d437ef965ad1569cd826db8c11dc9"
- integrity sha512-xcfxDq3OrBnDsA/Z8eK5/2iPcLD8qbOaSSfOw4RA6jp4i7e6dEQ7+wTwxItEwzcXPQcsry5nZk96gmVPKletjQ==
+"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.12.16", "@babel/parser@^7.7.5":
+ version "7.12.16"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.16.tgz#cc31257419d2c3189d394081635703f549fc1ed4"
+ integrity sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==
"@babel/plugin-proposal-object-rest-spread@^7.4.3":
version "7.12.13"
@@ -2430,6 +2430,11 @@ commander@^6.2.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.0.tgz#b990bfb8ac030aedc6d11bc04d1488ffef56db75"
integrity sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==
+commander@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2"
+ integrity sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==
+
commander@~2.13.0:
version "2.13.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
@@ -6851,9 +6856,9 @@ lines-and-columns@^1.1.6:
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
lint-staged@^10.0.3:
- version "10.5.3"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.3.tgz#c682838b3eadd4c864d1022da05daa0912fb1da5"
- integrity sha512-TanwFfuqUBLufxCc3RUtFEkFraSPNR3WzWcGF39R3f2J7S9+iF9W0KTVLfSy09lYGmZS5NDCxjNvhGMSJyFCWg==
+ version "10.5.4"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665"
+ integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==
dependencies:
chalk "^4.1.0"
cli-truncate "^2.1.0"