src.nth.io/

summaryrefslogtreecommitdiff
path: root/src/warnings.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/warnings.ts')
-rw-r--r--src/warnings.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/warnings.ts b/src/warnings.ts
new file mode 100644
index 0000000..8bf2ca5
--- /dev/null
+++ b/src/warnings.ts
@@ -0,0 +1,19 @@
+/**
+ * matter.js's storage backend imports node:sqlite, which Node still marks
+ * experimental and announces with a process-level ExperimentalWarning on
+ * every run. That one-line warning is pure noise to an operator, so exactly
+ * that warning is dropped here; every other warning passes through.
+ *
+ * This module must be imported before anything that (transitively) imports
+ * matter.js, because the warning fires when node:sqlite is first loaded.
+ */
+
+const originalEmitWarning = process.emitWarning.bind(process);
+
+process.emitWarning = ((warning: string | Error, ...rest: unknown[]): void => {
+ const text = typeof warning === "string" ? warning : warning.message;
+ if (text.includes("SQLite is an experimental feature")) return;
+ (originalEmitWarning as (warning: string | Error, ...rest: unknown[]) => void)(warning, ...rest);
+}) as typeof process.emitWarning;
+
+export {};