shoe-converter
Version:
Making it possible to convert the shoe size and gender of one brand to another.
47 lines (46 loc) • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getSizes = exports.isGenderMan = exports.isGenderAvailable = exports.convertGenderSynonym = exports.isGenderManageable = exports.isSizeFormatValid = exports.isTypeValid = exports.capitalizeFirstLetter = void 0;
const constants_1 = require("../constants/constants");
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
exports.capitalizeFirstLetter = capitalizeFirstLetter;
function isTypeValid(parameter) {
return typeof parameter === "string";
}
exports.isTypeValid = isTypeValid;
function isSizeFormatValid(size) {
const regex = /^(?:\d{1,2}(?:\s\d\/\d)?|\d+\.\d+)$/;
return regex.test(size);
}
exports.isSizeFormatValid = isSizeFormatValid;
function isGenderManageable(providedGender) {
return Object.values(constants_1.Gender).includes(providedGender);
}
exports.isGenderManageable = isGenderManageable;
function convertGenderSynonym(gender) {
if (gender === constants_1.Gender.Male) {
return constants_1.Gender.Men;
}
if (gender === constants_1.Gender.Female) {
return constants_1.Gender.Women;
}
return gender;
}
exports.convertGenderSynonym = convertGenderSynonym;
function isGenderAvailable(data, brand, system, gender) {
return gender in data[brand][system];
}
exports.isGenderAvailable = isGenderAvailable;
function isGenderMan(gender) {
return gender === constants_1.Gender.Men;
}
exports.isGenderMan = isGenderMan;
function getSizes(data, brand, system, isMan) {
if (isMan) {
return data[brand][system][constants_1.Gender.Men];
}
return data[brand][system][constants_1.Gender.Women];
}
exports.getSizes = getSizes;