Skip to content

Collection of parameter types with their respective reference links

License

Notifications You must be signed in to change notification settings

HuasoFoundries/type-links

Repository files navigation

param-links

Collection of parameter types with their respective reference links

This project is a helper meant to be used with Documentation.js.

As you may know, Documentation.js Node.js's API allows you to output the documentation result in different formats.

Each formatter accepts an options object, among which the path key is meant to link a parameter type with its respective source.

Let's say we want to generate our documentation in Markdown format.

And we want to document a simple Express route.

/**
 * Renders the welcome screen
 *
 * @name get/home
 * @memberof routes/app
 * @inner
 *
 * @param {Express.req}        req                      - Express request
 * @param {Express.res}        res                      - Express response
 * @param {Express.middleware} next                     - Express middleware
 *
 * @return {string} the rendered home template
 */
router.get('/', function (req, res, next) {
    res.render('index', {
        title: 'Welcome to my site'
    });
});

In that case, doing

	const paths = {
		"Express.req": 'http://expressjs.com/es/api.html#req',
  		"Express.middleware": 'http://expressjs.com/en/guide/using-middleware.html',
  		"Express.res": 'http://expressjs.com/es/api.html#res'
	};

	documentation.build(['routes/app.js'])
	.then(res => {
    	return documentation.formats.md(res, { 	paths    });
	}).then(output => {
    
    	return fs.writeFileSync(`${__dirname}/ROUTE.md`, output);

	}).catch(function (err) {
	    console.error(err);
	    return;
	});
  

Will automagically link those Express-type parameters to their respective docs and definitions.

Documentation.js already does this for native JS primitives (strings, numbers, objects, arrays...) pointing to MDN, but you can expand that feature as far as you want.

At this point, there are parameters for

  • Google Maps API
  • GeoJSON Types
  • Backbone objects
  • Express objects
  • Facebook API endpoints and types

So instead of manually writing your parameter-link mapping, you can do:

	let paths = require('param-links');
	
	// add or replace paths as you wish
	Object.assign(paths, {
		paramx:'https://paramx.com'
	});

	documentation.build(...)

Let me see those contributions!

About

Collection of parameter types with their respective reference links

Resources

License

Stars

Watchers

Forks

Packages

No packages published