38 lines
1.6 KiB
Plaintext
38 lines
1.6 KiB
Plaintext
<%
|
|
const { data, utils } = it;
|
|
const { formatDescription, require, _ } = utils;
|
|
|
|
const stringify = (value) => _.isObject(value) ? JSON.stringify(value) : _.isString(value) ? `"${value}"` : value
|
|
|
|
const jsDocLines = _.compact([
|
|
data.title,
|
|
data.description && formatDescription(data.description),
|
|
!_.isUndefined(data.deprecated) && data.deprecated && '@deprecated',
|
|
!_.isUndefined(data.format) && `@format ${data.format}`,
|
|
!_.isUndefined(data.minimum) && `@min ${data.minimum}`,
|
|
!_.isUndefined(data.multipleOf) && `@multipleOf ${data.multipleOf}`,
|
|
!_.isUndefined(data.exclusiveMinimum) && `@exclusiveMin ${data.exclusiveMinimum}`,
|
|
!_.isUndefined(data.maximum) && `@max ${data.maximum}`,
|
|
!_.isUndefined(data.minLength) && `@minLength ${data.minLength}`,
|
|
!_.isUndefined(data.maxLength) && `@maxLength ${data.maxLength}`,
|
|
!_.isUndefined(data.exclusiveMaximum) && `@exclusiveMax ${data.exclusiveMaximum}`,
|
|
!_.isUndefined(data.maxItems) && `@maxItems ${data.maxItems}`,
|
|
!_.isUndefined(data.minItems) && `@minItems ${data.minItems}`,
|
|
!_.isUndefined(data.uniqueItems) && `@uniqueItems ${data.uniqueItems}`,
|
|
!_.isUndefined(data.default) && `@default ${stringify(data.default)}`,
|
|
!_.isUndefined(data.pattern) && `@pattern ${data.pattern}`,
|
|
!_.isUndefined(data.example) && `@example ${stringify(data.example)}`
|
|
]).join('\n').split('\n');
|
|
%>
|
|
<% if (jsDocLines.every(_.isEmpty)) { %>
|
|
<% } else if (jsDocLines.length === 1) { %>
|
|
/** <%~ jsDocLines[0] %> */
|
|
<% } else if (jsDocLines.length) { %>
|
|
/**
|
|
<% for (jsDocLine of jsDocLines) { %>
|
|
* <%~ jsDocLine %>
|
|
|
|
<% } %>
|
|
*/
|
|
<% } %>
|