@itznotabug/routex
Version:
A client side redirection plugin for Vitepress.
42 lines (41 loc) • 1.11 kB
JavaScript
/**
* Default options for redirect configuration
*/
const DEFAULT_OPTIONS = {
enable: true,
addCanonical: false,
addNoIndexMeta: false,
redirectDelay: 0,
template: '',
overrideExisting: false,
ignoreDeadLinks: false,
};
/**
* Normalizes config input to always return rules + options with defaults
* @param config - Raw redirect configuration
* @returns Normalized configuration with default options
*/
export function normalizeConfig(config) {
if (isRedirectConfigObject(config)) {
return {
rules: config.rules,
options: { ...DEFAULT_OPTIONS, ...config.options },
};
}
return {
rules: config,
options: DEFAULT_OPTIONS,
};
}
/**
* Type guard to check if config is the object format with rules and options
*/
export function isRedirectConfigObject(config) {
return typeof config === 'object' && config !== null && 'rules' in config;
}
/**
* Sanitizes a path for use in file system operations
*/
export function sanitizePath(inputPath) {
return inputPath.replace(/^\/+/, '').replace(/\/+$/, '');
}