diff --git a/packages/uts-darwin-arm64/uts.darwin-arm64.node b/packages/uts-darwin-arm64/uts.darwin-arm64.node index 3cdb3306d2fc0eba924ab7ecf945d0449ea883fc..05f470e5c503ffc8d3b1811e8663e3ce488a48c3 100755 Binary files a/packages/uts-darwin-arm64/uts.darwin-arm64.node and b/packages/uts-darwin-arm64/uts.darwin-arm64.node differ diff --git a/packages/uts-darwin-x64/uts.darwin-x64.node b/packages/uts-darwin-x64/uts.darwin-x64.node index 244c66f0e339879ae6abab47ee37a771ba8a8247..b223b48669d6f5ae95d4f6d94fce909766dc93bd 100755 Binary files a/packages/uts-darwin-x64/uts.darwin-x64.node and b/packages/uts-darwin-x64/uts.darwin-x64.node differ diff --git a/packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node b/packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node index 54e13a3748747b24c8d073bc4ff3bf098167854c..327dbd0b071dedb45ab9a9960b4f1542e1957289 100644 Binary files a/packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node and b/packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node differ diff --git a/packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node b/packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node index 286764b26e23c74e17bbea35b3df8fafec11c720..15596e7d7ca585698490c64846e56117cd829fd3 100644 Binary files a/packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node and b/packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node differ diff --git a/packages/uts/src/index.ts b/packages/uts/src/index.ts index 9291d139abe151f9105fe90748f3355df6883d8d..b6eabcf62e994f5cbbf851b0b709ab24afbfc7fd 100644 --- a/packages/uts/src/index.ts +++ b/packages/uts/src/index.ts @@ -9,6 +9,7 @@ import type { InputKotlinOptions, OutputKotlinOptions, UtsKotlinOptions, + UtsResult, } from './types' import { printStartup, printUtsResult, printUtsResults, timeEnd } from './utils' @@ -194,7 +195,13 @@ function buildKotlin({ }) return Promise.all( - files.map((filename) => buildKotlinFile(filename, input, output)) + files.map((filename) => + buildKotlinFile(filename, input, output).catch((error) => { + return { + error, + } as UtsResult + }) + ) ) .then((res) => { return copyAssets(UtsTarget.KOTLIN, inputDir, outputDir, extname!).then( diff --git a/packages/uts/src/types.ts b/packages/uts/src/types.ts index 443334a85a959c09dd1de68b004f88f749bd8e51..fd094644f45ea17242e1b9ed7fb67c79a5611a2d 100644 --- a/packages/uts/src/types.ts +++ b/packages/uts/src/types.ts @@ -46,4 +46,5 @@ export interface UtsSwiftOptions { export interface UtsResult { filename?: string time?: number + error?: Error } diff --git a/packages/uts/src/utils.ts b/packages/uts/src/utils.ts index 301607f908817b98ed74ce04da3144473f610c37..b46acbf713f7bf40d6dbc41f26581727d3dd1a9a 100644 --- a/packages/uts/src/utils.ts +++ b/packages/uts/src/utils.ts @@ -30,16 +30,37 @@ export function printStartup(target: UtsTarget, mode: string) { export function printUtsResults(results: UtsResult[]) { let longest = 0 - for (const result of results) { - const l = result.filename!.length - if (l > longest) longest = l - } - console.log( - colors.dim(`${colors.green(`✓`)} ${results.length} files transformed.`) - ) + let failed: UtsResult[] = [] + let transformed: UtsResult[] = [] results.forEach((result) => { - printUtsResult(result, longest) + if (result.error) { + failed.push(result) + } else { + transformed.push(result) + } }) + if (failed.length) { + console.log(colors.dim(`${colors.red(`✗`)} ${failed.length} files failed.`)) + failed.forEach((result) => { + console.error(result.error!.message.split(`Caused by:`)[0]) + }) + } + if (transformed.length) { + for (const result of transformed) { + const l = result.filename!.length + if (l > longest) longest = l + } + console.log( + colors.dim( + `${colors.green(`✓`)} ${transformed.length} files transformed.` + ) + ) + transformed.forEach((result) => { + if (result.filename) { + printUtsResult(result, longest) + } + }) + } } export function printUtsResult(result: UtsResult, maxLength = 0) {