mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-10-09 15:58:34 +00:00
a493fbfea8
Support bulk .md/.txt import into the current notebook folder and add hover copy buttons on note code blocks in edit and preview modes. Co-authored-by: Cursor <cursoragent@cursor.com>
27 lines
683 B
TypeScript
27 lines
683 B
TypeScript
export async function readTextFile(file: File): Promise<string> {
|
|
const buf = await file.arrayBuffer();
|
|
const bytes = new Uint8Array(buf);
|
|
|
|
let encoding: string = "utf-8";
|
|
let offset = 0;
|
|
|
|
if (bytes.length >= 2 && bytes[0] === 0xff && bytes[1] === 0xfe) {
|
|
encoding = "utf-16le";
|
|
offset = 2;
|
|
} else if (bytes.length >= 2 && bytes[0] === 0xfe && bytes[1] === 0xff) {
|
|
encoding = "utf-16be";
|
|
offset = 2;
|
|
} else if (
|
|
bytes.length >= 3 &&
|
|
bytes[0] === 0xef &&
|
|
bytes[1] === 0xbb &&
|
|
bytes[2] === 0xbf
|
|
) {
|
|
encoding = "utf-8";
|
|
offset = 3;
|
|
}
|
|
|
|
const decoder = new TextDecoder(encoding);
|
|
return decoder.decode(bytes.slice(offset));
|
|
}
|