service-worker-mock
Advanced tools
Comparing version 2.0.4 to 2.0.5
@@ -9,31 +9,18 @@ // Derived from https://github.com/GoogleChrome/workbox | ||
class FetchEvent extends ExtendableEvent { | ||
constructor(type, init = {}) { | ||
super(type, init); | ||
if (!init.request) { | ||
throw new TypeError('Failed to construct \'FetchEvent\': ' + | ||
'Missing required member(s): request.'); | ||
} | ||
if (init.request instanceof Request) { | ||
this.request = init.request; | ||
} else if (typeof init.request === 'string') { | ||
this.request = new Request(init.request); | ||
} | ||
this.clientId = init.clientId || null; | ||
this.isReload = init.isReload || false; | ||
this._respondWithEnteredFlag = false; | ||
} | ||
respondWith(promise) { | ||
if (this._respondWithEnteredFlag) { | ||
throw new DOMException('Failed to execute \'respondWith\' on ' + | ||
'\'FetchEvent\': The event has already been responded to.'); | ||
} | ||
this._respondWithEnteredFlag = true; | ||
this._extendLifetimePromises.add(promise); | ||
} | ||
constructor(type, init) { | ||
super(); | ||
this.type = type; | ||
this.isReload = init.isReload || false; | ||
this.clientId = init.clientId || null; | ||
if (init.request instanceof Request) { | ||
this.request = init.request; | ||
} else if (typeof init.request === 'string') { | ||
this.request = new Request(init.request); | ||
} | ||
} | ||
respondWith(response) { | ||
this.promise = response; | ||
} | ||
} | ||
module.exports = FetchEvent; |
{ | ||
"name": "service-worker-mock", | ||
"version": "2.0.4", | ||
"version": "2.0.5", | ||
"main": "index.js", | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -8,32 +8,46 @@ const ExtendableEvent = require('../models/ExtendableEvent'); | ||
function createEvent(event, args) { | ||
switch (event) { | ||
case 'fetch': | ||
return new FetchEvent('fetch', { request: args }); | ||
case 'notificationclick': | ||
case 'notificationclose': | ||
return new NotificationEvent('notification', { notification: args }); | ||
case 'push': | ||
return new PushEvent(args); | ||
case 'message': | ||
return new MessageEvent('message', args); | ||
default: | ||
return new ExtendableEvent(); | ||
} | ||
switch (event) { | ||
case 'fetch': | ||
return new FetchEvent('fetch', getFetchArguments(args)); | ||
case 'notificationclick': | ||
return new NotificationEvent(args); | ||
case 'push': | ||
return new PushEvent(args); | ||
case 'message': | ||
return new MessageEvent('message', args); | ||
default: | ||
return new ExtendableEvent(); | ||
} | ||
} | ||
function getFetchArguments(args) { | ||
let request = args, | ||
clientId = null; | ||
if (typeof args === "object" && args.request) { | ||
clientId = args.clientId || null; | ||
request = args.request; | ||
} | ||
return { | ||
request, | ||
clientId | ||
}; | ||
} | ||
function handleEvent(name, args, callback) { | ||
const event = createEvent(name, args); | ||
callback(event); | ||
return Promise.all(Array.from(event._extendLifetimePromises.values())); | ||
const event = createEvent(name, args); | ||
callback(event); | ||
return Promise.resolve(event.promise); | ||
} | ||
function eventHandler(name, args, listeners) { | ||
if (listeners.length === 1) { | ||
return handleEvent(name, args, listeners[0]); | ||
} | ||
return Promise.all( | ||
listeners.map(callback => handleEvent(name, args, callback)) | ||
); | ||
if (listeners.length === 1) { | ||
return handleEvent(name, args, listeners[0]); | ||
} | ||
return Promise.all( | ||
listeners.map(callback => handleEvent(name, args, callback)) | ||
); | ||
} | ||
module.exports = eventHandler; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1073
38609