UNPKG

gauge-ts

Version:
35 lines (34 loc) 992 B
"use strict"; 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;