jtc-utils
Version:
Utilities for Japanese Traditional Companies
41 lines (40 loc) • 1.07 kB
JavaScript
;
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();