UNPKG

jtc-utils

Version:
41 lines (40 loc) 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.utf16le = void 0; const charset_cjs_1 = require("./charset.cjs"); class Utf16leCharset { get name() { return "utf-16le"; } createDecoder(options) { return new charset_cjs_1.StandardDecoder("utf-16le", options); } createEncoder(options) { return new Utf16leEncoder(); } isUnicode() { return true; } isEbcdic() { return false; } } class Utf16leEncoder { canEncode(str) { return true; } encode(str, options) { const out = new Uint8Array(str.length * 2); const limit = options?.limit ?? Number.POSITIVE_INFINITY; for (let i = 0; i < str.length; i++) { const cp = str.charCodeAt(i); out[i * 2] = cp & 0xff; out[i * 2 + 1] = (cp >>> 8) & 0xff; } if (out.length > limit) { return out.subarray(0, Math.floor(limit / 2) * 2); } return out; } } exports.utf16le = new Utf16leCharset();