@aeternity/aepp-sdk
Version:
SDK for the æternity blockchain
74 lines (66 loc) • 2.25 kB
JavaScript
import _toLower from "ramda/src/toLower";
import _toUpper from "ramda/src/toUpper";
import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
import { isAddressValid } from './crypto';
/**
* Convert string from snake_case to PascalCase
* @rtype (s: String) => String
* @param {String} s - String to convert
* @return {String} Converted string
*/
export function snakeToPascal(s) {
return s.replace(/_./g, function (match) {
return _toUpper(match[1]);
});
}
/**
* Convert string from snake_case to PascalCase
* @rtype (s: String) => String
* @param {String} s - String to convert
* @return {String} Converted string
*/
export function snakeOrKebabToPascal(s) {
return s.replace(/[_|-]./g, function (match) {
return _toUpper(match[1]);
});
}
/**
* Convert string from PascalCase to snake_case
* @rtype (s: String) => String
* @param {String} s - String to convert
* @return {String} Converted string
*/
export function pascalToSnake(s) {
return s.replace(/[A-Z]/g, function (match) {
return "_".concat(_toLower(match));
});
}
/**
* Check whether a string is valid hex.
* @param {string} str String to validate.
* @return {boolean} True if the string is valid hex, false otherwise.
*/
export function isHex(str) {
return !!(typeof str === 'string' && str.length % 2 === 0 && str.match(/^[0-9a-f]+$/i));
}
/**
* Check whether a string is Aeternity address
* @param {string} str String to validate.
* @return {boolean} True if the string is valid AE address
*/
export function isAeAddress(str) {
if (typeof str !== 'string') return false;
return str.split('_')[0].length === 2 && isAddressValid(str);
}
/**
* Check whether a string is valid base-64.
* @param {string} str String to validate.
* @return {boolean} True if the string is valid base-64, false otherwise.
*/
export function isBase64(str) {
if (str.length % 4 > 0 || str.match(/[^0-9a-z+/=]/i)) return false;
var index = _indexOfInstanceProperty(str).call(str, '=');
return !!(index === -1 || _sliceInstanceProperty(str).call(str, index).match(/={1,2}/));
}
//# sourceMappingURL=string.js.map