2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-03-16 09:53:04 +00:00

fix: header transformation plugin not properly handling utf-8 characters

This commit is contained in:
Jan Laupetin
2026-03-14 08:37:26 +01:00
parent 76881dc77f
commit 3e85db8110

View File

@@ -12,6 +12,8 @@ interface PublicDirFile {
relativePath: string; relativePath: string;
} }
const textEncoder = new TextEncoder();
function getPublicDirFiles(publicDir?: string): PublicDirFile[] { function getPublicDirFiles(publicDir?: string): PublicDirFile[] {
if (!publicDir) return []; if (!publicDir) return [];
@@ -41,20 +43,23 @@ function createVarName(fileName: string) {
function transformAsset(asset: MinimalOutputAsset) { function transformAsset(asset: MinimalOutputAsset) {
const varName = createVarName(asset.fileName); const varName = createVarName(asset.fileName);
let bytes: string; let buffer: Uint8Array;
if (typeof asset.source === "string") { if (typeof asset.source === "string") {
bytes = [...asset.source].map((v) => String(v.charCodeAt(0))).join(","); buffer = textEncoder.encode(asset.source);
} else { } 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}}; return `constexpr const unsigned char ${varName}[] {${bytes}};
`; `;
} }
function transformChunk(chunk: MinimalOutputChunk) { function transformChunk(chunk: MinimalOutputChunk) {
const varName = createVarName(chunk.fileName); 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}}; return `constexpr const unsigned char ${varName}[] {${bytes}};
`; `;