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