ESDoc - Good Documentation for JavaScript

Overview

Build Status Coverage Status Document

ESDoc

ESDoc is a documentation generator for JavaScript.
Please try it out!

Features

  • Generates good documentation.
  • Measures documentation coverage.
  • Integrate test codes into documentation.
  • Integrate manual into documentation.
  • Parse ECMAScript proposals.
  • ESDoc Hosting Service

Users

And more.

Quick Start

# Move to a your project directory.
cd your-project/

# Install ESDoc and standard plugin.
npm install --save-dev esdoc esdoc-standard-plugin

# Create a configuration file.
echo '{
  "source": "./src",
  "destination": "./docs",
  "plugins": [{"name": "esdoc-standard-plugin"}]
}' > .esdoc.json

# Run ESDoc.
./node_modules/.bin/esdoc

# View a documentation
open ./docs/index.html

Document

please visit esdoc.org to see more documentation.

License

MIT

Author

Ryo Maruyama@h13i32maru

Comments
  • Author will not continue maintenance until next year, refuses to add contributor

    Author will not continue maintenance until next year, refuses to add contributor

    See his tweet: https://twitter.com/h13i32maru/status/928374936061673472

    image

    My question is, do we have any other maintainers that can review PR and triage issues? This is a great project, but my fear is that its really not sustainable if it only has one maintainer. I'm really open to maintain the project myself to be honest, but I figure there are probably more qualified people that have contributed in the past.

    What does the community think about this? Do we want to have more maintainers? Is it ready for such a thing or am I being neurotic about this.

    opened by MattMcFarland 21
  • Documentation for module (Feature Request)

    Documentation for module (Feature Request)

    It will be great to add support of documentation for module. Ill explain the case: i have module with logicaly grouped helpers. I can use it with 2 ways. With first i need to create class with static helpers, and export it as default. Then i need to use it in this way:

    import helpers from 'helpers';
    helpers.method(); 
    helpers.const;
    

    With second way ill define all helpers as simple functions and export them all from my module.

    let helper = function(){};
    export {helper};
    

    Then ill use it:

    import * as helpers from 'helpers';
    helpers.method(); 
    helpers.const;
    

    But with this way i can import only helpers i need, by their names:

    import {method, const} from 'helpers';
    method(); 
    const;
    

    and using them will be much easier. With static class approach i need to always use it as namespace for my methods. So if i need to export some helpers from my module i will always choose second way of exporting. But the problem of this is i can not documentate module. The only solution i found it is defining static class and then export methods from them as one namespace. May be it will be better to provide functionality to documentate module?

    Type: Feature Result: Reject Scope: Publisher 
    opened by PinkaminaDianePie 20
  • Cannot read property 'length' of undefined

    Cannot read property 'length' of undefined

    Short summary of your issue

    When i run esdoc, esdoc reports an error.

    Input data for reproducing

    Configuration

    {
      "source": "./app",
      "destination": "./doc",
      "experimentalProposal": {
        "objectRestSpread": true
      }
    }
    

    Codes

    repo

    Output data

    Log

    yarn docs v0.21.3                                                                                                                                                                                 
    $ esdoc                                                                                                                                                                                           
    parse: /home/dimensi/projects/camellia/app/api/initPage.js                                                                                                                                        
    parse: /home/dimensi/projects/camellia/app/background.js                                                                                                                                          
    parse: /home/dimensi/projects/camellia/app/constants/newtab.js                                                                                                                                    
    parse: /home/dimensi/projects/camellia/app/helpers/functions.js                                                                                                                                   
    parse: /home/dimensi/projects/camellia/app/newtab.js                                                                                                                                              
    parse: /home/dimensi/projects/camellia/app/options.js                                                                                                                                             
    parse: /home/dimensi/projects/camellia/app/store/newtab.js                                                                                                                                        
    parse: /home/dimensi/projects/camellia/app/store/options.js                                                                                                                                       
    parse: /home/dimensi/projects/camellia/app/vendors/js/browser-polyfill.js                                                                                                                         
    resolve: extends chain                                                                                                                                                                            
    resolve: necessary                                                                                                                                                                                
    resolve: access                                                                                                                                                                                   
    resolve: unexported identifier                                                                                                                                                                    
    resolve: undocument identifier                                                                                                                                                                    
    resolve: duplication                                                                                                                                                                              
    resolve: ignore                                                                                                                                                                                   
    resolve: link                                                                                                                                                                                     
    resolve: markdown in description                                                                                                                                                                  
    resolve: test relation                                                                                                                                                                            
    output: badge.svg                                                                                                                                                                                 
    output: identifiers.html                                                                                                                                                                          
    output: index.html                                                                                                                                                                                
    output: function/index.html                                                                                                                                                                       
    output: variable/index.html                                                                                                                                                                       
    output: file/app/api/initPage.js.html                                                                                                                                                             
    output: file/app/background.js.html                                                                                                                                                               
    output: file/app/constants/newtab.js.html                                                                                                                                                         
    output: file/app/helpers/functions.js.html                                                                                                                                                        
    output: file/app/newtab.js.html                                                                                                                                                                   
    output: file/app/options.js.html                                                                                                                                                                  
    output: file/app/store/newtab.js.html                                                                                                                                                             
    output: file/app/store/options.js.html                                                                                                                                                            
    output: file/app/vendors/js/browser-polyfill.js.html                                                                                                                                              
    output: ./css                                                                                                                                                                                     
    output: ./script                                                                                                                                                                                  
    output: ./image                            
    output: script/search_index.js                                                                                                                                                                    
    output: source.html                                                                                                                                                                               
    ==================================                                                                                                                                                                
    Coverage: 62.5% (5/8)                                                                                                                                                                             
    ==================================                                                                                                                                                                
                                                                                                                                                                                                      
    TypeError: Cannot read property 'length' of undefined                                                                                                                                             
        at LintDocBuilder._showResult (/home/dimensi/projects/camellia/node_modules/esdoc/out/src/Publisher/Builder/LintDocBuilder.js:150:64)                                                         
        at LintDocBuilder.exec (/home/dimensi/projects/camellia/node_modules/esdoc/out/src/Publisher/Builder/LintDocBuilder.js:52:10)                                                                 
        at publish (/home/dimensi/projects/camellia/node_modules/esdoc/out/src/Publisher/publish.js:177:48)                                                                                           
        at Function.generate (/home/dimensi/projects/camellia/node_modules/esdoc/out/src/ESDoc.js:137:7)                                                                                              
        at ESDocCLI.exec (/home/dimensi/projects/camellia/node_modules/esdoc/out/src/ESDocCLI.js:75:23)                                                                                               
        at Object.<anonymous> (/home/dimensi/projects/camellia/node_modules/esdoc/out/src/ESDocCLI.js:186:7)                                                                                          
        at Module._compile (module.js:571:32)                                                                                                                                                         
        at Object.Module._extensions..js (module.js:580:10)                                                                                                                                           
        at Module.load (module.js:488:32)                                                                                                                                                             
        at tryModuleLoad (module.js:447:12)                                                                                                                                                           
                                                                                                                                                                                                      
    error Command failed with exit code 1.      
    

    Screen shot of documentation

    image

    Your environment

    • OS type and version: ubuntu 16.04
    • Node.js version: 7.7.2
    • ESDoc version: 0.5.2

    I try console.log it.

    image

    
    undefined                                                                                                                                                                                         
    { node:                                                                                                                                                                                           
       { type: 'ArrowFunctionExpression',                                                                                                                                                             
         start: 2045,                                                                                                                                                                                 
         end: 2124,                                                                                                                                                                                   
         loc: { start: [Object], end: [Object] },                                                                                                                                                     
         id:                                                                                                                                                                                          
          { type: 'Identifier',                                                                                                                                                                       
            start: 2030,                                                                                                                                                                              
            end: 2042,                                                                                                                                                                                
            loc: [Object],                                                                                                                                                                            
            name: 'getRandomInt',                                                                                                                                                                     
            leadingComments: null },                                                                                                                                                                  
         generator: false,                                                                                                                                                                            
         expression: false,                                                                                                                                                                           
         async: false,                                                                                                                                                                                
         params: [ [Object], [Object] ],                                                                                                                                                              
         body:                                                                                                                                                                                        
          { type: 'BlockStatement',                                                                                                                                                                   
            start: 2059,                                                                                                                                                                              
            end: 2124,                                                                                                                                                                                
            loc: [Object],                                                                                                                                                                            
            body: [Object],                                                                                                                                                                           
            directives: [],                                                                                                                                                                           
            trailingComments: null },                                                                                                                                                                 
         trailingComments: null },                                                                                                                                                                    
      doc:                                                                                                                                                                                            
       { __docId__: 11,                                                                                                                                                                               
         kind: 'function',                                                                                                                                                                            
         name: 'getRandomInt',                                                                                                                                                                        
         memberof: 'app/helpers/functions.js',                                                                                                                                                        
         generator: false,                                                                                                                                                                            
         async: false,                                                                                                                                                                                
         static: true,                                                                                                                                                                                
         longname: 'app/helpers/functions.js~getRandomInt',                                                                                                                                           
         access: 'public',                                                                                                                                                                            
         export: true,                                                                                                                                                                                
         importPath: 'camellia/app/helpers/functions.js',                                                                                                                                             
         importStyle: '{getRandomInt}',                                                                                                                                                               
         description: '<p>Generates random integer in given range.</p>\n',                                                                                                                            
         lineNumber: 98,                                                                                                                                                                              
         since: '1.0.0',                                                                                                                                                                              
         params: [ [Object], [Object] ],                                                                                                                                                              
         return:                                                                                                                                                                                      
          { nullable: null,                                                                                                                                                                           
            types: [Object],                                                                                                                                                                          
            spread: false,                                                                                                                                                                            
            description: '<p>array Random integer.</p>\n',                                                                                                                                            
            descriptionRaw: 'array Random integer.' },                                                                                                                                                
         ___id: 'T000002R000013',                                                                                                                                                                     
         ___s: true,                                                                                                                                                                                  
         descriptionRaw: 'Generates random integer in given range.' },         
      codeParams: [ 'min', 'max' ],                                                                                                                                                                   
      docParams: [ 'int', 'int' ] }       
    
    opened by dimensi 18
  • documentation getter/setters

    documentation getter/setters

    getters and setters should be documented like a property

    If there is only a getter, a information "readonly" could be displayed

    What do you think ?

    Here how to document getters/setters in jsdoc: https://github.com/jsdoc3/jsdoc/issues/973

    Result: WontFix Type: Feature Scope: Publisher 
    opened by christophehurpeau 17
  • Question about ES6+ support/willingness to accept PRs

    Question about ES6+ support/willingness to accept PRs

    Hey there, I know you don't currently support ES6+ (or ES7) features, since they're still under development/review. However, I've run into issues where using these new features causes esdoc to fail silently. Would you be amenable to a pull request to opt-into, or to ignore, ES6+ features, so that other files can still be processed? I've looked into this already, and it may also require a fix to espree (which I would submit prior to any PR for this project).

    Thanks, Murray

    Result: Accept Scope: ES.next Type: Feature Scope: Plugin 
    opened by mmoss 17
  • Make layout responsive.

    Make layout responsive.

    i have done some work to make the layout responsive. You can check the result at: ~~http://esdoc.avine.fr/~~ https://avine.io/projects/esdoc/v1/ Just resize the window to see it in action...

    opened by avine 16
  • Fatal Error

    Fatal Error

    Trying to compile esdocs on our (big) project and get:

    <--- Last few GCs --->

    237088 ms: Scavenge 1398.5 (1457.6) -> 1398.5 (1457.6) MB, 1.9 / 0 ms (+ 23.2 ms in 1 steps since last GC) [allocation failure] [incremental marking delaying mark-sweep]. 238189 ms: Mark-sweep 1398.5 (1457.6) -> 1398.5 (1457.6) MB, 1101.4 / 0 ms (+ 41.4 ms in 6 steps since start of marking, biggest step 23.2 ms) [last resort gc]. 239230 ms: Mark-sweep 1398.5 (1457.6) -> 1398.5 (1457.6) MB, 1041.0 / 0 ms [last resort gc].

    <--- JS stacktrace --->

    ==== JS stack trace =========================================

    Security context: 0x186f44e3ac1 1: parse [native json.js:~43] [pc=0x2cd2e996c41a](this=0x186f44d9309 <a JSON with map 0xd45b751f3d9>,s=0x10d04bc7b391 <Very long string[2892559]>,m=0x186f4404189 <undefined) 2: arguments adaptor frame: 1->2 3: new constructor(aka PluginEvent) [/Users/promethean/.nvm/versions/node/v5.10.1/lib/node_modules/esdoc/out/src/Plugin/Plugin.js:~209] [pc=0x2cd2e99989cc] (this=0xf4128a9f399 <...

    FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory.

    Also: having trouble excluding directories. doing:

    { "source": "../", "includes": [".(js|es6|jsx)$"], "excludes": ["_(node_modules|bower_components)_.(js|es6|jsx)$"], }

    but node_modules and others still getting parsed.

    Result: WontFix Type: Feature Scope: Config 
    opened by bigant63 16
  • Force esdoc to process non ES6 code

    Force esdoc to process non ES6 code

    I understand that esdoc is designed for ES6. And I code in ES6 as much as I can, but Node does not implement import.

    I've read #168 but still don't know how to force esdoc to document something like this:

    module.exports =
    {
      /**
       * Main function of the module blablabla
       */
      doStuff: function()
      {
        // do stuff
      }
    };
    

    I don't think a plugin-feature may help here. Isn't there a "tag" or something that tells esdoc "please process this"?

    Type: Feature Result: Reject Scope: ES5 
    opened by ibc 13
  • It doesn't render all the classes

    It doesn't render all the classes

    The overall output and the formatting of esdoc is really better than docco/jsdoc in my option, however I'm having issues with some of my react components. It displays about the half of this components. I don't use ES7 and I don't see errors during the building process. Also, the coverage is stuck at 1.33% from yesterday despite the fact that I have added many esdoc-formatted comments.

    Here's the log that I get:

    [email protected] esdoc C:\Users\PC\Desktop\User\client esdoc -c esdoc.json

    badge.svg identifiers.html index.html class/client/components/Console/Console.js~Console.html class/client/components/Dashboard/Dashboard.js~Dashboard.html class/client/components/DashboardComponentHeader/DashboardComponentHeader.js~DashboardComponentHeader.html class/client/components/DashboardComponentWrapper/DashboardComponentWrapper.js~DashboardComponentWrapper.html class/client/components/Datatable/Datatable.js~Datatable.html class/client/components/ErrorView/ErrorView.js~ErrorView.html class/client/components/Footer/Footer.js~Footer.html class/client/components/FormGroup/FormGroup.js~FormGroup.html class/client/components/FormHeader/FormHeader.js~FormHeader.html class/client/components/Home/Home.js~Home.html class/client/components/Loader/Loader.js~Loader.html class/client/components/MainBlockSingle/MainBlockSingle.js~MainBlockSingle.html class/client/components/ModalWrapper/ModalWrapper.js~ModalWrapper.html class/client/components/NetworkCard/NetworkCard.js~NetworkCard.html class/client/components/NetworkRow/NetworkRow.js~NetworkRow.html class/client/components/PieChart/PieChart.js~PieChart.html class/client/components/PieChartCard/PieChartCard.js~PieChartCard.html class/client/components/Root/Root.js~Root.html class/client/components/ShowParametersList/ShowParametersList.js~ShowParametersList.html class/client/components/SortableDataTable/SortableDataTable.js~SortableDataTable.html class/client/components/SortableDataTableSmall/SortableDataTableSmall.js~SortableDataTableSmall.html class/client/components/SuccessMessage/SuccessMessage.js~SuccessMessage.html function/index.html variable/index.html file/client/actions/index.js.html file/client/actions/types.js.html file/client/components/App/App.js.html file/client/components/App/index.js.html file/client/components/App/metisMinHeight.js.html file/client/components/ConfigureHostname/ConfigureHostname.js.html file/client/components/ConfigureHostname/index.js.html file/client/components/ConfigureNetwork/ConfigureNetwork.js.html file/client/components/ConfigureNetwork/index.js.html file/client/components/Console/Console.js.html file/client/components/Console/index.js.html file/client/components/Dashboard/Dashboard.js.html file/client/components/Dashboard/index.js.html file/client/components/DashboardComponentHeader/DashboardComponentHeader.js.html file/client/components/DashboardComponentHeader/index.js.html file/client/components/DashboardComponentWrapper/DashboardComponentWrapper.js.html file/client/components/DashboardComponentWrapper/index.js.html file/client/components/Datatable/Datatable.js.html file/client/components/Datatable/index.js.html file/client/components/DropCard/DropCard.js.html file/client/components/DropCard/index.js.html file/client/components/ErrorView/ErrorView.js.html file/client/components/ErrorView/index.js.html file/client/components/Footer/Footer.js.html file/client/components/Footer/index.js.html file/client/components/FormGroup/FormGroup.js.html file/client/components/FormGroup/index.js.html file/client/components/FormHeader/FormHeader.js.html file/client/components/FormHeader/index.js.html file/client/components/Home/Home.js.html file/client/components/Home/Home.test.js.html file/client/components/Home/index.js.html file/client/components/Loader/Loader.js.html file/client/components/Loader/index.js.html file/client/components/MainBlockSingle/MainBlockSingle.js.html file/client/components/MainBlockSingle/index.js.html file/client/components/MainBlocks/MainBlocks.js.html file/client/components/MainBlocks/index.js.html file/client/components/Menu/Menu.js.html file/client/components/Menu/index.js.html file/client/components/ModalWrapper/ModalWrapper.js.html file/client/components/ModalWrapper/index.js.html file/client/components/NetworkCard/NetworkCard.js.html file/client/components/NetworkCard/index.js.html file/client/components/NetworkRow/NetworkRow.js.html file/client/components/NetworkRow/index.js.html file/client/components/NotFound/NotFound.js.html file/client/components/NotFound/NotFound.test.js.html file/client/components/NotFound/index.js.html file/client/components/NotificationsPanel/NotificationsPanel.js.html file/client/components/NotificationsPanel/index.js.html file/client/components/PieChart/PieChart.js.html file/client/components/PieChart/index.js.html file/client/components/PieChartCard/PieChartCard.js.html file/client/components/PieChartCard/index.js.html file/client/components/PingCard/PingCard.js.html file/client/components/PingCard/index.js.html file/client/components/Root/Root.js.html file/client/components/Root/Root.test.js.html file/client/components/Root/index.js.html file/client/components/SearchBar/SearchBar.js.html file/client/components/SearchBar/index.js.html file/client/components/SetLdapParameters/SetLdapParameters.js.html file/client/components/SetLdapParameters/index.js.html file/client/components/SetMailParameters/SetMailParameters.js.html file/client/components/SetMailParameters/index.js.html file/client/components/SetMainParameters/SetMainParameters.js.html file/client/components/SetMainParameters/index.js.html file/client/components/SetNetflowParameters/SetNetflowParameters.js.html file/client/components/SetNetflowParameters/index.js.html file/client/components/SetNetworksParameters/SetNetworksParameters-OLD.js.html file/client/components/SetNetworksParameters/SetNetworksParameters.js.html file/client/components/SetNetworksParameters/index.js.html file/client/components/SetSnmpParameters/SetSnmpParameters.js.html file/client/components/SetSnmpParameters/index.js.html file/client/components/SetWmiParameters/SetWmiParameters.js.html file/client/components/SetWmiParameters/index.js.html file/client/components/ShowInitParametersList/ShowInitParametersList.js.html file/client/components/ShowInitParametersList/index.js.html file/client/components/ShowLdapParametersList/ShowLdapParametersList.js.html file/client/components/ShowLdapParametersList/index.js.html file/client/components/ShowMailParametersList/ShowMailParametersList.js.html file/client/components/ShowMailParametersList/index.js.html file/client/components/ShowNetflowParametersList/ShowNetflowParametersList.js.html file/client/components/ShowNetflowParametersList/index.js.html file/client/components/ShowNetworksParametersList/ShowNetworksParametersList.js.html file/client/components/ShowNetworksParametersList/index.js.html file/client/components/ShowParameters/ShowParameters.js.html file/client/components/ShowParameters/index.js.html file/client/components/ShowParametersList/ShowParametersList.js.html file/client/components/ShowParametersList/index.js.html file/client/components/ShowProbeSystemNetworksParametersList/ShowProbeSystemNetworksParametersList.js.html file/client/components/ShowProbeSystemNetworksParametersList/index.js.html file/client/components/ShowProbeSystemParameters/ShowProbeSystemParameters.js.html file/client/components/ShowProbeSystemParameters/index.js.html file/client/components/ShowSnmpParametersList/ShowSnmpParametersList.js.html file/client/components/ShowSnmpParametersList/index.js.html file/client/components/ShowWmiParametersList/ShowWmiParametersList.js.html file/client/components/ShowWmiParametersList/index.js.html file/client/components/SortableDataTable/SortableDataTable.js.html file/client/components/SortableDataTable/index.js.html file/client/components/SortableDataTableSmall/SortableDataTableSmall.js.html file/client/components/SortableDataTableSmall/index.js.html file/client/components/SortableListContainer/SortableListContainer.js.html file/client/components/SortableListContainer/index.js.html file/client/components/SuccessMessage/SuccessMessage.js.html file/client/components/SuccessMessage/index.js.html file/client/configureStore.js.html file/client/index.js.html file/client/reducers/appState.js.html file/client/reducers/appState.test.js.html file/client/reducers/checkLdapParametersReducer.js.html file/client/reducers/checkMailParametersReducer.js.html file/client/reducers/checkNetworksListParametersReducer.js.html file/client/reducers/checkPingReachability.js.html file/client/reducers/errorViewReducer.js.html file/client/reducers/fetchEuclideApplReducer.js.html file/client/reducers/fetchLdapBasesReducer.js.html file/client/reducers/fetchLdapDomainsReducer.js.html file/client/reducers/fetchLdapNameReducer.js.html file/client/reducers/fetchLdapPasswordReducer.js.html file/client/reducers/fetchLdapPortReducer.js.html file/client/reducers/fetchMailAuthReducer.js.html file/client/reducers/fetchMailFromReducer.js.html file/client/reducers/fetchMailNameReducer.js.html file/client/reducers/fetchMailPasswordReducer.js.html file/client/reducers/fetchMailTohReducer.js.html file/client/reducers/fetchMailUsernameReducer.js.html file/client/reducers/fetchNetflowNameReducer.js.html file/client/reducers/fetchNetworksRangeReducer.js.html file/client/reducers/fetchProbeIdReducer.js.html file/client/reducers/fetchProbeKeyReducer.js.html file/client/reducers/fetchProbeSystemNetworksParametersReducer.js.html file/client/reducers/fetchSiteIdReducer.js.html file/client/reducers/fetchSiteNameReducer.js.html file/client/reducers/fetchSnmpCommunityReducer.js.html file/client/reducers/fetchSnmpVersionReducer.js.html file/client/reducers/fetchSystemHostname.js.html file/client/reducers/fetchSystemHostnameReducer.js.html file/client/reducers/fetchWmiPasswordReducer.js.html file/client/reducers/fetchWmiPortReducer.js.html file/client/reducers/fetchWmiServerReducer.js.html file/client/reducers/fetchWmiUsernameReducer.js.html file/client/reducers/index.js.html file/client/reducers/index.test.js.html file/client/reducers/modalReducer.js.html file/client/reducers/modalSuccessReducer.js.html file/client/reducers/notificationsReducer.js.html file/client/reducers/pingComponentReducer.js.html file/client/reducers/setEuclideApplReducer.js.html file/client/reducers/setLdapBasesReducer.js.html file/client/reducers/setLdapDomainsReducer.js.html file/client/reducers/setLdapNameReducer.js.html file/client/reducers/setLdapPasswordReducer.js.html file/client/reducers/setLdapPortReducer.js.html file/client/reducers/setMailAuthReducer.js.html file/client/reducers/setMailFromReducer.js.html file/client/reducers/setMailNameReducer.js.html file/client/reducers/setMailPasswordReducer.js.html file/client/reducers/setMailTohReducer.js.html file/client/reducers/setMailUsernameReducer.js.html file/client/reducers/setMainParameters.js.html file/client/reducers/setNetflowNameReducer.js.html file/client/reducers/setNetworksRangeReducer.js.html file/client/reducers/setProbeIdReducer.js.html file/client/reducers/setProbeKeyReducer.js.html file/client/reducers/setSiteIdReducer.js.html file/client/reducers/setSiteNameReducer.js.html file/client/reducers/setSnmpCommunityReducer.js.html file/client/reducers/setSnmpVersionReducer.js.html file/client/reducers/setSystemHostnameReducer.js.html file/client/reducers/setSystemNetworksReducer.js.html file/client/reducers/setWmiPasswordReducer.js.html file/client/reducers/setWmiPortReducer.js.html file/client/reducers/setWmiServerReducer.js.html file/client/reducers/setWmiUsernameReducer.js.html file/client/reducers/sortableDataTableReducer.js.html file/client/routes.js.html file/client/utils.js.html ./css ./script ./image script/search_index.js

    source.html

    Coverage: 1.33% (7/525)

    And here's my esdoc.json:

    { "source": "./client", "destination": "./esdoc" }

    Type: Question Result: WontFix Scope: Syntax 
    opened by jkomyno 12
  • Support functions defines as const

    Support functions defines as const

    Functions declared as const's get documented as variables and not functions eg:

    const myFunct = (i) => { return i + 1; }
    

    Is there a way to display them as functions in the docs?

    Result: Accept Type: Bug Scope: ES6 
    opened by msmfsd 12
  • Multiple source paths solution / proof of concept fixes #72, #86, #210, #270

    Multiple source paths solution / proof of concept fixes #72, #86, #210, #270

    There have been several issues opened #72, #86, #210, #270 regarding supporting multiple source (and test paths). @h13i32maru currently in March has declined to support this feature with the claim it is too complex for ESDoc, but my proof of concept implementation hopefully proves that it works fine while maintaining backward compatibility. It took ~20 minutes to get the first implementation working then ~3 hours to make it "bullet proof".

    I have a test branch source-globs that seems to offer a great solution. Since I have done the proof of concept work in a branch of my fork of ESDoc which supports Babylon I'm posting a new issue here instead of a PR especially given that this is a potential major (but non-breaking) change.

    I'd like to open comments in support of adding this feature into ESDoc and of course get any feedback on the implementation.

    You can install it via: npm install "git+https://[email protected]/typhonjs-node-esdoc/esdoc.git#source-globs"

    Or including the above in package.json.

    @h13i32maru I now have two major enhancements for ESDoc including the switch to Babylon parser and supporting multiple source / test globs which I'd like to upstream to ESDoc. Please consider accepting them! If you can agree to quickly review and accept PRs I'll certainly take the time to submit them! In my opinion after accepting these changes a new release 0.5 of ESDoc is pertinent.


    The following is a description of the changes involved in the proof of concept.

    I've included the glob npm module and treat config.source if it is an array then as an array of globs otherwise the string path is converted into an array with an all inclusive glob created from the string path as the single entry. Also ifconfig.test.source is an array it also is treated as an array of globs, etc.

    So if you were to include three source paths the following config file applies:

    {
       "source": ["src/**/*.js", "src2/**/*.js", "src3/subdir/*.js"],
       "destination": "docs"
    }
    

    It should be noted that config.source / config.test.source now holds an array of globs as a bare string path is converted into a glob and stored as the single entry in an array. There are two new config parameters which store the base working path for source and tests which are config.sourceDirPath and config.test.dirPath. To retain backward compatibility if either config.source or config.test.source is originally a path string then those paths define config.sourceDirPath and config.test.dirPath, but the user now has an option to override and provide in the config file config.sourceDirPath and config.test.dirPath which will be used in place instead of being generated. If not provided at all then they are set to the root path . when a source glob array is defined.

    An example of including multiple paths relative to a user defined source directory path:

    {
       "source": ["otherpath/src/subdir1/**/*.js", "otherpath/src/subdir2/**/*.js", "otherpath/src/subdir3/**/*.js"],
       "sourceDirPath": "otherpath/src",
       "destination": "docs"
    }
    

    I added a basic sanity check in tests to just make sure things work with source glob arrays. I have tested this in a few separate repos and so far things work great for source and test loading for existing ESDoc config files and supporting the new source globs array pattern.

    While two new config parameters are added (config.sourceDirPath and config.test.dirPath) they are not necessary to set in advance, so any existing ESDoc config file works as expected.


    Impacts

    With any major change it's important to consider the impact it might have on ESDoc plugins. As far as I'm aware I'm the only author of an ESDoc plugin, esdoc-plugin-jspm which uses the old hack of rewriting / synthesizing the config.includes regexp to include multiple source directories supporting JSPM managed source code. I don't believe any other existing ESDoc plugins may be impacted and supporting source globs is a much preferred direction for esdoc-plugin-jspm because it prevents usage of config.includes by overwriting it.

    Given that a bare source path is rewritten to a source glob array and stored in config.source and config.test.source and the new config.sourceDirPath and config.test.dirPath entries contain the actual paths there is a potential for ESDoc plugins to be updated. This affects my plugin esdoc-plugin-enhanced-navigation, but has low impact. In that plugin I used the old config.source to rewrite file paths for the navigation. This can actually now be removed.

    So, there may be a minor impact on a few ESDoc plugins, but the feature enhancement is much improved and since ESDoc is no where near v1.0 any affected plugins (if any at all outside my efforts) can easily make the change to use config.sourceDirPath as necessary.

    Type: Feature Result: Reject Scope: Config 
    opened by typhonrt 12
  • Documenting events?

    Documenting events?

    It appears that the following code is undocumentable with ESdoc (using the node.js EventEmitter):

    class Example extends EventEmitter {
       doSomething () {
          ....then( () => this.emit('anevent', params) )....
       }
       // and many other methods that can also emit various events defined by this class
    }
    

    Here, the anevent event is associated with the class Example, not with any particular method of it. Multiple methods may emit that event, and the API is designed such that it doesn't matter what method emits the event (this is the intent of events to begin with), as on('anevent', ...) would be called on an Example instance, not on the return value of some particular method.

    Also, this code simply uses the functionality of the base EventEmitter, it does not define any custom event code that can itself serve as a documentation target.

    In other words, events are a property of the class Example, and not of anything else.

    However, ESdoc does not seem to recognize @emits in class documentation, only in method documentation, even though it is the class that emits the events.

    Is there a way to document this type of code with ESdoc?

    opened by JC3 0
  • Can't parse `||=` operator.

    Can't parse `||=` operator.

    Esdoc fails to parse code that uses the ||= operator:

    function someFunction (x) { 
        x = {};
        x = x || {};
        x ||= {};
    }
    

    Esdoc will say it can't parse the code, pointing to the x ||= {} line.

    opened by JC3 1
  • Can't parse private members of classes

    Can't parse private members of classes

    Even with the recommended ecmascript-proposals plugin, esdoc can't seem to understand private members of classes of any form, and says it "can't parse the following code". For example:

    class ExampleClass {
        #o = {};
    }
    

    Fails to parse the #o. Likewise:

    class ExampleClass {
        constructor () {
            this.#privateMethod();
        }
        #privateMethod () {
        }
    }
    

    Fails on the this.#privateMethod() call before it even gets to #privateMethod () {.

    opened by JC3 0
  • chore(deps): bump qs from 6.5.1 to 6.5.3

    chore(deps): bump qs from 6.5.1 to 6.5.3

    Bumps qs from 6.5.1 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge`: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main

    6.5.2

    • [Fix] use safer-buffer instead of Buffer constructor
    • [Refactor] utils: module.exports one thing, instead of mutating exports (#230)
    • [Dev Deps] update browserify, eslint, iconv-lite, safer-buffer, tape, browserify
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    chore(deps): bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump codecov from 3.0.1 to 3.8.3

    chore(deps-dev): bump codecov from 3.0.1 to 3.8.3

    Bumps codecov from 3.0.1 to 3.8.3.

    Release notes

    Sourced from codecov's releases.

    v3.8.3

    Fixes

    • #329 fix: Test if response has two lines

    Dependencies

    • #306 Bump eslint-config-prettier from 7.2.0 to 8.3.0
    • #305 Bump eslint from 7.21.0 to 7.25.0
    • #302 Bump mock-fs from 4.13.0 to 4.14.0
    • #308 Bump lodash from 4.17.19 to 4.17.21
    • #309 Bump ignore-walk from 3.0.3 to 3.0.4
    • #310 Bump hosted-git-info from 2.8.8 to 2.8.9
    • #325 Bump prettier from 2.2.1 to 2.3.2
    • #326 Bump actions/setup-node from 2.1.5 to 2.2.0
    • #328 Bump lint-staged from 10.5.4 to 11.0.1
    • #330 Bump eslint from 7.25.0 to 7.31.0
    • #331 Bump ws from 7.3.1 to 7.5.3
    • #332 Bump urlgrey from 0.4.4 to 1.0.0
    • #334 Bump husky from 6.0.0 to 7.0.1
    • #333 Bump teeny-request from 7.0.1 to 7.1.1

    v3.8.2

    3.8.2

    Fixes

    • #304 Add coverage-final.json as a possible coverage file during file lookup

    v3.8.1

    Fixes

    • #246 Revert "Bump teeny-request from 6.0.1 to 7.0.0"

    v3.8.0

    Features

    • #160 Add Github Actions support

    Fixes

    • #173 Fix broken gcov command
    • #195 Update Node testing versions
    • #200 Remove flaky tests
    • #204 Create CHANGELOG and remove flaky v4 test
    • #208 Add license scan report and status
    • #220 Remove errant bitly

    Dependencies

    • #189 Bump lint-staged from 10.0.7 to 10.2.11
    • #190 [Security] Bump handlebars from 4.5.3 to 4.7.6
    • #191 Bump prettier from 1.19.1 to 2.0.5
    • #192 Bump mock-fs from 4.10.4 to 4.12.0
    • #196 Bump teeny-request from 6.0.1 to 7.0.0

    ... (truncated)

    Changelog

    Sourced from codecov's changelog.

    3.8.3

    Fixes

    • #329 fix: Test if response has two lines

    Dependencies

    • #306 Bump eslint-config-prettier from 7.2.0 to 8.3.0
    • #305 Bump eslint from 7.21.0 to 7.25.0
    • #302 Bump mock-fs from 4.13.0 to 4.14.0
    • #308 Bump lodash from 4.17.19 to 4.17.21
    • #309 Bump ignore-walk from 3.0.3 to 3.0.4
    • #310 Bump hosted-git-info from 2.8.8 to 2.8.9
    • #325 Bump prettier from 2.2.1 to 2.3.2
    • #326 Bump actions/setup-node from 2.1.5 to 2.2.0
    • #328 Bump lint-staged from 10.5.4 to 11.0.1
    • #330 Bump eslint from 7.25.0 to 7.31.0
    • #331 Bump ws from 7.3.1 to 7.5.3
    • #332 Bump urlgrey from 0.4.4 to 1.0.0
    • #334 Bump husky from 6.0.0 to 7.0.1
    • #333 Bump teeny-request from 7.0.1 to 7.1.1

    3.8.2

    Fixes

    • #304 Add coverage-final.json as a possible coverage file during file lookup

    3.8.1

    Fixes

    • #246 Revert "Bump teeny-request from 6.0.1 to 7.0.0"

    3.8.0

    Features

    • #160 Add Github Actions support

    Fixes

    • #173 Fix broken gcov command
    • #195 Update Node testing versions
    • #200 Remove flaky tests
    • #204 Create CHANGELOG and remove flaky v4 test
    • #208 Add license scan report and status
    • #220 Remove errant bitly

    Dependencies

    • #189 Bump lint-staged from 10.0.7 to 10.2.11
    • #190 [Security] Bump handlebars from 4.5.3 to 4.7.6
    • #191 Bump prettier from 1.19.1 to 2.0.5

    ... (truncated)

    Commits
    • e22061b Merge pull request #335 from codecov/3.8.3
    • 981df8b 3.8.3
    • 135555c Merge pull request #333 from codecov/dependabot/npm_and_yarn/teeny-request-7.1.1
    • 65b53a3 Merge pull request #334 from codecov/dependabot/npm_and_yarn/husky-7.0.1
    • 6e4af4d Bump teeny-request from 7.0.1 to 7.1.1
    • 1149168 Merge pull request #332 from codecov/dependabot/npm_and_yarn/urlgrey-1.0.0
    • 883785c Merge pull request #331 from codecov/dependabot/npm_and_yarn/ws-7.5.3
    • 04d5ff7 Merge pull request #330 from codecov/dependabot/npm_and_yarn/eslint-7.31.0
    • e6c5bf4 Bump husky from 6.0.0 to 7.0.1
    • f781bc4 Bump ws from 7.3.1 to 7.5.3
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(1.1.0)
Owner
ESDoc
ESDoc - Good Documentation Generator for JavaScript
ESDoc
:book: documentation for modern JavaScript

The documentation system for modern JavaScript ?? Current maintenance status Supports modern JavaScript: ES5, ES2017, JSX, Vue and Flow type annotatio

null 5.6k Jan 4, 2023
YUI Javascript Documentation Tool

YUIDoc YUI's JavaScript Documentation engine. Overview YUIDoc is a Node.js application used at build time to generate API documentation for JavaScript

YUI Library 889 Dec 25, 2022
Main repository for the Sphinx documentation builder

Sphinx Sphinx is a tool that makes it easy to create intelligent and beautiful documentation for Python projects (or other documents consisting of mul

null 5.1k Jan 2, 2023
Pointers to useful, well-written, and otherwise beautiful documentation.

DO YOU WANT TO BUILD AND WRITE GLORIOUS TECHNICAL DOCUMENTATION FULL TIME? EMAIL [email protected]. WE NEED YOU. Beautiful Docs I love documentation. If

Mark Phillips 7.9k Jan 4, 2023
dexy 2.2 1.9 L4 Python is a free-form literate documentation tool for writing any kind of technical document incorporating code.

Dexy Dexy is open source automation software with features especially designed for documentation and reporting. More information at http://dexy.it Doc

null 304 Sep 30, 2022
A collaborative newsroom documentation site, powered by Google Docs.

A collaborative newsroom documentation site, powered by Google Docs.

The New York Times 1k Dec 26, 2022
Adaptation of the popular mkdocs-material material design theme to the sphinx documentation system

Sphinx-Immaterial Theme This theme is an adaptation of the popular mkdocs-material theme for the Sphinx documentation tool. This theme is regularly ma

Jeremy Maitin-Shepard 89 Jan 4, 2023
Simple JavaScript Duckumentation generator.

Warning: JSDuck is no more maintained! If you're looking to adopt a documentation tool, try something else. If you're using JSDuck, consider moving ov

Sencha Labs 1.5k Nov 28, 2022
null 147 Dec 8, 2022
A Very Good Documentation Site created by the Very Good Ventures Team 🩄

Very Good Docs Site Developed with ?? by Very Good Ventures ?? A Very Good Docs Site created by the Very Good Ventures Team. Generated by the Very Goo

Very Good Open Source 8 Nov 2, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till mÀnniskor pÄ flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Hackathon for Social Good 2022 and use your superpowers to create a solution for the social good.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Laura Diaz 3 Jun 27, 2022
A documentation bot built using slash-create for its documentation, functionality derived from Eris Docs bot.

docs-bot A service that handles navigation of a docgen project manifest. Commands All arguments are required. $ npx slash-up list /docs - Search docu

/create 4 Dec 15, 2022
Small but good javascript smoke effect 🌬💹

Demo You can play with a live demo here → Installation Basic Copy the smoke.js file into your project and use it with a script tag: <script src="smoke

Guillermo Webster 239 Dec 28, 2022
Open Source projects are a project to improve your JavaScript knowledge with JavaScript documentation, design patterns, books, playlists.

It is a project I am trying to list the repos that have received thousands of stars on Github and deemed useful by the JavaScript community. It's a gi

Cihat Salik 22 Aug 14, 2022
This repo has demos, content and documentation of javascript concepts and syntax, in their simplest form. Contribute by sharing your understanding of javascript! Hacktoberfest Accepted!

javascript-documentation open-source hacktoberfest2022 Submit your PR to this javascript-documentation repo ?? ?? ❗ This repo has some of my javascrip

Austin Lynch 7 Nov 2, 2022
🐐 Simple and complete React DOM testing utilities that encourage good testing practices.

React Testing Library Simple and complete React DOM testing utilities that encourage good testing practices. Read The Docs | Edit the docs Table of Co

Testing Library 17.3k Jan 4, 2023