fontoxpath
Version:
A minimalistic XPath 3.1 engine in JavaScript
24 lines (22 loc) • 769 B
JavaScript
import castToFloatLikeType from './castToFloatLikeType';
import createAtomicValue from '../createAtomicValue';
/**
* @param {function(string):boolean} instanceOf
* @return {function (./AtomicValueDataType) : ({successful: boolean, value: ../AtomicValue}|{successful: boolean, error: !Error})}
*/
export default function castToFloat (instanceOf) {
/**
* @type {function (./AtomicValueDataType) : ({successful: boolean, value: ../AtomicValue}|{successful: boolean, error: !Error})}
*/
const caster = castToFloatLikeType(instanceOf, 'xs:float');
return value => {
const castResult = caster(value);
if (!castResult.successful) {
return castResult;
}
return {
successful: true,
value: createAtomicValue(castResult.value, 'xs:float')
};
};
}