HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /proc/self/root/usr/share/nodejs/lines-and-columns/build/
Upload File :
Current File : //proc/self/root/usr/share/nodejs/lines-and-columns/build/index.js
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.LinesAndColumns = void 0;
var LF = '\n';
var CR = '\r';

var LinesAndColumns =
/** @class */
function () {
  function LinesAndColumns(string) {
    this.string = string;
    var offsets = [0];

    for (var offset = 0; offset < string.length;) {
      switch (string[offset]) {
        case LF:
          offset += LF.length;
          offsets.push(offset);
          break;

        case CR:
          offset += CR.length;

          if (string[offset] === LF) {
            offset += LF.length;
          }

          offsets.push(offset);
          break;

        default:
          offset++;
          break;
      }
    }

    this.offsets = offsets;
  }

  LinesAndColumns.prototype.locationForIndex = function (index) {
    if (index < 0 || index > this.string.length) {
      return null;
    }

    var line = 0;
    var offsets = this.offsets;

    while (offsets[line + 1] <= index) {
      line++;
    }

    var column = index - offsets[line];
    return {
      line: line,
      column: column
    };
  };

  LinesAndColumns.prototype.indexForLocation = function (location) {
    var line = location.line,
        column = location.column;

    if (line < 0 || line >= this.offsets.length) {
      return null;
    }

    if (column < 0 || column > this.lengthOfLine(line)) {
      return null;
    }

    return this.offsets[line] + column;
  };

  LinesAndColumns.prototype.lengthOfLine = function (line) {
    var offset = this.offsets[line];
    var nextOffset = line === this.offsets.length - 1 ? this.string.length : this.offsets[line + 1];
    return nextOffset - offset;
  };

  return LinesAndColumns;
}();

exports.LinesAndColumns = LinesAndColumns;