From dfa95058059674b280e6eb8f2235aa1b966873ed Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Wed, 6 May 2026 14:33:17 +0300 Subject: [PATCH] chore(lint): enforce domain prefix folders project-wide - Generalize sibling domain prefix linting beyond tests - Move create icon tools under the existing create domain folder - Keep create.ts exporting the icon tools through the domain folder --- lint/plugin.js | 8 ++++---- oxlint.json | 2 +- packages/core/src/tools/create.ts | 2 +- .../core/src/tools/{create-icons.ts => create/icons.ts} | 3 +-- 4 files changed, 7 insertions(+), 8 deletions(-) rename packages/core/src/tools/{create-icons.ts => create/icons.ts} (98%) diff --git a/lint/plugin.js b/lint/plugin.js index 183d0e2cf..5b58872bd 100644 --- a/lint/plugin.js +++ b/lint/plugin.js @@ -1167,10 +1167,10 @@ const noTopLevelPrefixedTestFiles = createProgramFilenameRule({ } }) -const noSiblingDomainPrefixedTestFiles = createProgramFilenameRule({ - description: 'Disallow test files that repeat an existing sibling domain folder as a filename prefix', +const noSiblingDomainPrefixedFiles = createProgramFilenameRule({ + description: 'Disallow files that repeat an existing sibling domain folder as a filename prefix', check(file) { - const match = file.match(/^(.*\/tests\/(?:engine|e2e)\/.+\/)([^/]+)-[^/]+\.(?:test|spec)\.ts$/) + const match = file.match(/^(.*\/)([^/]+)-[^/]+\.(?:test\.)?(?:spec\.)?(?:ts|tsx|vue)$/) if (!match) return false const [, dir, prefix] = match @@ -1243,7 +1243,7 @@ const plugin = { 'no-function-alias-imports': noFunctionAliasImports, 'no-flat-kiwi-modules': noFlatKiwiModules, 'no-top-level-prefixed-test-files': noTopLevelPrefixedTestFiles, - 'no-sibling-domain-prefixed-test-files': noSiblingDomainPrefixedTestFiles + 'no-sibling-domain-prefixed-files': noSiblingDomainPrefixedFiles } } diff --git a/oxlint.json b/oxlint.json index 31510bc81..d9fe8bf9c 100644 --- a/oxlint.json +++ b/oxlint.json @@ -155,7 +155,7 @@ "open-pencil/no-component-root-sibling-folder": "error", "open-pencil/no-flat-kiwi-modules": "error", "open-pencil/no-top-level-prefixed-test-files": "error", - "open-pencil/no-sibling-domain-prefixed-test-files": "error" + "open-pencil/no-sibling-domain-prefixed-files": "error" }, "overrides": [ { diff --git a/packages/core/src/tools/create.ts b/packages/core/src/tools/create.ts index af122542d..9b8b7dc95 100644 --- a/packages/core/src/tools/create.ts +++ b/packages/core/src/tools/create.ts @@ -1,6 +1,6 @@ export { createPage, createShape, createSlice } from './create/basic' export { createComponent, createInstance } from './create/components' -export { fetchIconsTool, insertIcon, searchIconsTool } from './create-icons' +export { fetchIconsTool, insertIcon, searchIconsTool } from './create/icons' export { render } from './create/render' export { importSvg } from './create/svg' export { createVector } from './create/vector' diff --git a/packages/core/src/tools/create-icons.ts b/packages/core/src/tools/create/icons.ts similarity index 98% rename from packages/core/src/tools/create-icons.ts rename to packages/core/src/tools/create/icons.ts index 392c969ba..8f3c577d8 100644 --- a/packages/core/src/tools/create-icons.ts +++ b/packages/core/src/tools/create/icons.ts @@ -1,8 +1,7 @@ import { parseColor } from '#core/color' import { fetchIcons, searchIconsBatch } from '#core/icons' import { createIconFromPaths } from '#core/icons/render' - -import { defineTool } from './schema' +import { defineTool } from '#core/tools/schema' export const fetchIconsTool = defineTool({ name: 'fetch_icons',