gauge-ts
Version:
Typescript runner for Gauge
35 lines (34 loc) • 992 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrimitiveParser = void 0;
class PrimitiveParser {
converters = [];
constructor() {
this.converters.push(this.convertToNumber);
this.converters.push(this.convertToBoolean);
}
canParse(parameter) {
return true;
}
parse(parameter) {
const paramValue = parameter.getValue();
for (const converter of this.converters) {
const v = converter(paramValue);
if (v !== undefined) {
return v;
}
}
return paramValue;
}
convertToNumber(value) {
if (value.trim() === "") {
return undefined;
}
const num = Number(value);
return Number.isFinite(num) ? num : undefined;
}
convertToBoolean(value) {
return value === "true" || value === "false" ? value === "true" : undefined;
}
}
exports.PrimitiveParser = PrimitiveParser;