88/**
99 * Parse referrer string into array of URLs
1010 * @private
11- * @param {string|Array } referrer - Referrer string or array
11+ * @param {string|Array } referrerChain - Referrer string or array
1212 * @returns {Array } Array of referrer URLs
1313 */
14- const parseReferrerChain = ( referrer ) => {
15- if ( ! referrer ) return [ ]
16- if ( Array . isArray ( referrer ) ) return referrer
17- return referrer . split ( ',' ) . filter ( Boolean )
14+ const parseReferrerChain = ( referrerChain ) => {
15+ if ( ! referrerChain ) return [ ]
16+ if ( Array . isArray ( referrerChain ) ) return referrerChain
17+ return referrerChain . split ( ',' ) . filter ( Boolean )
1818}
1919
2020/**
2121 * Get destination from referrer chain, falling back to provided URL if no referrer
2222 * @param {string } url - Default URL to use if no referrer
23- * @param {string } referrer - Referrer chain
23+ * @param {string } referrerChain - Referrer chain
2424 * @returns {string } URL to use for back link
2525 * @example
2626 * // In templates:
27- * <a href="{{ '/default-path' | orReferrer(referrer ) }}">Back</a>
27+ * <a href="{{ '/default-path' | getReturnUrl(referrerChain ) }}">Back</a>
2828 */
29- const orReferrer = function ( url , referrer ) {
29+ const getReturnUrl = function ( url , referrerChain ) {
3030 // Get currentUrl from context if available
3131 const currentUrl = this ?. ctx ?. currentUrl
3232
33- const chain = parseReferrerChain ( referrer )
33+ const chain = parseReferrerChain ( referrerChain )
3434 . filter ( ref => ref !== currentUrl )
3535
3636 if ( ! chain . length ) return url
@@ -42,43 +42,43 @@ const orReferrer = function(url, referrer) {
4242 const remainingChain = chain . slice ( 0 , - 1 )
4343 const destination = chain [ chain . length - 1 ]
4444
45- return `${ destination } ?referrer =${ remainingChain . join ( ',' ) } `
45+ return `${ destination } ?referrerChain =${ remainingChain . join ( ',' ) } `
4646}
4747
4848/**
4949 * Add referrer to URL as query parameter
5050 * @param {string } url - Base URL
51- * @param {string } referrer - Referrer to append
51+ * @param {string } referrerChain - Referrer to append
5252 * @returns {string } URL with referrer query param
5353 * @example
5454 * // In templates:
55- * <a href="{{ '/next-page' | withReferrer (referrer) }}">Continue</a>
55+ * <a href="{{ '/next-page' | urlWithReferrer (referrer) }}">Continue</a>
5656 */
57- const withReferrer = ( url , referrer ) => {
58- if ( ! referrer ) return url
59- return `${ url } ?referrer =${ referrer } `
57+ const urlWithReferrer = ( url , referrerChain ) => {
58+ if ( ! referrerChain ) return url
59+ return `${ url } ?referrerChain =${ referrerChain } `
6060}
6161
6262/**
6363 * Append a URL to an existing referrer chain
64- * @param {string|Array } existingReferrer - Existing referrer chain
64+ * @param {string|Array } existingReferrerChain - Existing referrer chain
6565 * @param {string } newUrl - URL to append
6666 * @returns {string } Combined referrer chain
6767 * @example
6868 * // In templates:
69- * {% set updatedReferrer = referrer | appendReferrer(currentUrl) %}
69+ * {% set updatedReferrer = referrerChain | appendReferrer(currentUrl) %}
7070 */
71- const appendReferrer = ( existingReferrer , newUrl ) => {
72- if ( ! newUrl ) return existingReferrer
73- if ( ! existingReferrer ) return newUrl
71+ const appendReferrer = ( existingReferrerChain , newUrl ) => {
72+ if ( ! newUrl ) return existingReferrerChain
73+ if ( ! existingReferrerChain ) return newUrl
7474
7575 const chain = parseReferrerChain ( existingReferrer )
7676 chain . push ( newUrl )
7777 return chain . join ( ',' )
7878}
7979
8080module . exports = {
81- orReferrer ,
82- withReferrer ,
81+ getReturnUrl ,
82+ urlWithReferrer ,
8383 appendReferrer,
8484}
0 commit comments