@masx200/zmodem.js
Version:
ZMODEM file transfers in JavaScript
40 lines (33 loc) • 886 B
JavaScript
class _my_TextEncoder {
encode(text) {
text = unescape(encodeURIComponent(text));
var bytes = new Array(text.length);
for (var b = 0; b < text.length; b++) {
bytes[b] = text.charCodeAt(b);
}
return new Uint8Array(bytes);
}
}
class _my_TextDecoder {
decode(bytes) {
return decodeURIComponent(
escape(String.fromCharCode.apply(String, bytes)),
);
}
}
var Zmodem = module.exports;
/**
* A limited-use compatibility shim for TextEncoder and TextDecoder.
* Useful because both Edge and node.js still lack support for these
* as of October 2017.
*
* @exports Text
*/
Zmodem.Text = {
Encoder: (typeof TextEncoder !== "undefined")
? TextEncoder
: _my_TextEncoder,
Decoder: (typeof TextDecoder !== "undefined")
? TextDecoder
: _my_TextDecoder,
};