Security News
cURL Project and Go Security Teams Reject CVSS as Broken
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
vfile-location
Advanced tools
Convert between positions (line and column-based) and offsets (range-based) locations in a virtual file
The vfile-location npm package is a utility tool for working with virtual file objects, specifically designed to map positions in a virtual file to line and column-based locations. This is particularly useful when dealing with transformations or manipulations of text where tracking positions within the original and modified content is necessary.
Location Mapping
This feature allows you to convert between line and column-based locations and absolute positions within a file's content. The `toOffset` method converts a line and column object to a zero-based offset, and the `toPoint` method converts an offset back to a line and column object.
const vfileLocation = require('vfile-location');
const text = 'Hello\nWorld';
const location = vfileLocation(text);
// Get position from line and column
const offset = location.toOffset({line: 2, column: 1}); // Returns 7
// Get line and column from position
const point = location.toPoint(offset); // Returns {line: 2, column: 1}
The 'line-column' npm package provides similar functionality to vfile-location, allowing users to find the line and column position from a character index and vice versa. It differs in its API design and additional options for customization, such as setting the origin index.
While primarily focused on creating text-based columns for display, 'columnify' can also be used to manage text positions similarly to vfile-location. It is more specialized in creating aligned text output but includes position tracking as part of its layout capabilities.
Convert between positions (line and column-based) and offsets (range-based) locations in a virtual file.
npm:
npm install vfile-location
var vfile = require('vfile')
var vfileLocation = require('vfile-location')
var location = vfileLocation(vfile('foo\nbar\nbaz'))
var offset = location.toOffset({line: 3, column: 3}) // => 10
location.toPosition(offset) // => {line: 3, column: 3, offset: 10}
location = vfileLocation(doc)
Get transform functions for the given doc
(string
) or file
.
Returns an object with toOffset
and toPosition
.
location.toOffset(position)
Get the offset
(number
) for a line and column-based position
in the bound file.
Returns -1
when given invalid or out of bounds input.
location.toPosition(offset)
Get the line and column-based position
for offset
in the bound
file.
See contributing.md
in vfile/.github
for ways to
get started.
See support.md
for ways to get help.
This project has a Code of Conduct. By interacting with this repository, organisation, or community you agree to abide by its terms.
FAQs
vfile utility to convert between positional (line and column-based) and offset (range-based) locations
The npm package vfile-location receives a total of 3,782,647 weekly downloads. As such, vfile-location popularity was classified as popular.
We found that vfile-location demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.