From 44166acb4bad540775cf072cbb69f7219035886b Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Tue, 28 May 2024 14:24:13 +0200 Subject: [PATCH] [Tooling] Improve typing --- tools/scripts/createTranslationChangelog.ts | 80 +++++++++++---------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/tools/scripts/createTranslationChangelog.ts b/tools/scripts/createTranslationChangelog.ts index b3937d6c..6d23b047 100644 --- a/tools/scripts/createTranslationChangelog.ts +++ b/tools/scripts/createTranslationChangelog.ts @@ -13,42 +13,6 @@ import yargs from 'yargs'; import { ControlledPromise } from '@/lib/ControlledPromise.ts'; import tokens from './tokens.json'; -interface WeblateChangeResult { - translation: string; - action: number; - action_name: string; - user: string; -} - -interface WeblateChangePayload { - next: string; - results: WeblateChangeResult[]; -} - -interface WeblateUserPayload { - full_name: string; -} - -interface WeblateLanguagePayload { - language: { - name: string; - }; -} - -type UsernameByUserUrl = Record; -type LanguageNameByTranslationUrl = Record; -type UserUrlsByTranslationUrl = Record; -type ActionByTranslationUrlByUserUrl = Record< - string, - Record }> ->; - -interface Contributor { - username: string; - contributionCount: number; -} -type ContributionsByLanguage = Record; - enum WeblateChangeActions { RESOURCE_UPDATED = 0, TRANSLATION_COMPLETED = 1, @@ -79,7 +43,7 @@ enum WeblateChangeActions { ADD_ON_CONFIGURATION_CHANGED = 61, } -const creditRelevantActions = [ +const creditRelevantActions: WeblateChangeActions[] = [ WeblateChangeActions.TRANSLATION_CHANGED, WeblateChangeActions.TRANSLATION_ADDED, WeblateChangeActions.TRANSLATION_REVERTED, @@ -88,6 +52,48 @@ const creditRelevantActions = [ WeblateChangeActions.MARKED_FOR_EDIT, ]; +interface WeblateChangeResult { + translation: string; + action: WeblateChangeActions; + action_name: keyof WeblateChangeActions; + user: string; +} + +interface WeblateChangePayload { + next: string; + results: WeblateChangeResult[]; +} + +interface WeblateUserPayload { + full_name: string; +} + +interface WeblateLanguagePayload { + language: { + name: string; + }; +} + +type Username = string; +type UserUrl = string; + +type LanguageName = string; +type TranslationUrl = string; + +type UsernameByUserUrl = Record; +type LanguageNameByTranslationUrl = Record; +type UserUrlsByTranslationUrl = Record; +type ActionByTranslationUrlByUserUrl = Record< + UserUrl, + Record }> +>; + +interface Contributor { + username: Username; + contributionCount: number; +} +type ContributionsByLanguage = Record; + const { afterDate, beforeDate, requiredContributionCount, keepKnownContributors } = yargs .options({ afterDate: {