Socket
Socket
Sign inDemoInstall

babel-code-frame

Package Overview
Dependencies
9
Maintainers
6
Versions
54
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    babel-code-frame

Generate errors that contain a code frame that point to source locations.


Version published
Weekly downloads
4.3M
decreased by-1.25%
Maintainers
6
Install size
165 kB
Created
Weekly downloads
 

Package description

What is babel-code-frame?

The babel-code-frame package is a utility that allows developers to generate a string representing a code frame that highlights a specific portion of the code, typically used to point out syntax errors or other code issues. It can be used to enhance error messages with a visual context of where the issue is located in the source code.

What are babel-code-frame's main functionalities?

Highlighting code

This feature allows you to highlight a specific part of the code. In the provided code sample, it highlights the word 'Foo' in the given rawLines string.

const { codeFrameColumns } = require('babel-code-frame');
const rawLines = `class Foo {\n  constructor()\n}`;
const location = { start: { line: 1, column: 16 }, end: { line: 1, column: 19 } };

const result = codeFrameColumns(rawLines, location, { highlightCode: true });
console.log(result);

Other packages similar to babel-code-frame

Readme

Source

babel-code-frame

Generate errors that contain a code frame that point to source locations.

Install

npm install --save-dev babel-code-frame

Usage

import { codeFrameColumns } from 'babel-code-frame';

const rawLines = `class Foo {
  constructor()
}`;
const location = { start: { line: 2, column: 16 } };

const result = codeFrameColumns(rawLines, location, { /* options */ });

console.log(result);
  1 | class Foo {
> 2 |   constructor()
    |                ^
  3 | }

If the column number is not known, you may omit it.

You can also pass an end hash in location.

import { codeFrameColumns } from 'babel-code-frame';

const rawLines = `class Foo {
  constructor() {
    console.log("hello");
  }
}`;
const location = { start: { line: 2, column: 17 }, end: { line: 4, column: 3 } };

const result = codeFrameColumns(rawLines, location, { /* options */ });

console.log(result);
  1 | class Foo {
> 2 |   constructor() {
    |                 ^
> 3 |     console.log("hello");
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
> 4 |   }
    | ^^^
  5 | };

Options

highlightCode

boolean, defaults to false.

Toggles syntax highlighting the code as JavaScript for terminals.

linesAbove

number, defaults to 2.

Adjust the number of lines to show above the error.

linesBelow

number, defaults to 3.

Adjust the number of lines to show below the error.

forceColor

boolean, defaults to false.

Enable this to forcibly syntax highlight the code as JavaScript (for non-terminals); overrides highlightCode.

Upgrading from prior versions

Prior to version 7, the only API exposed by this module was for a single line and optional column pointer. The old API will now log a deprecation warning.

The new API takes a location object, similar to what is available in an AST.

This is an example of the deprecated (but still available) API:

import codeFrame from 'babel-code-frame';

const rawLines = `class Foo {
  constructor()
}`;
const lineNumber = 2;
const colNumber = 16;

const result = codeFrame(rawLines, lineNumber, colNumber, { /* options */ });

console.log(result);

To get the same highlighting using the new API:

import { codeFrameColumns } from 'babel-code-frame';

const rawLines = `class Foo {
  constructor() {
    console.log("hello");
  }
}`;
const location = { start: { line: 2, column: 16 } };

const result = codeFrameColumns(rawLines, location, { /* options */ });

console.log(result);

FAQs

Last updated on 26 Sep 2017

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc