minecraft-utils-shared
Version:
Shared utils for Minecraft Bedrock / Forge development related utilities.
95 lines (85 loc) • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
/**
* @file Minecraft Utils Shared - Normalizer
* @license Apache-2.0
* @author Markus@Bordihn.de (Markus Bordihn)
*/
/**
* @param {string} name
* @returns {string}
*/
const normalizeClassName = (name = '') => {
return name.replace(/(^\w|\s\w)/g, firstChar => firstChar.toUpperCase()).replace(/\s+/g, '').replace(/[_-]+/g, '').replace(/[^a-zA-Z0-9]/g, '');
};
/**
* @param {string} name
* @returns {string}
*/
const normalizeClassNameSpace = (name = '') => {
return name.replace(/\s+/g, '').replace(/[_-]+/g, '').replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
};
/**
* @param {string} name
* @returns {string}
*/
const normalizeFileName = (name = '') => {
return name.replace(/\s+/g, '_').replace(':', '__').replace(/[^a-zA-Z0-9_.-]/g, '');
};
/**
* @param {string} name
* @returns {string}
*/
const normalizeModId = (name = '') => {
return name.replace(/[\s-]+/g, '_').replace(/\W/g, '').toLowerCase();
};
/**
* @param {string} name
* @returns {string}
*/
const normalizeName = (name = '') => {
return name.replace(/\s+/g, '_').replace(/[^a-zA-Z0-9_-]/g, '').toLowerCase();
};
/**
* @param {string} name
* @param {string} namespace
* @returns {string}
*/
const normalizeItemId = (name = '', namespace = 'my_items') => {
return `${normalizeName(namespace)}:${normalizeName(name)}`;
};
/**
* @param {string} name
* @param {string} namespace
* @returns {string}
*/
const normalizeBlockId = normalizeItemId;
/**
* @param {string} name
* @returns {string}
*/
const normalizePathName = (name = '') => {
return name.replace(/\s+/g, '_').replace(/[^a-zA-Z0-9_-]/g, '');
};
/**
* @param {string} name
* @returns {string}
*/
const normalizeVendorName = (name = '') => {
return name.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
};
var _default = {
normalizeBlockId,
normalizeClassName,
normalizeClassNameSpace,
normalizeFileName,
normalizeItemId,
normalizeModId,
normalizeName,
normalizePathName,
normalizeVendorName
};
exports.default = _default;