mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
refactor: move borrows resolver to @jsdoc/doclet package
This commit is contained in:
parent
9d5dcf9f9d
commit
69d1a0ad3e
@ -15,11 +15,13 @@
|
||||
*/
|
||||
const { combine: combineDoclets, Doclet } = require('./lib/doclet');
|
||||
const { Package } = require('./lib/package');
|
||||
const { resolveBorrows } = require('./lib/borrow');
|
||||
const schema = require('./lib/schema');
|
||||
|
||||
module.exports = {
|
||||
combineDoclets,
|
||||
Doclet,
|
||||
Package,
|
||||
resolveBorrows,
|
||||
schema,
|
||||
};
|
||||
|
||||
@ -14,8 +14,7 @@
|
||||
limitations under the License.
|
||||
*/
|
||||
/**
|
||||
* A collection of functions relating to resolving @borrows tags in JSDoc symbols.
|
||||
* @module jsdoc/borrow
|
||||
* Functions that resolve `@borrows` tags in JSDoc comments.
|
||||
*/
|
||||
const _ = require('lodash');
|
||||
const { SCOPE } = require('@jsdoc/core').name;
|
||||
@ -51,10 +50,10 @@ function cloneBorrowedDoclets({ borrowed, longname }, doclets) {
|
||||
}
|
||||
|
||||
/**
|
||||
Take a copy of the docs for borrowed symbols and attach them to the
|
||||
docs for the borrowing symbol. This process changes the symbols involved,
|
||||
moving docs from the "borrowed" array and into the general docs, then
|
||||
deleting the "borrowed" array.
|
||||
Take a copy of the docs for borrowed symbols and attach them to the
|
||||
docs for the borrowing symbol. This process changes the symbols involved,
|
||||
moving docs from the "borrowed" array and into the general docs, then
|
||||
deleting the "borrowed" array.
|
||||
*/
|
||||
exports.resolveBorrows = (doclets) => {
|
||||
for (let doclet of doclets.index.borrowed) {
|
||||
2
packages/jsdoc-doclet/package-lock.json
generated
2
packages/jsdoc-doclet/package-lock.json
generated
@ -304,9 +304,11 @@
|
||||
"version": "0.1.5",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@jsdoc/ast": "^0.1.0",
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"catharsis": "^0.9.0",
|
||||
"common-path-prefix": "^3.0.0",
|
||||
"lodash": "^4.17.21"
|
||||
},
|
||||
"engines": {
|
||||
|
||||
@ -13,6 +13,6 @@
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
xdescribe('jsdoc/borrow', () => {
|
||||
xdescribe('@jsdoc/doclet/lib/borrow', () => {
|
||||
// TODO
|
||||
});
|
||||
@ -44,6 +44,14 @@ describe('@jsdoc/doclet', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('resolveBorrows', () => {
|
||||
it('is lib/borrow.resolveBorrows', () => {
|
||||
const { resolveBorrows } = require('../../lib/borrow');
|
||||
|
||||
expect(doclet.resolveBorrows).toBe(resolveBorrows);
|
||||
});
|
||||
});
|
||||
|
||||
describe('schema', () => {
|
||||
it('is lib/schema', () => {
|
||||
const schema = require('../../lib/schema');
|
||||
|
||||
@ -21,13 +21,12 @@ const Engine = require('@jsdoc/cli');
|
||||
const { EventBus, log } = require('@jsdoc/util');
|
||||
const { Filter } = require('jsdoc/src/filter');
|
||||
const fs = require('fs');
|
||||
const { Package } = require('@jsdoc/doclet');
|
||||
const { Package, resolveBorrows } = require('@jsdoc/doclet');
|
||||
const path = require('path');
|
||||
const { Scanner } = require('jsdoc/src/scanner');
|
||||
const stripBom = require('strip-bom');
|
||||
const stripJsonComments = require('strip-json-comments');
|
||||
const { taffy } = require('@jsdoc/salty');
|
||||
const Promise = require('bluebird');
|
||||
|
||||
/**
|
||||
* Helper methods for running JSDoc on the command line.
|
||||
@ -340,7 +339,6 @@ module.exports = (() => {
|
||||
cli.parseFiles = () => {
|
||||
// Must be imported after the config is loaded.
|
||||
const augment = require('jsdoc/augment');
|
||||
const borrow = require('jsdoc/borrow');
|
||||
|
||||
let docs;
|
||||
const env = dependencies.get('env');
|
||||
@ -357,7 +355,7 @@ module.exports = (() => {
|
||||
log.debug('Adding inherited symbols, mixins, and interface implementations...');
|
||||
augment.augmentAll(docs);
|
||||
log.debug('Adding borrowed doclets...');
|
||||
borrow.resolveBorrows(docs);
|
||||
resolveBorrows(docs);
|
||||
log.debug('Post-processing complete.');
|
||||
|
||||
props.parser.fireProcessingComplete(docs);
|
||||
|
||||
182
packages/jsdoc/package-lock.json
generated
182
packages/jsdoc/package-lock.json
generated
@ -10,7 +10,13 @@
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.20.5",
|
||||
"bluebird": "^3.7.2",
|
||||
"@jsdoc/ast": "^0.1.0",
|
||||
"@jsdoc/cli": "^0.2.10",
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/doclet": "^0.1.1",
|
||||
"@jsdoc/salty": "^0.2.3",
|
||||
"@jsdoc/tag": "^0.1.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"catharsis": "^0.9.0",
|
||||
"code-prettify": "^0.1.0",
|
||||
"color-themes-for-google-code-prettify": "^2.0.4",
|
||||
@ -72,10 +78,40 @@
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jsdoc/ast": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/ast/-/ast-0.1.0.tgz",
|
||||
"integrity": "sha512-p0ZNl+D0BjR7NiTlcTYSYjSykzSofWm7AHsEHjhZBpMNwNZLqra5NJn3jKXk1Z9aYbnnTsH4TRX+BqFYmjvSYA==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.20.5",
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"lodash": "^4.17.21"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=v18.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jsdoc/cli": {
|
||||
"version": "0.2.10",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/cli/-/cli-0.2.10.tgz",
|
||||
"integrity": "sha512-msC71lexr72F4AdTfZfO3hW2s2KYckIhsw40s2j+q04cAEWOewWpDJduOWj7/G9kptW7O/Sl/DC4RipRiM71+w==",
|
||||
"dependencies": {
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"lodash": "^4.17.21",
|
||||
"ow": "^0.28.2",
|
||||
"strip-bom": "^4.0.0",
|
||||
"yargs-parser": "^21.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=v18.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jsdoc/core": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/core/-/core-0.4.4.tgz",
|
||||
"integrity": "sha512-Ck9GQrjcuAy4RaJSzxnJOfY8fQBKHz+r3S1QtcUywG2+CwEMuiPHn+cTbfunSiwb9Wvs5RkmV0cTCMXI789fRQ==",
|
||||
"version": "0.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/core/-/core-0.4.5.tgz",
|
||||
"integrity": "sha512-KjdlFg0PCbbpI5RBjWV2Qv1mTswjrNoysAgHXSbG3f49qo/wfB3WMX5iTr0ljMClTBH6xQsc2ODp4Tmokg1DUA==",
|
||||
"dependencies": {
|
||||
"bottlejs": "^2.0.1",
|
||||
"cosmiconfig": "^7.1.0",
|
||||
@ -88,14 +124,38 @@
|
||||
"node": ">=v18.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jsdoc/parse": {
|
||||
"version": "0.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/parse/-/parse-0.1.6.tgz",
|
||||
"integrity": "sha512-ydFd1JeWiad26tXIFWR46jcv6RZ7ckhH9AVvJr37F3O7dGnDSCddEWg2pULKyaa1HH8NjZIHTcLsWOD6qwkqew==",
|
||||
"node_modules/@jsdoc/doclet": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/doclet/-/doclet-0.1.1.tgz",
|
||||
"integrity": "sha512-/EZIMqlmSJpT0bXukgSN9WmPMLbmfOo4YACHRf6kyLQIx0KNzqcP9j0m314HW9reyTIFztEcNh1jWllKd14Wpw==",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.20.5",
|
||||
"@jsdoc/core": "^0.4.4",
|
||||
"@jsdoc/util": "^0.2.7",
|
||||
"@jsdoc/ast": "^0.1.0",
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/tag": "^0.1.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"lodash": "^4.17.21",
|
||||
"strip-bom": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jsdoc/salty": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.3.tgz",
|
||||
"integrity": "sha512-bbtCxCkxcnWhi50I+4Lj6mdz9w3pOXOgEQrID8TCZ/DF51fW7M9GCQW2y45SpBDdHd1Eirm1X/Cf6CkAAe8HPg==",
|
||||
"dependencies": {
|
||||
"lodash": "^4.17.21"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=v12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jsdoc/tag": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/tag/-/tag-0.1.5.tgz",
|
||||
"integrity": "sha512-epvBtr+yYMnMfhcfvU8iyNiDrYxRR1+SGUnY/sY1JIGJfRNHi3PLWG72Le2pol/c86KwJZXYU7R6vM5deBWPsQ==",
|
||||
"dependencies": {
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"catharsis": "^0.9.0",
|
||||
"lodash": "^4.17.21"
|
||||
},
|
||||
"engines": {
|
||||
@ -103,9 +163,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@jsdoc/util": {
|
||||
"version": "0.2.7",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/util/-/util-0.2.7.tgz",
|
||||
"integrity": "sha512-PHbdRflULw07QHals3iRqex/TSSQ+Uk5u3R5P3g3FJnpmXdp3NbPqYY+IaLDX2L5btvL87TfY8u0Hq7X/RpCtA==",
|
||||
"version": "0.2.8",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/util/-/util-0.2.8.tgz",
|
||||
"integrity": "sha512-Uqerf+cakeAbFC5JRA087v9ul+7Tu4xzTaSO9vW6i7b0+b8z6qT1rVmX/xrAfco9uyiQDSm68xm9ovR3C0HviA==",
|
||||
"dependencies": {
|
||||
"klaw-sync": "^6.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
@ -142,11 +202,6 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/bluebird": {
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
||||
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
|
||||
},
|
||||
"node_modules/bottlejs": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/bottlejs/-/bottlejs-2.0.1.tgz",
|
||||
@ -465,6 +520,14 @@
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/yargs-parser": {
|
||||
"version": "21.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
|
||||
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
@ -496,10 +559,34 @@
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz",
|
||||
"integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA=="
|
||||
},
|
||||
"@jsdoc/ast": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/ast/-/ast-0.1.0.tgz",
|
||||
"integrity": "sha512-p0ZNl+D0BjR7NiTlcTYSYjSykzSofWm7AHsEHjhZBpMNwNZLqra5NJn3jKXk1Z9aYbnnTsH4TRX+BqFYmjvSYA==",
|
||||
"requires": {
|
||||
"@babel/parser": "^7.20.5",
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"lodash": "^4.17.21"
|
||||
}
|
||||
},
|
||||
"@jsdoc/cli": {
|
||||
"version": "0.2.10",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/cli/-/cli-0.2.10.tgz",
|
||||
"integrity": "sha512-msC71lexr72F4AdTfZfO3hW2s2KYckIhsw40s2j+q04cAEWOewWpDJduOWj7/G9kptW7O/Sl/DC4RipRiM71+w==",
|
||||
"requires": {
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"lodash": "^4.17.21",
|
||||
"ow": "^0.28.2",
|
||||
"strip-bom": "^4.0.0",
|
||||
"yargs-parser": "^21.1.1"
|
||||
}
|
||||
},
|
||||
"@jsdoc/core": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/core/-/core-0.4.4.tgz",
|
||||
"integrity": "sha512-Ck9GQrjcuAy4RaJSzxnJOfY8fQBKHz+r3S1QtcUywG2+CwEMuiPHn+cTbfunSiwb9Wvs5RkmV0cTCMXI789fRQ==",
|
||||
"version": "0.4.5",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/core/-/core-0.4.5.tgz",
|
||||
"integrity": "sha512-KjdlFg0PCbbpI5RBjWV2Qv1mTswjrNoysAgHXSbG3f49qo/wfB3WMX5iTr0ljMClTBH6xQsc2ODp4Tmokg1DUA==",
|
||||
"requires": {
|
||||
"bottlejs": "^2.0.1",
|
||||
"cosmiconfig": "^7.1.0",
|
||||
@ -509,21 +596,42 @@
|
||||
"strip-json-comments": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"@jsdoc/parse": {
|
||||
"version": "0.1.6",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/parse/-/parse-0.1.6.tgz",
|
||||
"integrity": "sha512-ydFd1JeWiad26tXIFWR46jcv6RZ7ckhH9AVvJr37F3O7dGnDSCddEWg2pULKyaa1HH8NjZIHTcLsWOD6qwkqew==",
|
||||
"@jsdoc/doclet": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/doclet/-/doclet-0.1.1.tgz",
|
||||
"integrity": "sha512-/EZIMqlmSJpT0bXukgSN9WmPMLbmfOo4YACHRf6kyLQIx0KNzqcP9j0m314HW9reyTIFztEcNh1jWllKd14Wpw==",
|
||||
"requires": {
|
||||
"@babel/parser": "^7.20.5",
|
||||
"@jsdoc/core": "^0.4.4",
|
||||
"@jsdoc/util": "^0.2.7",
|
||||
"@jsdoc/ast": "^0.1.0",
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/tag": "^0.1.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"lodash": "^4.17.21",
|
||||
"strip-bom": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"@jsdoc/salty": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/salty/-/salty-0.2.3.tgz",
|
||||
"integrity": "sha512-bbtCxCkxcnWhi50I+4Lj6mdz9w3pOXOgEQrID8TCZ/DF51fW7M9GCQW2y45SpBDdHd1Eirm1X/Cf6CkAAe8HPg==",
|
||||
"requires": {
|
||||
"lodash": "^4.17.21"
|
||||
}
|
||||
},
|
||||
"@jsdoc/tag": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/tag/-/tag-0.1.5.tgz",
|
||||
"integrity": "sha512-epvBtr+yYMnMfhcfvU8iyNiDrYxRR1+SGUnY/sY1JIGJfRNHi3PLWG72Le2pol/c86KwJZXYU7R6vM5deBWPsQ==",
|
||||
"requires": {
|
||||
"@jsdoc/core": "^0.4.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"catharsis": "^0.9.0",
|
||||
"lodash": "^4.17.21"
|
||||
}
|
||||
},
|
||||
"@jsdoc/util": {
|
||||
"version": "0.2.7",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/util/-/util-0.2.7.tgz",
|
||||
"integrity": "sha512-PHbdRflULw07QHals3iRqex/TSSQ+Uk5u3R5P3g3FJnpmXdp3NbPqYY+IaLDX2L5btvL87TfY8u0Hq7X/RpCtA==",
|
||||
"version": "0.2.8",
|
||||
"resolved": "https://registry.npmjs.org/@jsdoc/util/-/util-0.2.8.tgz",
|
||||
"integrity": "sha512-Uqerf+cakeAbFC5JRA087v9ul+7Tu4xzTaSO9vW6i7b0+b8z6qT1rVmX/xrAfco9uyiQDSm68xm9ovR3C0HviA==",
|
||||
"requires": {
|
||||
"klaw-sync": "^6.0.0",
|
||||
"lodash": "^4.17.21",
|
||||
@ -548,11 +656,6 @@
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"bluebird": {
|
||||
"version": "3.7.2",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
|
||||
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
|
||||
},
|
||||
"bottlejs": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/bottlejs/-/bottlejs-2.0.1.tgz",
|
||||
@ -792,6 +895,11 @@
|
||||
"version": "1.10.2",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
|
||||
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "21.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
|
||||
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,7 +22,6 @@
|
||||
"@jsdoc/salty": "^0.2.3",
|
||||
"@jsdoc/tag": "^0.1.5",
|
||||
"@jsdoc/util": "^0.2.8",
|
||||
"bluebird": "^3.7.2",
|
||||
"catharsis": "^0.9.0",
|
||||
"code-prettify": "^0.1.0",
|
||||
"color-themes-for-google-code-prettify": "^2.0.4",
|
||||
|
||||
@ -28,10 +28,10 @@ describe('@borrows tag', () => {
|
||||
});
|
||||
|
||||
it('When a symbol has a @borrows tag, the borrowed symbol is added to the symbol.', () => {
|
||||
const borrow = require('jsdoc/borrow');
|
||||
const { resolveBorrows } = require('@jsdoc/doclet');
|
||||
const docSet = jsdoc.getDocSetFromFile('test/fixtures/borrowstag2.js');
|
||||
|
||||
borrow.resolveBorrows(docSet.doclets);
|
||||
resolveBorrows(docSet.doclets);
|
||||
|
||||
const strRtrim = docSet
|
||||
.getByLongname('str.rtrim')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user