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" + ); +} diff --git a/packages/oocana-types/src/reporter.ts b/packages/oocana-types/src/reporter.ts index cfbf4525..4618878b 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["localize"]; + }; +};