From 520a8b5310d64364009722eea5edba375c9b2797 Mon Sep 17 00:00:00 2001 From: leavesster <11785335+leavesster@users.noreply.github.com> Date: Mon, 21 Apr 2025 14:30:48 +0800 Subject: [PATCH 1/3] feat: add localizedObject type --- packages/oocana-types/src/reporter.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/oocana-types/src/reporter.ts b/packages/oocana-types/src/reporter.ts index cfbf4525..d015fbd1 100644 --- a/packages/oocana-types/src/reporter.ts +++ b/packages/oocana-types/src/reporter.ts @@ -39,3 +39,10 @@ export type IReporterClientMessage = | IReporterBlockLog | IReporterBlockWarning | IReporterBlockProgress; + +export type LocalizeInfo = { + localize: { + $key: string; + [key: string | number]: string | number | LocalizeInfo; + }; +}; From a248d924135b9e65e6a1740167eb3eeb99bc1e43 Mon Sep 17 00:00:00 2001 From: leavesster <11785335+leavesster@users.noreply.github.com> Date: Mon, 21 Apr 2025 15:17:53 +0800 Subject: [PATCH 2/3] feat: add localize info type guard --- packages/executor/src/utils.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/executor/src/utils.ts b/packages/executor/src/utils.ts index b79aa06c..27bfde0c 100644 --- a/packages/executor/src/utils.ts +++ b/packages/executor/src/utils.ts @@ -4,7 +4,7 @@ import { stat, realpath, unlink } from "node:fs/promises"; import path from "node:path"; import { logger } from "./logger"; import { importFile } from "@hyrious/esbuild-dev"; -import type { ServiceExecutePayload } from "@oomol/oocana-types"; +import type { LocalizeInfo, ServiceExecutePayload } from "@oomol/oocana-types"; import { pathToFileURL } from "node:url"; export interface ExecutorArgs { @@ -248,3 +248,13 @@ export function isServicePayload( typeof payload.service_executor.function === "string" ); } + +export function isLocaleInfo(info: any): info is LocalizeInfo { + const localizeInfo = info as LocalizeInfo; + return ( + localizeInfo && + typeof localizeInfo === "object" && + typeof localizeInfo.localize === "object" && + typeof localizeInfo.localize.$key === "string" + ); +} From 9f4fe03cc17f41e545c2f1c2a428f6ca63acd586 Mon Sep 17 00:00:00 2001 From: leavesster <11785335+leavesster@users.noreply.github.com> Date: Mon, 21 Apr 2025 15:23:51 +0800 Subject: [PATCH 3/3] refactor: reduce the levels of recursive nesting --- packages/oocana-types/src/reporter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oocana-types/src/reporter.ts b/packages/oocana-types/src/reporter.ts index d015fbd1..4618878b 100644 --- a/packages/oocana-types/src/reporter.ts +++ b/packages/oocana-types/src/reporter.ts @@ -43,6 +43,6 @@ export type IReporterClientMessage = export type LocalizeInfo = { localize: { $key: string; - [key: string | number]: string | number | LocalizeInfo; + [key: string | number]: string | number | LocalizeInfo["localize"]; }; };