File Explorer

/var/lang/lib/node_modules/npm/node_modules/iconv-lite/encodings

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

1 dir
10 files
sbcs-codec.js2.1 KB · 76 lines
"use strict"var Buffer = require("safer-buffer").Buffer // Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that// correspond to encoded bytes (if 128 - then lower half is ASCII). exports._sbcs = SBCSCodecfunction SBCSCodec (codecOptions, iconv) {  if (!codecOptions) {    throw new Error("SBCS codec is called without the data.")  }   // Prepare char buffer for decoding.  if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)) {    throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)")  }   if (codecOptions.chars.length === 128) {    var asciiString = ""    for (var i = 0; i < 128; i++) {      asciiString += String.fromCharCode(i)    }    codecOptions.chars = asciiString + codecOptions.chars  }   this.decodeBuf = Buffer.from(codecOptions.chars, "ucs2")   // Encoding buffer.  var encodeBuf = Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0))   for (var i = 0; i < codecOptions.chars.length; i++) {    encodeBuf[codecOptions.chars.charCodeAt(i)] = i  }   this.encodeBuf = encodeBuf} SBCSCodec.prototype.encoder = SBCSEncoderSBCSCodec.prototype.decoder = SBCSDecoder function SBCSEncoder (options, codec) {  this.encodeBuf = codec.encodeBuf} SBCSEncoder.prototype.write = function (str) {  var buf = Buffer.alloc(str.length)  for (var i = 0; i < str.length; i++) {    buf[i] = this.encodeBuf[str.charCodeAt(i)]  }   return buf} SBCSEncoder.prototype.end = function () {} function SBCSDecoder (options, codec) {  this.decodeBuf = codec.decodeBuf} SBCSDecoder.prototype.write = function (buf) {  // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.  var decodeBuf = this.decodeBuf  var newBuf = Buffer.alloc(buf.length * 2)  var idx1 = 0; var idx2 = 0  for (var i = 0; i < buf.length; i++) {    idx1 = buf[i] * 2; idx2 = i * 2    newBuf[idx2] = decodeBuf[idx1]    newBuf[idx2 + 1] = decodeBuf[idx1 + 1]  }  return newBuf.toString("ucs2")} SBCSDecoder.prototype.end = function () {}