unist-util-position-from-estree

unist utility to get a position from an estree node

Usage no npm install needed!

<script type="module">
  import unistUtilPositionFromEstree from 'https://cdn.skypack.dev/unist-util-position-from-estree';
</script>

README

unist-util-position-from-estree

Build Coverage Downloads Size Sponsors Backers Chat

unist utility to get a position from an estree node.

Install

This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.

npm:

npm install unist-util-position-from-estree

Use

import {parse} from 'acorn'
import {positionFromEstree} from 'unist-util-position-from-estree'

// Make acorn support line/column.
const node = parse('function x() { console.log(1) }', {
  ecmaVersion: 2020,
  locations: true
})

console.log(positionFromEstree(node)) // `Program`
console.log(positionFromEstree(node.body[0].id)) // `x`
console.log(positionFromEstree(node.body[0].body.body[0].expression)) // Call

Yields:

{
  start: {line: 1, column: 1, offset: 0},
  end: {line: 1, column: 32, offset: 31}
}
{
  start: {line: 1, column: 10, offset: 9},
  end: {line: 1, column: 11, offset: 10}
}
{
  start: {line: 1, column: 16, offset: 15},
  end: {line: 1, column: 30, offset: 29}
}

API

This package exports the following identifiers: positionFromEstree. There is no default export.

positionFromEstree(node)

Given a node, returns a position.

Related

Contribute

See contributing.md in syntax-tree/.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, organization, or community you agree to abide by its terms.

License

MIT © Titus Wormer