Sha256: ad4c6c423c651d2c3a42baa27a0cb3fbcbff1d12f68a9411d691a5e07f679bf2

Contents?: true

Size: 1.82 KB

Versions: 40

Compression:

Stored size: 1.82 KB

Contents

var LF = '\n';
var CR = '\r';
var LinesAndColumns = (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;
}());
export default LinesAndColumns;

Version data entries

40 entries across 39 versions & 7 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/lines-and-columns/dist/index.mjs
trusty-cms-5.0.7 node_modules/lines-and-columns/dist/index.mjs
trusty-cms-5.0.6 node_modules/lines-and-columns/dist/index.mjs
trusty-cms-5.0.5 node_modules/lines-and-columns/dist/index.mjs
trusty-cms-5.0.4 node_modules/lines-and-columns/dist/index.mjs
disco_app-0.16.1 test/dummy/node_modules/lines-and-columns/dist/index.mjs
disco_app-0.15.2 test/dummy/node_modules/lines-and-columns/dist/index.mjs
trusty-cms-5.0.3 node_modules/lines-and-columns/dist/index.mjs
trusty-cms-5.0.2 node_modules/lines-and-columns/dist/index.mjs
disco_app-0.18.4 test/dummy/node_modules/lines-and-columns/dist/index.mjs
disco_app-0.18.1 test/dummy/node_modules/lines-and-columns/dist/index.mjs
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/lines-and-columns/dist/index.mjs
disco_app-0.14.0 test/dummy/node_modules/lines-and-columns/dist/index.mjs
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/lines-and-columns/dist/index.mjs
trusty-cms-5.0.1 node_modules/lines-and-columns/dist/index.mjs
trusty-cms-4.3.5 node_modules/lines-and-columns/dist/index.mjs
trusty-cms-5.0.0 node_modules/lines-and-columns/dist/index.mjs
trusty-cms-4.3.4 node_modules/lines-and-columns/dist/index.mjs
trusty-cms-4.3.3 node_modules/lines-and-columns/dist/index.mjs
trusty-cms-4.3.2 node_modules/lines-and-columns/dist/index.mjs