From 18c1f31514e636261d8d4601dd091e6b8b44db76 Mon Sep 17 00:00:00 2001 From: tdgao Date: Thu, 27 Aug 2026 22:03:04 -0600 Subject: [PATCH] refactor: centralize project validation and nags into validation rules --- .../src/components/ValidationMessage.vue | 21 +- .../ui/create/ProjectCreateModal.vue | 2 +- .../ui/moderation/ModerateByIdsModal.vue | 7 +- .../ui/moderation/ModerationProjectNags.vue | 21 +- .../composables/project-field-validation.ts | 18 +- .../src/pages/[type]/[project]/gallery.vue | 8 +- .../[type]/[project]/settings/gallery.vue | 8 +- .../[type]/[project]/settings/general.vue | 2 +- apps/frontend/src/pages/moderation/index.vue | 2 + .../services/moderation/validation-filter.ts | 67 +- packages/moderation/package.json | 2 +- packages/moderation/src/data/nags.ts | 44 +- packages/moderation/src/data/nags/core.ts | 291 ------- packages/moderation/src/data/nags/index.ts | 5 - packages/moderation/src/data/nags/links.ts | 295 ------- .../src/data/nags/project-validation.ts | 333 -------- .../src/data/nags/server-projects.ts | 184 ---- packages/moderation/src/data/nags/tags.ts | 222 ----- packages/moderation/src/index.ts | 6 +- .../moderation/src/locales/ar-SA/index.json | 22 - .../moderation/src/locales/cs-CZ/index.json | 21 - .../moderation/src/locales/da-DK/index.json | 1 - .../moderation/src/locales/de-CH/index.json | 22 - .../moderation/src/locales/de-DE/index.json | 22 - .../moderation/src/locales/en-US/index.json | 783 +++++++++--------- .../moderation/src/locales/es-419/index.json | 22 - .../moderation/src/locales/es-ES/index.json | 22 - .../moderation/src/locales/fi-FI/index.json | 7 - .../moderation/src/locales/fil-PH/index.json | 22 - .../moderation/src/locales/fr-FR/index.json | 22 - .../moderation/src/locales/he-IL/index.json | 18 - .../moderation/src/locales/hu-HU/index.json | 22 - .../moderation/src/locales/id-ID/index.json | 22 - .../moderation/src/locales/it-IT/index.json | 21 - .../moderation/src/locales/ja-JP/index.json | 22 - .../moderation/src/locales/ko-KR/index.json | 22 - .../moderation/src/locales/ms-MY/index.json | 22 - .../moderation/src/locales/nl-NL/index.json | 22 - .../moderation/src/locales/no-NO/index.json | 22 - .../moderation/src/locales/pl-PL/index.json | 22 - .../moderation/src/locales/pt-BR/index.json | 22 - .../moderation/src/locales/pt-PT/index.json | 22 - .../moderation/src/locales/ro-RO/index.json | 22 - .../moderation/src/locales/ru-RU/index.json | 22 - .../moderation/src/locales/sr-CS/index.json | 22 - .../moderation/src/locales/sv-SE/index.json | 22 - .../moderation/src/locales/th-TH/index.json | 4 - .../moderation/src/locales/tr-TR/index.json | 22 - .../moderation/src/locales/uk-UA/index.json | 22 - .../moderation/src/locales/vi-VN/index.json | 22 - .../moderation/src/locales/zh-CN/index.json | 22 - .../moderation/src/locales/zh-TW/index.json | 22 - packages/moderation/src/types/nags.ts | 50 +- .../src/validation-rules/evaluate-rules.ts | 25 + .../moderation/src/validation-rules/index.ts | 20 + .../src/validation-rules/nag-destinations.ts | 109 +++ .../src/validation-rules/rules/description.ts | 268 ++++++ .../src/validation-rules/rules/disclosures.ts | 43 + .../src/validation-rules/rules/gallery.ts | 170 ++++ .../src/validation-rules/rules/icon.ts | 33 + .../src/validation-rules/rules/license.ts | 122 +++ .../src/validation-rules/rules/links.ts | 231 ++++++ .../src/validation-rules/rules/moderation.ts | 34 + .../src/validation-rules/rules/name.ts | 149 ++++ .../src/validation-rules/rules/permissions.ts | 37 + .../validation-rules/rules/server-settings.ts | 137 +++ .../src/validation-rules/rules/summary.ts | 196 +++++ .../src/validation-rules/rules/tags.ts | 188 +++++ .../src/validation-rules/rules/versions.ts | 34 + .../moderation/src/validation-rules/tests.ts | 175 ++++ .../moderation/src/validation-rules/text.ts | 36 + .../src/validation-rules/to-field-messages.ts | 10 + .../src/validation-rules/to-nags.ts | 41 + .../moderation/src/validation-rules/types.ts | 51 ++ .../src/validation-rules/validate-project.ts | 20 + .../src/validators/links/detection.ts | 34 + .../moderation/src/validators/links/index.ts | 6 + .../src/validators/project-fields/index.ts | 466 ----------- .../src/validators/project-fields/tests.ts | 281 ------- .../validators/project-validation/index.ts | 70 -- .../validators/project-validation/tests.ts | 171 ---- packages/ui/package.json | 4 + packages/ui/src/composables/i18n.ts | 4 +- 83 files changed, 2752 insertions(+), 3428 deletions(-) delete mode 100644 packages/moderation/src/data/nags/core.ts delete mode 100644 packages/moderation/src/data/nags/index.ts delete mode 100644 packages/moderation/src/data/nags/links.ts delete mode 100644 packages/moderation/src/data/nags/project-validation.ts delete mode 100644 packages/moderation/src/data/nags/server-projects.ts delete mode 100644 packages/moderation/src/data/nags/tags.ts create mode 100644 packages/moderation/src/validation-rules/evaluate-rules.ts create mode 100644 packages/moderation/src/validation-rules/index.ts create mode 100644 packages/moderation/src/validation-rules/nag-destinations.ts create mode 100644 packages/moderation/src/validation-rules/rules/description.ts create mode 100644 packages/moderation/src/validation-rules/rules/disclosures.ts create mode 100644 packages/moderation/src/validation-rules/rules/gallery.ts create mode 100644 packages/moderation/src/validation-rules/rules/icon.ts create mode 100644 packages/moderation/src/validation-rules/rules/license.ts create mode 100644 packages/moderation/src/validation-rules/rules/links.ts create mode 100644 packages/moderation/src/validation-rules/rules/moderation.ts create mode 100644 packages/moderation/src/validation-rules/rules/name.ts create mode 100644 packages/moderation/src/validation-rules/rules/permissions.ts create mode 100644 packages/moderation/src/validation-rules/rules/server-settings.ts create mode 100644 packages/moderation/src/validation-rules/rules/summary.ts create mode 100644 packages/moderation/src/validation-rules/rules/tags.ts create mode 100644 packages/moderation/src/validation-rules/rules/versions.ts create mode 100644 packages/moderation/src/validation-rules/tests.ts create mode 100644 packages/moderation/src/validation-rules/text.ts create mode 100644 packages/moderation/src/validation-rules/to-field-messages.ts create mode 100644 packages/moderation/src/validation-rules/to-nags.ts create mode 100644 packages/moderation/src/validation-rules/types.ts create mode 100644 packages/moderation/src/validation-rules/validate-project.ts create mode 100644 packages/moderation/src/validators/links/detection.ts delete mode 100644 packages/moderation/src/validators/project-fields/index.ts delete mode 100644 packages/moderation/src/validators/project-fields/tests.ts delete mode 100644 packages/moderation/src/validators/project-validation/index.ts delete mode 100644 packages/moderation/src/validators/project-validation/tests.ts diff --git a/apps/frontend/src/components/ValidationMessage.vue b/apps/frontend/src/components/ValidationMessage.vue index a18cae7712..89dbba3124 100644 --- a/apps/frontend/src/components/ValidationMessage.vue +++ b/apps/frontend/src/components/ValidationMessage.vue @@ -2,12 +2,22 @@
{{ validation.message ? formatMessage(validation.message, validation.values) : undefined }} @@ -16,12 +26,13 @@