Skip to content

andreashuetter/extract-comments

 
 

Repository files navigation

extract-comments NPM version

Uses esprima to extract line and block comments from a string of JavaScript. Also optionally parses code context (the next line of code after a comment).

Install

Install with npm:

$ npm i extract-comments --save

Usage

var extract = require('extract-comments');

// pass a string of javascript, CSS, LESS etc
extract(string);

Example

var str = '/**\n * this is\n *\n * a comment\n*/\n\n\nvar foo = "bar";\n';
var comments = extract(str);
console.log(comments);

[{
  type: 'block',
  raw: '/**\n * this is\n *\n * a comment\n*/',
  value: 'this is\na comment',
  lines: [ 'this is', 'a comment' ],
  loc: { start: { line: 1, pos: 0 }, end: { line: 5, pos: 33 } },
  code:
   { line: 7,
     loc: { start: { line: 7, pos: 36 }, end: { line: 7, pos: 52 } },
     value: 'var foo = "bar";' }

API

Extract comments from the given string.

Params

  • string {String}
  • options {Object}: Pass first: true to return after the first comment is found.
  • returns {String}

Example

extract(str, options);

Extract block comments from the given string.

Params

  • string {String}
  • options {Object}: Pass first: true to return after the first comment is found.
  • returns {String}

Example

extract.block(str, options);

Extract line comments from the given string.

Params

  • string {String}
  • options {Object}: Pass first: true to return after the first comment is found.
  • returns {String}

Example

extract.line(str, options);

Extract the first comment from the given string.

Params

  • string {String}
  • options {Object}: Pass first: true to return after the first comment is found.
  • returns {String}

Related

  • code-context: Parse a string of javascript to determine the context for functions, variables and comments based… more | homepage

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Tests

Run tests

Install dev dependencies:

$ npm i -d && npm test

Coverage

As of December 30, 2015:

Statements   : 100% (133/133)
Branches     : 100% (32/32)
Functions    : 100% (19/19)
Lines        : 100% (132/132)

Release history

v0.10.0

  • Parsing is now handled by esprima
  • Breaking change: since parsing is now done by esprima, on both the line and block comment objects, the loc.start.pos and loc.end.pos properties have been renamed to loc.start.column and loc.end.column.

v0.9.0

  • Breaking change: lines property was removed from Block comments, since this can easily be done by splitting value

Author

Jon Schlinkert

License

Copyright © 2014-2015 Jon Schlinkert Released under the MIT license.


This file was generated by verb on December 30, 2015.

About

Extract JavaScript code comments from a string or glob of files.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%