feat(service-worker): expose SwRegistrationOptions
token to allow runtime config (#21842)
Previously, the ServiceWorker registration options should be defined as an object literal (in order for them to be compatible with Ahead-of-Time compilation), thus making it impossible to base the ServiceWorker behavior on runtime conditions. This commit allows specifying the registration options using a regular provider, which means that it can take advantage of the `useFactory` option to determine the config at runtime, while still remaining compatible with AoT compilation. PR Close #21842
This commit is contained in:
@ -15,6 +15,6 @@
|
||||
*/
|
||||
|
||||
export {UpdateActivatedEvent, UpdateAvailableEvent} from './low_level';
|
||||
export {ServiceWorkerModule} from './module';
|
||||
export {ServiceWorkerModule, SwRegistrationOptions} from './module';
|
||||
export {SwPush} from './push';
|
||||
export {SwUpdate} from './update';
|
||||
|
@ -14,6 +14,12 @@ import {NgswCommChannel} from './low_level';
|
||||
import {SwPush} from './push';
|
||||
import {SwUpdate} from './update';
|
||||
|
||||
/**
|
||||
* Token that can be used to provide options for `ServiceWorkerModule` outside of
|
||||
* `ServiceWorkerModule.register()`.
|
||||
*
|
||||
* @publicApi
|
||||
*/
|
||||
export abstract class SwRegistrationOptions {
|
||||
scope?: string;
|
||||
enabled?: boolean;
|
||||
@ -69,7 +75,7 @@ export class ServiceWorkerModule {
|
||||
* If `enabled` is set to `false` in the given options, the module will behave as if service
|
||||
* workers are not supported by the browser, and the service worker will not be registered.
|
||||
*/
|
||||
static register(script: string, opts: {scope?: string; enabled?: boolean;} = {}):
|
||||
static register(script: string, opts: SwRegistrationOptions = {}):
|
||||
ModuleWithProviders<ServiceWorkerModule> {
|
||||
return {
|
||||
ngModule: ServiceWorkerModule,
|
||||
|
Reference in New Issue
Block a user