From 0718b29eb13fedc69a357a7e408407807d3014f2 Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Thu, 10 Dec 2015 17:59:00 -0500 Subject: [PATCH] Include default values in output --- index.js | 3 ++- test/format_type.js | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index e937b16..e048740 100644 --- a/index.js +++ b/index.js @@ -120,7 +120,8 @@ function formatType(node, getNamedLink) { // lets the expression be omitted. return decorate(formatType(node.expression, getNamedLink), '...', true); case Syntax.OptionalType: - return decorate(formatType(node.expression, getNamedLink), '='); + return decorate(formatType(node.expression, getNamedLink), '=').concat( + node.default ? t('(default ' + node.default + ')') : []); case Syntax.NonNullableType: return decorate(formatType(node.expression, getNamedLink), '!', node.prefix); case Syntax.NullableType: diff --git a/test/format_type.js b/test/format_type.js index a70713e..3804030 100644 --- a/test/format_type.js +++ b/test/format_type.js @@ -3,7 +3,7 @@ var formatType = require('../index').formatType, mdast = require('mdast'), - parseParamType = require('doctrine/lib/typed').parseParamType, + parse = require('doctrine').parse, test = require('tap').test; test('formatType', function (t) { @@ -34,10 +34,17 @@ test('formatType', function (t) { ].forEach(function (example) { t.deepEqual(mdast().stringify({ type: 'paragraph', - children: formatType(parseParamType(example[0])) + children: formatType( + parse('@param {' + example[0] + '} a', { sloppy: true }).tags[0].type) }), example[1], example[0]); }); + t.deepEqual(mdast().stringify({ + type: 'paragraph', + children: formatType( + parse('@param {number} [a=1]', { sloppy: true }).tags[0].type) + }), '[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)=', 'default'); + t.deepEqual(formatType(), [], 'empty case'); t.throws(function () {