refactor : exports now simplified, removed default arg parsers as parse

method removed
This commit is contained in:
Jacob Nguyen
2022-03-26 01:34:36 -05:00
parent 2191fda383
commit c002c2782b
5 changed files with 8 additions and 92 deletions

View File

@@ -2,4 +2,8 @@ import Context from './context';
import * as Modules from './commands/module';
import type Wrapper from './wrapper';
export { Context, Modules, Wrapper };
export {
Context,
Modules,
Wrapper
};

View File

@@ -1,78 +0,0 @@
import { Err, Ok, Result } from 'ts-results';
import type { possibleOutput } from '../../../types/handler';
/**
* Wrapper type taking `Ok(T)` or `Err(possibleOutput)` e.g `Result<T, possibleOutput`
*/
export type ArgType<T> = Result<T, possibleOutput>;
/**
*
* @param {string} arg - command arguments
* @param {possibleOutput} onFailure - if `Number.parseInt` returns NaN
* @returns {ArgType<number>} Attempts to use `Number.parseInt()` on `arg`
*/
export function parseInt(arg: string, onFailure: possibleOutput): ArgType<number> {
const val = Number.parseInt(arg);
return val === NaN ? Err(onFailure) : Ok(val);
}
/**
*
* @param {string} arg - command arguments
* @param {possibleOutput} onFailure - If cannot parse `arg` into boolean.
* @param { {yesRegex: RegExp, noRegex: RegExp} } regexes - default regexes: yes : `/^(?:y(?:es)?|👍)$/i`, no : /^(?:n(?:o)?|👎)$/i
* @returns { ArgType<boolean> } attemps to parse `args` as a boolean
*/
export function parseBool(
arg: string,
onFailure: possibleOutput = `Cannot parse '${arg}' as a boolean`,
regexes: {
yesRegex: RegExp;
noRegex: RegExp;
} = {
yesRegex: /^(?:y(?:es)?|👍)$/i,
noRegex: /^(?:n(?:o)?|👎)$/i,
},
): ArgType<boolean> {
if (arg.match(regexes.yesRegex)) return Ok(true);
if (arg.match(regexes.noRegex)) return Ok(false);
return Err(onFailure);
}
/**
*
* @param {string} arg - command arguments
* @param {string} sep - default separator = ' '
* @returns {Ok<string[]>}
*/
export function toArr(arg: string, sep = ' '): ArgType<string[]> {
return Ok(arg.split(sep));
}
/**
*
* @param {string} arg - command arguments
* @param {possibleOutput} onFailure - delegates `Utils.parseInt`
* @returns {ArgType<number>}
*/
export function toPositiveInt(arg: string, onFailure: possibleOutput): ArgType<number> {
return parseInt(arg, onFailure).andThen((num) => Ok(num > 0 ? num : -num));
}
/**
*
* @param {string} arg - command arguments
* @param {possibleOutput} onFailure - delegates `parseInt`
* @returns {ArgType<number>}
*/
export function toNegativeInt(arg: string, onFailure: possibleOutput): ArgType<number> {
return parseInt(arg, onFailure).andThen((num) => Ok(num > 0 ? -num : num));
}

View File

@@ -1,5 +1,3 @@
import type { ApplicationCommandOptionData } from 'discord.js';
import { readdirSync, statSync } from 'fs';
import { join } from 'path';
import type { Module } from '../structures/commands/module';

View File

@@ -1,4 +0,0 @@
import * as Preprocessors from './preprocessors/args';
module.exports = { Preprocessors };
export { Preprocessors };

View File

@@ -1,7 +1,3 @@
import * as Sern from './handler/sern';
import * as Utils from './handler/utilities/utilsExports';
import * as Types from './types/handler';
import * as Structures from './handler/structures/structxports';
module.exports = { Sern, Utils, Types, Structures };
export { Sern, Utils, Types, Structures };
export * as Sern from './handler/sern';
export * from './types/handler';
export * from './handler/structures/structxports';