tprompter
Version:
```bash $ ask anything ```
29 lines (28 loc) • 874 B
JavaScript
import { StringParserError } from './errors/StringParserError.js';
export class StringParsers {
static booleanParser(raw, strict = false) {
if (typeof raw === 'boolean') {
return raw;
}
if (strict) {
if (raw === 'true' || raw === '1') {
return true;
}
if (raw === 'false' || raw === '0') {
return false;
}
throw new StringParserError(`${raw}`, 'boolean');
}
return StringParsers.stringParser(raw).toLowerCase() === 'true';
}
static stringParser(raw) {
return `${raw}`;
}
static numberParser(raw, strict = false) {
const parsed = parseInt(`${raw}`, 10);
if (strict && isNaN(parsed)) {
throw new StringParserError(`${raw}`, 'number');
}
return parsed;
}
}