oops i need to commit this too

This commit is contained in:
ewin 2025-07-29 21:39:13 -04:00
parent 2dfa1cdbca
commit a687833764
Signed by: erin
SSH key fingerprint: SHA256:swjoHhREbZPbWe+gyJNi24d4NAxJSyUIm3fpZj4z3wc

View file

@ -0,0 +1,51 @@
import {regExpEscape} from './regexp.js';
/**
* Created a RegExp that matches an existing empty template parameter with the
* given name.
*/
const existingEmptyParameterRegExp = paramName =>
new RegExp(`^( *\\| *${regExpEscape(paramName)}( *)=) *$`, 'm');
/**
* Sets the value of an existing empty parameter.
* @param {string} pageContent
* @param {string} paramName
* @param {string} value
* @returns {string | null}
*/
export function setEmptyParameter (pageContent, paramName, value) {
const regexp = existingEmptyParameterRegExp(paramName)
if (pageContent.match(regexp)) {
return pageContent.replace(regexp, `$1$2${value}`);
}
return null;
}
/**
* Creates a RegExp that matches an existing template parameter with the given
* name.
*/
const existingParameterRegExp = paramName =>
new RegExp(`^( *)\\|( *)${regExpEscape(paramName)}( *)=( *).*$`, 'm');
/**
* Inserts a new parameter before or after an existing parameter.
* @param {string} pageContent
* @param {string} existingParamName
* @param {'before' | 'after'} location
* @param {string} newParamName
* @param {string} value
* @returns {string | null}
*/
export function addParameterBesideExistingParameter (pageContent, newParamName, value, location, existingParamName) {
let regexp = existingParameterRegExp(existingParamName);
if (pageContent.match(regexp)) {
let newParameterPattern = `$1|$2${newParamName}$3=$4${value}`;
return pageContent.replace(
regexp,
location === 'before' ? `${newParameterPattern}\n$&` : `$&\n${newParameterPattern}`
);
}
return null;
}