// Configuration for warning suppressions - easily extensible const WARNING_SUPPRESSIONS = { MODULE_LEVEL_DIRECTIVE: { patterns: ["node_modules/"], reason: "Suppress 'use client' directive warnings from dependencies", }, THIS_IS_UNDEFINED: { patterns: ["node_modules/"], reason: "Suppress 'this' keyword warnings in ES modules from dependencies", }, CIRCULAR_DEPENDENCY: { patterns: [ "nitropack/dist/runtime/internal/", "@tanstack/store/dist", "juice/lib/", ], reason: "Suppress known third-party circular dependency warnings", }, }; // Additional message-based suppressions const MESSAGE_SUPPRESSIONS = [ "The 'this' keyword is equivalent to 'undefined'", ]; function shouldSuppressWarning(warning) { const message = warning.message || ""; // Check code-based suppressions const suppression = WARNING_SUPPRESSIONS[warning.code]; if (suppression) { return suppression.patterns.some((pattern) => message.includes(pattern)); } // Check message-based suppressions return MESSAGE_SUPPRESSIONS.some((suppressionMessage) => message.includes(suppressionMessage) ); } export default { rollupConfig: { onwarn(warning, defaultHandler) { if (shouldSuppressWarning(warning)) { return; } // Handle all other warnings normally defaultHandler(warning); }, }, };