qapinterface
Version:
Comprehensive API utilities for Node.js applications including authentication, security, request processing, and response handling with zero external dependencies
28 lines (25 loc) • 885 B
JavaScript
/**
* Version Formatting
* Single Responsibility: Format API version strings consistently
*/
const { isNil } = require('lodash');
const localVars = require('../../config/localVars');
/**
* Formats API version strings for consistent versioning.
* @param {string|number} version - The version to format.
* @param {string} [prefix='v'] - Prefix for the version string.
* @returns {string} - Formatted version string (e.g., "v1.2.3").
*/
function formatApiVersion(version, prefix = localVars.DEFAULT_API_VERSION_PREFIX) {
if (isNil(version)) {
throw new Error('Version cannot be null or undefined');
}
const versionStr = String(version).trim();
if (!versionStr) {
throw new Error('Version cannot be empty');
}
return versionStr.toLowerCase().startsWith(prefix.toLowerCase()) ? versionStr : `${prefix}${versionStr}`;
}
module.exports = {
formatApiVersion
};