Page MenuHomeWickedGov Phorge

urlGenerator.js
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

urlGenerator.js

/**
* @typedef {Record<string,string>} UrlParams
* @param {string} title
* @param {string} fulltext
*/
/**
* @callback generateUrl
* @param {RestResult|SearchResult|string} searchResult
* @param {UrlParams} [params]
* @param {string} [articlePath]
* @return {string}
*/
/**
* @typedef {Object} UrlGenerator
* @property {generateUrl} generateUrl
*/
/**
* Generates URLs for suggestions like those in MediaWiki's mediawiki.searchSuggest implementation.
*
* @param {string} articlePath
* @return {UrlGenerator}
*/
function urlGenerator( articlePath ) {
return {
/**
* @param {RestResult|SearchResult|string} suggestion
* @param {UrlParams} params
* @return {string}
*/
generateUrl(
suggestion,
params = {
title: 'Special:Search'
}
) {
if ( typeof suggestion !== 'string' ) {
suggestion = suggestion.title;
} else {
// Add `fulltext` query param to search within pages and for navigation
// to the search results page (prevents being redirected to a certain
// article).
params = Object.assign( {}, params, {
fulltext: '1'
} );
}
const searchParams = new URLSearchParams(
Object.assign( {}, params, { search: suggestion } )
);
return `${ articlePath }?${ searchParams.toString() }`;
}
};
}
/** @module urlGenerator */
module.exports = urlGenerator;

File Metadata

Mime Type
text/plain
Expires
Sat, May 16, 13:04 (1 d, 8 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
41/38/e21db1e1d70bcc6f9b60df330e9b
Default Alt Text
urlGenerator.js (1 KB)

Event Timeline