Skip to main content

require-plugin-pwa-offline-mode-activation-strategies

Require @docusaurus/plugin-pwa to configure explicit offlineModeActivationStrategies coverage.

Targeted pattern scopeโ€‹

This rule focuses on docusaurus.config.* files when @docusaurus/plugin-pwa is configured in the top-level plugins array with object options.

It validates offlineModeActivationStrategies in the plugin options object.

What this rule reportsโ€‹

This rule reports plugin-pwa option objects that:

  • omit offlineModeActivationStrategies, or
  • provide an array that is missing one or more required strategies.

By default, required strategies are:

  • "appInstalled"
  • "standalone"
  • "queryString"

Why this rule existsโ€‹

PWA behavior changes across installation and runtime contexts. Explicit strategy coverage helps keep behavior consistent across:

  • installed app mode,
  • standalone mode, and
  • explicit query-string activation/testing.

โŒ Incorrectโ€‹

export default {
plugins: [
[
"@docusaurus/plugin-pwa",
{
debug: true,
},
],
],
};
export default {
plugins: [
[
"@docusaurus/plugin-pwa",
{
offlineModeActivationStrategies: ["queryString"],
},
],
],
};

โœ… Correctโ€‹

export default {
plugins: [
[
"@docusaurus/plugin-pwa",
{
offlineModeActivationStrategies: [
"appInstalled",
"standalone",
"queryString",
],
},
],
],
};

Behavior and migration notesโ€‹

This rule reports only. It does not autofix.

If offlineModeActivationStrategies is dynamic and cannot be statically resolved to a string array, the rule does not report to avoid unsafe assumptions.

Rule optionsโ€‹

type Options = [
{
requiredStrategies?: string[];
}?,
];
  • requiredStrategies
    • Type: string[]
    • Default: ["appInstalled", "standalone", "queryString"]

When not to use itโ€‹

Do not use this rule if your project intentionally uses a different offline-mode activation model and does not want lint enforcement for strategy coverage.

Rule catalog ID: R047

Further readingโ€‹