serwist
Version:
A Swiss Army knife for service workers.
39 lines (33 loc) • 1.25 kB
text/typescript
/*
Copyright 2018 Google LLC
Use of this source code is governed by an MIT-style
license that can be found in the LICENSE file or at
https://opensource.org/licenses/MIT.
*/
import type { FetchDidFailCallbackParam, SerwistPlugin } from "../../types.js";
import type { BackgroundSyncQueueOptions } from "./BackgroundSyncQueue.js";
import { BackgroundSyncQueue } from "./BackgroundSyncQueue.js";
/**
* A class implementing the `fetchDidFail` lifecycle callback. This makes it
* easier to add failed requests to a {@linkcode BackgroundSyncQueue}.
*/
export class BackgroundSyncPlugin implements SerwistPlugin {
private readonly _queue: BackgroundSyncQueue;
/**
* @param name See the {@linkcode BackgroundSyncQueue}
* documentation for parameter details.
* @param options See the {@linkcode BackgroundSyncQueue}
* documentation for parameter details.
* @see https://serwist.pages.dev/docs/serwist/core/background-sync-queue
*/
constructor(name: string, options?: BackgroundSyncQueueOptions) {
this._queue = new BackgroundSyncQueue(name, options);
}
/**
* @param options
* @private
*/
async fetchDidFail({ request }: FetchDidFailCallbackParam) {
await this._queue.pushRequest({ request });
}
}