Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
doc: linkify type[] syntax, support lowercase for primitives
PR-URL: #11167
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
  • Loading branch information
silverwind committed Mar 8, 2017
commit bfecc170645b413f26e65ccda80a48043b74665b
27 changes: 18 additions & 9 deletions tools/doc/type-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ const jsDocPrefix = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/';
const jsDocUrl = jsDocPrefix + 'Reference/Global_Objects/';
const jsPrimitiveUrl = jsDocPrefix + 'Data_structures';
const jsPrimitives = {
'Integer': 'Number', // this is for extending
'Number': 'Number',
'String': 'String',
'Boolean': 'Boolean',
'Null': 'Null',
'Symbol': 'Symbol'
'integer': 'Number', // this is for extending
'number': 'Number',
'string': 'String',
'boolean': 'Boolean',
'null': 'Null',
'symbol': 'Symbol'
};
const jsGlobalTypes = [
'Error', 'Object', 'Function', 'Array', 'TypedArray', 'Uint8Array',
Expand Down Expand Up @@ -67,7 +67,16 @@ module.exports = {
typeText = typeText.trim();
if (typeText) {
let typeUrl = null;
const primitive = jsPrimitives[typeText];

// To support type[], we store the full string and use
// the bracket-less version to lookup the type URL
const typeTextFull = typeText;
if (/\[]$/.test(typeText)) {
typeText = typeText.slice(0, -2);
}

const primitive = jsPrimitives[typeText.toLowerCase()];

if (primitive !== undefined) {
typeUrl = `${jsPrimitiveUrl}#${primitive}_type`;
} else if (jsGlobalTypes.indexOf(typeText) !== -1) {
Expand All @@ -78,9 +87,9 @@ module.exports = {

if (typeUrl) {
typeLinks.push('<a href="' + typeUrl + '" class="type">&lt;' +
typeText + '&gt;</a>');
typeTextFull + '&gt;</a>');
} else {
typeLinks.push('<span class="type">&lt;' + typeText + '&gt;</span>');
typeLinks.push('<span class="type">&lt;' + typeTextFull + '&gt;</span>');
}
}
});
Expand Down