Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,27 @@ var debug = logger( 'remark-stdlib-urls-www:transformer' );
var RE_STDLIB = /^@stdlib\//;


// FUNCTIONS //

/**
* Callback invoked upon finding a matching node.
*
* @private
* @param {Node} node - reference node
* @param {Options} opts - transformer options
*/
function visitor( node, opts ) {
debug( 'Found a definition: %s', node.identifier );
if ( RE_STDLIB.test( node.identifier ) ) {
debug( 'Found a package identifier.' );

debug( 'Current URL: %s', node.url );
node.url = opts.base + node.identifier;
debug( 'Resolved URL: %s', node.url );
}
}


// MAIN //

/**
Expand All @@ -48,29 +69,20 @@ function factory( opts ) {
*
* @private
* @param {Node} tree - root AST node
* @param {File} file - virtual file
*/
function transformer( tree ) {
debug( 'Processing virtual file...' );
visit( tree, 'definition', visitor );

/**
* Callback invoked upon finding a matching node.
*
* @private
* @param {Node} node - reference node
*/
function visitor( node ) {
debug( 'Found a definition: %s', node.identifier );
if ( RE_STDLIB.test( node.identifier ) ) {
debug( 'Found a package identifier.' );

debug( 'Current URL: %s', node.url );
node.url = opts.base + node.identifier;

debug( 'Resolved URL: %s', node.url );
}
}
visit( tree, 'definition', wrappedVisitor );
}

/**
* Visitor wrapper to provide options.
*
* @private
* @param {Node} node - reference node
*/
function wrappedVisitor( node ) {
visitor( node, opts );
}
}

Expand Down