npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

js-doc-autogen

v0.0.3

Published

Automatic documentation / descriptions of live javascript objects in several formats

Downloads

3

Readme

Build Status

What?

  • This is a Research project *

Automatic documentation / descriptions of live javascript objects in several formats

The idea of this tool is to explore and describe the structure of given unknown javascript object

t can run anywhere thanks to browserify: we can run it in node, browser, rhino, nashhorn, etc

output implementation are plugins - there are now several different type of outputs (jsdoc, jsonschema, typescript descriptions ) but others can be implemented as funcions

Sceniarios

  • you are using an undocumented library or a library poorly documented in a readme. But you areprograming in a intellisence editor and you wnat autocomplete to work faster - so you use this tool against the library's root object.

  • you are for some reason programming in a new javascript environment like rhino and don't know nothing about its globals or what's available. Run the tool agains the global context (this) to explore it

install

npm install --save js-doc-autogen

Using it in node.js

var docgen = require('js-doc-autogen')
var context = {
    someCoolLibraryWithoutFormalDocumentation: require('cool-foo')
}
var config = {
    target: context,
    outputImplementation: 'jsonschema',
    excludeNames: ['something.very.private'],
    levelMax:6
}
var buffer = docgen.main(config)
var s = buffer.join('\n')

Using it in the browser to examine DOM

(but you could examine any object of a n on documented library)

<script src="../dist/bundle.js"></script>
<script>
var docgen = require('js-doc-autogen')
var context = {
    document: document,
    window: window,
    foo: {p: 9}
}
var config = {
    target: context,
    mainModule: 'html',
    outputImplementation: 'shortjsdoc',
    excludeNames: ['document.doctype']
    ,levelMax: 4
}
var buffer = docgen.main(config)
var jsdoc = buffer.join('\n')
var jsdoc = '/*\n'+jsdoc+'\n*/'
window.jsdoc = jsdoc
console.log(jsdoc)
// copy(s)
console.log('jsdoc available in variable jsdoc. Execute copy(jsdoc) in the console to copy jsdoc to clipboard. ')
</script>

Configuration properties

  • target: the target object to document. It will be examine ant if it contains circular dependencies probably it could fail. Also the object coul dbe unusable / contaminated after using the tool
  • mainModule: a name to put to the root output object that contains everything
  • outputImplementation: could be any of: shortjsdoc, jsonschema

jsdoc output example

The following is documentation automatically generated from globals of different js implementations like node, browser, rhino, nashorn, etc

DEMO

generate bundle and run it in browser

browserify -r .:js-doc-autogen -r ./src/output-shortjsdoc.js:./output-shortjsdoc -r underscore -d > dist/bundle.js

firefox example/browser-example.html

You will see a jsdoc fragment in the console.

Other files