From a0b48ac28082be43c3d78d944e01642b3a64f773 Mon Sep 17 00:00:00 2001 From: dumanoglu1 <118473861+dumanoglu1@users.noreply.github.com> Date: Sat, 15 Aug 2026 15:31:53 +0300 Subject: [PATCH] fix: correctly parse mintignore directory patterns (#1819) --- scripts/lib/docs-utils.js | 3 ++- scripts/lib/docs-utils.test.js | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 scripts/lib/docs-utils.test.js diff --git a/scripts/lib/docs-utils.js b/scripts/lib/docs-utils.js index 81451eda7..ff4f7c97e 100644 --- a/scripts/lib/docs-utils.js +++ b/scripts/lib/docs-utils.js @@ -80,7 +80,8 @@ function loadMintIgnore(mintignorePath) { const trimmed = line.trim(); if (!trimmed || trimmed.startsWith('#')) continue; if (trimmed.endsWith('/*')) { - ignored.dirs.add(trimmed.slice(1, -2)); + const dir = trimmed.startsWith('/') ? trimmed.slice(1, -2) : trimmed.slice(0, -2); + ignored.dirs.add(dir); } else if (trimmed.startsWith('/')) { ignored.files.add(trimmed.slice(1)); } else { diff --git a/scripts/lib/docs-utils.test.js b/scripts/lib/docs-utils.test.js new file mode 100644 index 000000000..82269a288 --- /dev/null +++ b/scripts/lib/docs-utils.test.js @@ -0,0 +1,22 @@ +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const os = require('node:os'); +const path = require('node:path'); +const test = require('node:test'); + +const { loadMintIgnore } = require('./docs-utils'); + +test('loadMintIgnore parses directory patterns with and without leading slash', () => { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'mintignore-')); + const mintignore = path.join(dir, '.mintignore'); + + try { + fs.writeFileSync(mintignore, ['/foo/*', 'bar/*', 'draft-notes/*'].join('\n')); + + const ignored = loadMintIgnore(mintignore); + + assert.deepEqual([...ignored.dirs].sort(), ['bar', 'draft-notes', 'foo']); + } finally { + fs.rmSync(dir, { recursive: true, force: true }); + } +});