src/Typedef/typedef.js
/**
* esdoc2 config object.
* @typedef {Object} ESDocConfig
* @property {!string} source - directory path of javascript source code.
* @property {!string} destination - directory path of output.
* @property {string} [title]
* @property {string[]} [includes=["\\.(js|es6)$"]]
* @property {string[]} [excludes=["\\.config\\.(js|es6)$"]]
* @property {string[]} [access=["public", "protected"]]
* @property {boolean} [autoPrivate=true]
* @property {boolean} [builtinExternal=true]
* @property {boolean} [unexportIdentifier=false]
* @property {boolean} [undocumentIdentifier=true]
* @property {boolean} [coverage=true]
* @property {boolean} [debug=false]
* @property {string} [index="./README.md"]
* @property {string} [package="./package.json"]
* @property {string[]} [styles=[]]
* @property {string[]} [scripts=[]]
* @property {{type: string, source: string, includes: string[], excludes: string[]}} test
* @property {Object} [manual]
* @property {boolean} manual.globalIndex
* @property {string} manual.asset
* @property {string} manual.index
* @property {string[]} manual.overview
* @property {string[]} manual.design
* @property {string[]} manual.installation
* @property {string[]} manual.usage
* @property {string[]} manual.tutorial
* @property {string[]} manual.configuration
* @property {string[]} manual.example
* @property {string[]} manual.advanced
* @property {string[]} manual.faq
* @property {string[]} manual.changelog
* @property {Object} [experimentalProposal]
* @property {boolean} experimentalProposal.classProperties
* @property {boolean} experimentalProposal.objectRestSpread
* @property {boolean} experimentalProposal.doExpressions
* @property {boolean} experimentalProposal.functionBind
* @property {boolean} experimentalProposal.functionSent
* @property {boolean} experimentalProposal.asyncGenerators
* @property {boolean} experimentalProposal.decorators
* @property {boolean} experimentalProposal.exportExtensions
* @property {boolean} experimentalProposal.dynamicImport
* @see https://esdoc2.org/config.html
*/
/**
* doc comment tag.
* @typedef {Object} Tag
* @property {string} tagName
* @property {*} tagValue
*/
/**
* Parsed doc comment.
* @typedef {Object} DocObject
*/
/**
* @typedef {Object} AST
* @property {Object} body
* @property {Object[]} leadingComments
* @see https://github.com/estree/estree
*/
/**
* @typedef {Object} ASTNode
* @see https://github.com/estree/estree
* @property {string} type
* @property {Object} [superClass]
* @property {Object[]} [leadingComments]
* @property {Object[]} [trailingComments]
* @property {Object[]} [body]
* @property {ASTNode} [parent] - this is customize by esdoc2
*/
/**
* @typedef {Object} NPMPackageObject
* @see https://docs.npmjs.com/files/package.json
*/
/**
* @typedef {Object} Taffy
* @see http://www.taffydb.com/
*/
/**
* @typedef {Object} IceCap
* @see https://github.com/h13i32maru/ice-cap
*/
/**
* @typedef {Object} CoverageObject
* @property {string} coverage - ratio.
* @property {number} expectCount - all identifier count.
* @property {number} actualCount - documented identifier count.
* @property {Object<string, Object>} files - file name and coverage.
*/
/**
* ESDocCLI uses argv
* @typedef {Object} ESDocCLIArgv
* @property {boolean} [h] - for help
* @property {boolean} [help] - for help
* @property {boolean} [v] - for version
* @property {boolean} [version] - for version
* @property {string} [c] - for config file path
* @property {string[]} [_] - for source directory path
*/
/**
* @typedef {Object} DocTypedef
*/
/**
* @typedef {Object} PackageTypedef
* @property {Object} repository
* @property {string} repository.url
*/
/**
* @typedef {Object} ParsedParam
* @property {boolean} [nullable]
* @property {string[]} types
* @property {boolean} [spread]
* @property {boolean} [optional]
* @property {string} [defaultValue]
* @property {*} [defaultRaw]
* @property {string} [name]
* @property {string} [description]
*/
/**
* @todo remove this typedef.
* @typedef {Object} IceCapInstanceTypedef
* @property {function} loop
* @property {function} attr
* @property {function} text
* @property {function} load
* @property {function} into
* @property {function} drop
* @property {string} html
*/
/**
* @todo remove this typedef.
* @typedef {Object} TaffyCursor
* @property {function} each
*/
/**
* @typedef {Object} ManualConfigItem
* @property {string} label
* @property {string[]} paths
* @property {string} [fileName]
* @property {string} [reference]
*/