diff --git a/src/ModManUi/build/HeaderTransformationPlugin.ts b/src/ModManUi/build/HeaderTransformationPlugin.ts index ab028e0b..86e675f6 100644 --- a/src/ModManUi/build/HeaderTransformationPlugin.ts +++ b/src/ModManUi/build/HeaderTransformationPlugin.ts @@ -12,6 +12,8 @@ interface PublicDirFile { relativePath: string; } +const textEncoder = new TextEncoder(); + function getPublicDirFiles(publicDir?: string): PublicDirFile[] { if (!publicDir) return []; @@ -41,20 +43,23 @@ function createVarName(fileName: string) { function transformAsset(asset: MinimalOutputAsset) { const varName = createVarName(asset.fileName); - let bytes: string; + let buffer: Uint8Array; if (typeof asset.source === "string") { - bytes = [...asset.source].map((v) => String(v.charCodeAt(0))).join(","); + buffer = textEncoder.encode(asset.source); } else { - bytes = [...asset.source].map((v) => String(v)).join(","); + buffer = asset.source; } + const bytes = [...buffer].map((v) => String(v)).join(","); + return `constexpr const unsigned char ${varName}[] {${bytes}}; `; } function transformChunk(chunk: MinimalOutputChunk) { const varName = createVarName(chunk.fileName); - const bytes = [...chunk.code].map((v) => String(v.charCodeAt(0))).join(","); + const buffer = textEncoder.encode(chunk.code); + const bytes = [...buffer].map((v) => String(v)).join(","); return `constexpr const unsigned char ${varName}[] {${bytes}}; `;