From 9d077bc2029790ac5aef670f8c535e9c80a3c2c2 Mon Sep 17 00:00:00 2001
From: Guilherme Gazzo <guilhermegazzo@gmail.com>
Date: Thu, 21 Oct 2021 10:55:15 -0300
Subject: [PATCH] Regression: watchByRegex without Fibers (#23529)

---
 app/settings/server/startup.ts | 39 +++++++++++++++++++++++-----------
 1 file changed, 27 insertions(+), 12 deletions(-)

diff --git a/app/settings/server/startup.ts b/app/settings/server/startup.ts
index 2359e2d5916..4809dd9e833 100644
--- a/app/settings/server/startup.ts
+++ b/app/settings/server/startup.ts
@@ -7,8 +7,8 @@ import { settings } from './functions/settings';
 const getProcessingTimeInMS = (time: [number, number]): number => time[0] * 1000 + time[1] / 1e6;
 
 settings.watch = use(settings.watch, (context, next) => {
-	const [_id, callback] = context;
-	return next(_id, Meteor.bindEnvironment(callback));
+	const [_id, callback, ...args] = context;
+	return next(_id, Meteor.bindEnvironment(callback), ...args);
 });
 
 if (process.env.DEBUG_SETTINGS === 'true') {
@@ -23,23 +23,38 @@ if (process.env.DEBUG_SETTINGS === 'true') {
 	});
 }
 settings.watchMultiple = use(settings.watchMultiple, (context, next) => {
-	const [_id, callback] = context;
-	return next(_id, Meteor.bindEnvironment(callback));
+	const [_id, callback, ...args] = context;
+	return next(_id, Meteor.bindEnvironment(callback), ...args);
 });
 settings.watchOnce = use(settings.watchOnce, (context, next) => {
-	const [_id, callback] = context;
-	return next(_id, Meteor.bindEnvironment(callback));
+	const [_id, callback, ...args] = context;
+	return next(_id, Meteor.bindEnvironment(callback), ...args);
+});
+
+settings.watchByRegex = use(settings.watchByRegex, (context, next) => {
+	const [_id, callback, ...args] = context;
+	return next(_id, Meteor.bindEnvironment(callback), ...args);
 });
 
 settings.change = use(settings.change, (context, next) => {
-	const [_id, callback] = context;
-	return next(_id, Meteor.bindEnvironment(callback));
+	const [_id, callback, ...args] = context;
+	return next(_id, Meteor.bindEnvironment(callback), ...args);
 });
 settings.changeMultiple = use(settings.changeMultiple, (context, next) => {
-	const [_id, callback] = context;
-	return next(_id, Meteor.bindEnvironment(callback));
+	const [_id, callback, ...args] = context;
+	return next(_id, Meteor.bindEnvironment(callback), ...args);
 });
 settings.changeOnce = use(settings.changeOnce, (context, next) => {
-	const [_id, callback] = context;
-	return next(_id, Meteor.bindEnvironment(callback));
+	const [_id, callback, ...args] = context;
+	return next(_id, Meteor.bindEnvironment(callback), ...args);
+});
+
+settings.changeByRegex = use(settings.changeByRegex, (context, next) => {
+	const [_id, callback, ...args] = context;
+	return next(_id, Meteor.bindEnvironment(callback), ...args);
+});
+
+settings.onReady = use(settings.onReady, (context, next) => {
+	const [callback, ...args] = context;
+	return next(Meteor.bindEnvironment(callback), ...args);
 });
-- 
GitLab