From b1c8eea9765cedbce22f4cb4b6e365cd680431c7 Mon Sep 17 00:00:00 2001 From: Dmitriy Petrov Date: Fri, 8 May 2026 19:49:54 +0300 Subject: [PATCH] =?UTF-8?q?style:=20=D0=BE=D1=82=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=B4=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BB=D1=83=D1=87=D1=88?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=87=D0=B8=D1=82=D0=B0=D0=B5=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/singbox.js | 9 +++++++-- src/web/api.js | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/server/singbox.js b/src/server/singbox.js index 6adafde..5d1d3bf 100644 --- a/src/server/singbox.js +++ b/src/server/singbox.js @@ -36,7 +36,9 @@ function findOutbound(subscriptionConfig, selectedTag) { function readCustomRuleSets() { try { if (!fs.existsSync(settings.customRuleSetsPath)) return []; - const data = JSON.parse(fs.readFileSync(settings.customRuleSetsPath, "utf8")); + const data = JSON.parse( + fs.readFileSync(settings.customRuleSetsPath, "utf8"), + ); return Array.isArray(data) ? data : []; } catch { return []; @@ -75,7 +77,10 @@ function ruleSets(customRuleSets = []) { // Пользовательские rule-sets не должны дублировать встроенные const builtInTags = new Set(builtIn.map((rs) => rs.tag)); - const merged = [...builtIn, ...custom.filter((rs) => !builtInTags.has(rs.tag))]; + const merged = [ + ...builtIn, + ...custom.filter((rs) => !builtInTags.has(rs.tag)), + ]; return merged; } diff --git a/src/web/api.js b/src/web/api.js index a439112..a22de24 100644 --- a/src/web/api.js +++ b/src/web/api.js @@ -29,7 +29,10 @@ export const api = { ruleSets: { get: () => request("/api/rule-sets"), save: (ruleSets) => - request("/api/rule-sets", { method: "PUT", body: JSON.stringify({ ruleSets }) }), + request("/api/rule-sets", { + method: "PUT", + body: JSON.stringify({ ruleSets }), + }), }, subscription: {