diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-09 10:55:03 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-09 13:09:38 +0100 |
| commit | 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch) | |
| tree | 5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js | |
| parent | 7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff) | |
| download | ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2 ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip | |
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js')
| -rw-r--r-- | srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js new file mode 100644 index 0000000..c15d51a --- /dev/null +++ b/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/src/cleaner.js @@ -0,0 +1,128 @@ +'use strict'; + +const realTypes = [ + 'string', + 'boolean', + 'integer', + 'numeric', + 'enumeration', + 'set', + 'directory name', + 'file name', + 'byte', +]; + +/** + * Clean type using real types + * @param {String} type The type + * @return {String|undefined} The cleaned type + */ +const cleanType = function(type) { + if (realTypes.includes(type) === false && typeof type === 'string') { + if (type.match(/in bytes/i) || type.match(/number of bytes/i) || type.match(/size in mb/i)) { + type = 'byte'; + } else if ( + type.match(/number of/i) || + type.match(/size of/i) || + type.match(/in microseconds/i) || + type.match(/in seconds/i) + ) { + type = 'integer'; + } else if ( + type.match(/numeric (64-bit unsigned integer)/i) || + type.match(/numeric (32-bit unsigned integer)/i) + ) { + type = 'numeric'; + } else { + type = undefined; + } + } + return type; +}; + +const regexCli = /([-]{2})([0-9a-z-_]+)/i; + +/** + * Clean cli argument + * @param {String} cli The command line string + * @param {boolean} skipRegex Skip regex check + * @returns {String} The cleaned cli + */ +const cleanCli = function(cli, skipRegex = false) { + if (typeof cli === 'string') { + if (cli.match(/<code\>/i) || cli.match(/<\/code\>/i)) { + cli = cli.replace(/<code\>/gi, ''); + cli = cli.replace(/<\/code\>/gi, ''); + cli = cli.replace(/\>/gi, ''); + cli = cli.replace(/</gi, ''); + } + if (!cli.match(regexCli) && skipRegex === false) { + cli = undefined; + } + } + return cli; +}; + +/** + * Clean the range object + * @param {Object} range The range object + * @returns {Object} The cleaned range object + */ +const cleanRange = function(range) { + if (range !== undefined) { + // clean range + if (typeof range.from !== 'number' || isNaN(range.from)) { + delete range.from; + } + if (typeof range.to === 'string' && range.to.match(/upwards/i)) { + range.to = 'upwards'; + } else if (typeof range.to !== 'number' || isNaN(range.to)) { + delete range.to; + } + } + return range; +}; + +/** + * Clean a default value + * @param {String} defaultValue The default value + * @returns {String} The same or an alternative formated text + */ +const cleanDefault = function(defaultValue) { + return defaultValue + .split('\n') + .map(el => cleanTextDefault(el.trim())) + .join(', '); +}; + +/** + * Clean text of a default value + * @param {String} defaultTextValue The default text value + * @returns {String} The same or an alternative text + */ +const cleanTextDefault = function(defaultTextValue) { + if (defaultTextValue === 'Autosized (see description)') { + defaultTextValue = '(autosized)'; + } + if (defaultTextValue.indexOf('Based on the number of processors') !== -1) { + defaultTextValue = '(based on the number of processors)'; + } + if (defaultTextValue === 'The MariaDB data directory') { + defaultTextValue = '(the MariaDB data directory)'; + } + if (defaultTextValue.match(/-1 \(signifies (autoscaling); do not assign this literal value\)/g)) { + defaultTextValue = '(-1 signifies autoscaling; do not use -1)'; + } + if (defaultTextValue.match(/-1 \(signifies (autosizing); do not assign this literal value\)/g)) { + defaultTextValue = '(-1 signifies autosizing; do not use -1)'; + } + return defaultTextValue; +}; + +module.exports = { + regexCli: regexCli, + cleanType: cleanType, + cleanCli: cleanCli, + cleanRange: cleanRange, + cleanDefault: cleanDefault, +}; |
