mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
cleanup
This commit is contained in:
parent
d1d05687f1
commit
1cb337c90a
@ -69,7 +69,23 @@ function addHiddenProperty(obj, propName, propValue) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function processTagText(tag, tagDef) {
|
function parseType(tag, tagDef, meta) {
|
||||||
|
try {
|
||||||
|
return jsdoc.tag.type.parse(tag.text, tagDef.canHaveName, tagDef.canHaveType);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
jsdoc.util.logger.error(
|
||||||
|
'Unable to parse a tag\'s type expression%s with tag title "%s" and text "%s": %s',
|
||||||
|
meta.filename ? ( ' for source file ' + path.join(meta.path, meta.filename) ) : '',
|
||||||
|
tag.originalTitle,
|
||||||
|
tag.text,
|
||||||
|
e.message
|
||||||
|
);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function processTagText(tag, tagDef, meta) {
|
||||||
var tagType;
|
var tagType;
|
||||||
|
|
||||||
if (tagDef.onTagText) {
|
if (tagDef.onTagText) {
|
||||||
@ -80,7 +96,7 @@ function processTagText(tag, tagDef) {
|
|||||||
/** The value property represents the result of parsing the tag text. */
|
/** The value property represents the result of parsing the tag text. */
|
||||||
tag.value = {};
|
tag.value = {};
|
||||||
|
|
||||||
tagType = jsdoc.tag.type.parse(tag.text, tagDef.canHaveName, tagDef.canHaveType);
|
tagType = parseType(tag, tagDef, meta);
|
||||||
|
|
||||||
// It is possible for a tag to *not* have a type but still have
|
// It is possible for a tag to *not* have a type but still have
|
||||||
// optional or defaultvalue, e.g. '@param [foo]'.
|
// optional or defaultvalue, e.g. '@param [foo]'.
|
||||||
@ -173,19 +189,7 @@ var Tag = exports.Tag = function(tagTitle, tagBody, meta) {
|
|||||||
this.text = trim(tagBody, trimOpts, meta);
|
this.text = trim(tagBody, trimOpts, meta);
|
||||||
|
|
||||||
if (this.text) {
|
if (this.text) {
|
||||||
try {
|
processTagText(this, tagDef, meta);
|
||||||
processTagText(this, tagDef);
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
// probably a type-parsing error
|
|
||||||
jsdoc.util.logger.error(
|
|
||||||
'Unable to create a Tag object%s with title "%s" and body "%s": %s',
|
|
||||||
meta.filename ? ( ' for source file ' + path.join(meta.path, meta.filename) ) : '',
|
|
||||||
tagTitle,
|
|
||||||
tagBody,
|
|
||||||
e.message
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
jsdoc.tag.validator.validate(this, tagDef, meta);
|
jsdoc.tag.validator.validate(this, tagDef, meta);
|
||||||
|
|||||||
@ -221,7 +221,7 @@ describe('jsdoc/tag', function() {
|
|||||||
spyOn(logger, 'error');
|
spyOn(logger, 'error');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('logs an error for bad tags', function() {
|
it('logs an error for tags with bad type expressions', function() {
|
||||||
var tag = new jsdoc.tag.Tag('param', '{!*!*!*!} foo');
|
var tag = new jsdoc.tag.Tag('param', '{!*!*!*!} foo');
|
||||||
|
|
||||||
expect(logger.error).toHaveBeenCalled();
|
expect(logger.error).toHaveBeenCalled();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user