...
This commit is contained in:
parent
c90018e06f
commit
82f107417a
@ -145,77 +145,6 @@ const onMessage = async(e: ExtendableMessageEvent) => {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Service Worker Installation
|
||||
*/
|
||||
ctx.addEventListener('install', (event: ExtendableEvent) => {
|
||||
log('installing');
|
||||
|
||||
/* initCache();
|
||||
|
||||
event.waitUntil(
|
||||
initNetwork(),
|
||||
); */
|
||||
event.waitUntil(ctx.skipWaiting()); // Activate worker immediately
|
||||
});
|
||||
|
||||
/**
|
||||
* Service Worker Activation
|
||||
*/
|
||||
ctx.addEventListener('activate', (event) => {
|
||||
log('activating', ctx);
|
||||
|
||||
/* if (!ctx.cache) initCache();
|
||||
if (!ctx.network) initNetwork(); */
|
||||
|
||||
event.waitUntil(ctx.clients.claim());
|
||||
});
|
||||
|
||||
function timeout(delay: number): Promise<Response> {
|
||||
return new Promise(((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve(new Response('', {
|
||||
status: 408,
|
||||
statusText: 'Request timed out.',
|
||||
}));
|
||||
}, delay);
|
||||
}));
|
||||
}
|
||||
|
||||
function responseForSafariFirstRange(range: [number, number], mimeType: string, size: number): Response {
|
||||
if(range[0] === 0 && range[1] === 1) {
|
||||
return new Response(new Uint8Array(2).buffer, {
|
||||
status: 206,
|
||||
statusText: 'Partial Content',
|
||||
headers: {
|
||||
'Accept-Ranges': 'bytes',
|
||||
'Content-Range': `bytes 0-1/${size || '*'}`,
|
||||
'Content-Length': '2',
|
||||
'Content-Type': mimeType || 'video/mp4',
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
ctx.onerror = (error) => {
|
||||
log.error('error:', error);
|
||||
};
|
||||
|
||||
ctx.onunhandledrejection = (error) => {
|
||||
log.error('onunhandledrejection:', error);
|
||||
};
|
||||
|
||||
const onChangeState = () => {
|
||||
ctx.onmessage = onMessage;
|
||||
ctx.onfetch = onFetch;
|
||||
};
|
||||
|
||||
onChangeState();
|
||||
|
||||
ctx.onoffline = ctx.ononline = onChangeState;
|
||||
|
||||
const onFetch = (event: FetchEvent): void => {
|
||||
try {
|
||||
const [, url, scope, params] = /http[:s]+\/\/.*?(\/(.*?)(?:$|\/(.*)$))/.exec(event.request.url) || [];
|
||||
@ -465,6 +394,77 @@ const onFetch = (event: FetchEvent): void => {
|
||||
}
|
||||
};
|
||||
|
||||
const onChangeState = () => {
|
||||
ctx.onmessage = onMessage;
|
||||
ctx.onfetch = onFetch;
|
||||
};
|
||||
|
||||
/**
|
||||
* Service Worker Installation
|
||||
*/
|
||||
ctx.addEventListener('install', (event: ExtendableEvent) => {
|
||||
log('installing');
|
||||
|
||||
/* initCache();
|
||||
|
||||
event.waitUntil(
|
||||
initNetwork(),
|
||||
); */
|
||||
event.waitUntil(ctx.skipWaiting()); // Activate worker immediately
|
||||
});
|
||||
|
||||
/**
|
||||
* Service Worker Activation
|
||||
*/
|
||||
ctx.addEventListener('activate', (event) => {
|
||||
log('activating', ctx);
|
||||
|
||||
/* if (!ctx.cache) initCache();
|
||||
if (!ctx.network) initNetwork(); */
|
||||
|
||||
event.waitUntil(ctx.clients.claim());
|
||||
});
|
||||
|
||||
function timeout(delay: number): Promise<Response> {
|
||||
return new Promise(((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve(new Response('', {
|
||||
status: 408,
|
||||
statusText: 'Request timed out.',
|
||||
}));
|
||||
}, delay);
|
||||
}));
|
||||
}
|
||||
|
||||
function responseForSafariFirstRange(range: [number, number], mimeType: string, size: number): Response {
|
||||
if(range[0] === 0 && range[1] === 1) {
|
||||
return new Response(new Uint8Array(2).buffer, {
|
||||
status: 206,
|
||||
statusText: 'Partial Content',
|
||||
headers: {
|
||||
'Accept-Ranges': 'bytes',
|
||||
'Content-Range': `bytes 0-1/${size || '*'}`,
|
||||
'Content-Length': '2',
|
||||
'Content-Type': mimeType || 'video/mp4',
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
ctx.onerror = (error) => {
|
||||
log.error('error:', error);
|
||||
};
|
||||
|
||||
ctx.onunhandledrejection = (error) => {
|
||||
log.error('onunhandledrejection:', error);
|
||||
};
|
||||
|
||||
ctx.onoffline = ctx.ononline = onChangeState;
|
||||
|
||||
onChangeState();
|
||||
|
||||
const DOWNLOAD_CHUNK_LIMIT = 512 * 1024;
|
||||
|
||||
/* const STREAM_CHUNK_UPPER_LIMIT = 256 * 1024;
|
||||
|
Loading…
x
Reference in New Issue
Block a user