Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
var commentParser = require('comment-parser');
var TypeParser = require('jsdoctypeparser').Parser;
var TypeBuilder = require('jsdoctypeparser').Builder;
var getNodeColumn = require('./utils').getNodeColumn;
var getLineInfo = require('./utils').getLineInfo;
// wtf but it needed to stop writing warnings to stdout
// and revert exceptions functionality
TypeBuilder.ENABLE_EXCEPTIONS = true;
// jscs:disable requireCamelCaseOrUpperCaseIdentifiers
var PARSERS = {
tag: commentParser.PARSERS.parse_tag,
type: commentParser.PARSERS.parse_type,
description: commentParser.PARSERS.parse_description,
};
// jscs:enable
var RE_SPACE = /\s/;
module.exports = {
/**
* @param {string} commentNode
* @returns {DocComment}
*/
createDocCommentByCommentNode: function(commentNode) {
var column = getNodeColumn(commentNode);
var lines = [(new Array(column + 1)).join(' '), '/*', commentNode.value, '*/']
.join('').split('\n').map(function(v) {
return v.substr(column);
var assert = require('assert');
var commentParser = require('comment-parser');
var TypeParser = require('jsdoctypeparser').Parser;
var TypeBuilder = require('jsdoctypeparser').Builder;
var getNodeColumn = require('./utils').getNodeColumn;
var getLineInfo = require('./utils').getLineInfo;
// wtf but it needed to stop writing warnings to stdout
// and revert exceptions functionality
TypeBuilder.ENABLE_EXCEPTIONS = true;
// jscs:disable requireCamelCaseOrUpperCaseIdentifiers
var PARSERS = {
tag: commentParser.PARSERS.parse_tag,
type: commentParser.PARSERS.parse_type,
description: commentParser.PARSERS.parse_description,
};
// jscs:enable
var RE_SPACE = /\s/;
module.exports = {
/**
* @param {string} commentNode
* @returns {DocComment}
*/
createDocCommentByCommentNode: function(commentNode) {
var column = getNodeColumn(commentNode);
var lines = [(new Array(column + 1)).join(' '), '/*', commentNode.value, '*/']
.join('').split('\n').map(function(v) {
const parseComment = (commentNode, indent, trim = true) => {
// Preserve JSDoc block start/end indentation.
return commentParser(`${indent}/*${commentNode.value}${indent}*/`, {
// @see https://github.com/yavorskiy/comment-parser/issues/21
parsers: [
commentParser.PARSERS.parse_tag,
skipSeeLink(commentParser.PARSERS.parse_type),
skipSeeLink(
(str, data) => {
if ([
'example', 'return', 'returns', 'throws', 'exception',
'access', 'version', 'since', 'license', 'author',
].includes(data.tag)) {
return null;
}
return commentParser.PARSERS.parse_name(str, data);
},
),
// parse_description
(str, data) => {
const parseComment = (commentNode, indent, trim = true) => {
// Preserve JSDoc block start/end indentation.
return commentParser(`${indent}/*${commentNode.value}${indent}*/`, {
// @see https://github.com/yavorskiy/comment-parser/issues/21
parsers: [
commentParser.PARSERS.parse_tag,
skipSeeLink(commentParser.PARSERS.parse_type),
skipSeeLink(
(str, data) => {
if ([
'example', 'return', 'returns', 'throws', 'exception',
'access', 'version', 'since', 'license', 'author',
].includes(data.tag)) {
return null;
}
return commentParser.PARSERS.parse_name(str, data);
},
),
private parsedComments(key: string) {
if (!this.parsedCommentsMemo) {
let comments = parseComments(this.originalSource)
let description = '',
name = ''
if (comments.length) {
let { description: body } = comments[0]
let [line1, ...lines] = body.split('\n')
name = line1
description = lines
.filter((l: string) => l.length)
.join('\n')
.trim()
}
this.parsedCommentsMemo = { name, description }
}
return this.parsedCommentsMemo[key]
}
private parseCommentBlock(string: string): any {
return parseCommentBlock(`/*${string}*/`)[0];
}
}
private parseCommentBlock(string: string): any {
return parseCommentBlock(`/*${string}*/`)[0];
}
}
private parseCommentBlock(string: string): any {
return parseCommentBlock(`/*${string}*/`)[0];
}
}
function sanitizeComment(comment: string): string {
const parsed = commentParser('/*' + comment + '*/');
return parsed && parsed.length > 0 ? parsed[0].source : null;
}
var util = require( 'util' );
var log = require( 'npmlog' );
var commentParser = require( 'comment-parser' );
var parserFunctions = commentParser.PARSERS;
var beautify_html = require( 'js-beautify' ).html;
/**
*
* Takes a section object with title key and files string or array and returns the parsed comments
*
*/
function Parser() {}
Parser.prototype = {
customParsers: {
parsers: [
parserFunctions.parse_tag,