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 with npm:
$ npm i extract-comments --savevar 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";' }Extract comments from the given string.
Params
string{String}options{Object}: Passfirst: trueto 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}: Passfirst: trueto 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}: Passfirst: trueto 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}: Passfirst: trueto return after the first comment is found.returns{String}
- code-context: Parse a string of javascript to determine the context for functions, variables and comments based… more | homepage
- esprima-extract-comments: Extract code comments from string or from a glob of files using esprima. | homepage
- parse-comments: Parse code comments from JavaScript or any language that uses the same format. | homepage
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Install dev dependencies:
$ npm i -d && npm testAs of December 30, 2015:
Statements : 100% (133/133)
Branches : 100% (32/32)
Functions : 100% (19/19)
Lines : 100% (132/132)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.posandloc.end.posproperties have been renamed toloc.start.columnandloc.end.column.
v0.9.0
- Breaking change:
linesproperty was removed fromBlockcomments, since this can easily be done by splittingvalue
Jon Schlinkert
Copyright © 2014-2015 Jon Schlinkert Released under the MIT license.
This file was generated by verb on December 30, 2015.