127 lines
3.0 KiB
TypeScript
127 lines
3.0 KiB
TypeScript
import * as plugins from './plugins.js';
|
|
|
|
export interface CacheStorage {
|
|
keys: () => Promise<string[]>;
|
|
match: any;
|
|
open: any;
|
|
delete: any;
|
|
}
|
|
export declare var caches: CacheStorage;
|
|
|
|
|
|
// =============================
|
|
// Interfaces for communication
|
|
// =============================
|
|
|
|
export interface IMessage_Serviceworker_Client_UpdateInfo
|
|
extends plugins.typedrequestInterfaces.implementsTR<
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
|
IMessage_Serviceworker_Client_UpdateInfo
|
|
> {
|
|
method: 'serviceworker_newVersion';
|
|
request: {
|
|
appVersion: string;
|
|
appHash: string;
|
|
};
|
|
response: {};
|
|
}
|
|
|
|
export interface IMessage_Serviceworker_Client_RequestReload
|
|
extends plugins.typedrequestInterfaces.implementsTR<
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
|
IMessage_Serviceworker_Client_RequestReload
|
|
> {
|
|
method: 'serviceworker_requestReload';
|
|
request: {};
|
|
response: {};
|
|
}
|
|
|
|
export interface IRequest_Serviceworker_Backend_VersionInfo
|
|
extends plugins.typedrequestInterfaces.implementsTR<
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
|
IRequest_Serviceworker_Backend_VersionInfo
|
|
> {
|
|
method: 'serviceworker_versionInfo';
|
|
request: {};
|
|
response: {
|
|
appHash: string;
|
|
appSemVer: string;
|
|
};
|
|
}
|
|
|
|
// ===============
|
|
// web
|
|
// ===============
|
|
/**
|
|
* purges the service workers cache
|
|
*/
|
|
export interface IRequest_PurgeServiceWorkerCache extends plugins.typedrequestInterfaces.implementsTR<
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
|
IRequest_PurgeServiceWorkerCache
|
|
> {
|
|
method: 'purgeServiceWorkerCache';
|
|
request: {};
|
|
response: {};
|
|
}
|
|
|
|
/**
|
|
* updates the info in all connected tabs
|
|
*/
|
|
export interface IMessage_Serviceworker_Client_UpdateInfo
|
|
extends plugins.typedrequestInterfaces.implementsTR<
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
|
IMessage_Serviceworker_Client_UpdateInfo
|
|
> {
|
|
method: 'serviceworker_newVersion';
|
|
request: {
|
|
appVersion: string;
|
|
appHash: string;
|
|
};
|
|
response: {};
|
|
}
|
|
|
|
/**
|
|
* requests all clients to reload
|
|
*/
|
|
export interface IMessage_Serviceworker_Client_RequestReload
|
|
extends plugins.typedrequestInterfaces.implementsTR<
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
|
IMessage_Serviceworker_Client_RequestReload
|
|
> {
|
|
method: 'serviceworker_requestReload';
|
|
request: {};
|
|
response: {};
|
|
}
|
|
|
|
/**
|
|
* updates version infos
|
|
*/
|
|
export interface IRequest_Serviceworker_Backend_VersionInfo
|
|
extends plugins.typedrequestInterfaces.implementsTR<
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
|
IRequest_Serviceworker_Backend_VersionInfo
|
|
> {
|
|
method: 'serviceworker_versionInfo';
|
|
request: {};
|
|
response: {
|
|
appHash: string;
|
|
appSemVer: string;
|
|
};
|
|
}
|
|
|
|
/**
|
|
* ensures a stable connection between clients and the serviceworker
|
|
*/
|
|
export interface IRequest_Client_Serviceworker_ConnectionPolling
|
|
extends plugins.typedrequestInterfaces.implementsTR<
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
|
IRequest_Client_Serviceworker_ConnectionPolling
|
|
> {
|
|
method: 'broadcastConnectionPolling',
|
|
request: {
|
|
tabId: string;
|
|
},
|
|
response: {
|
|
serviceworkerId: string;
|
|
}
|
|
} |