@cran/lib.gql.core
Version:
GQL Core Functionality
27 lines (20 loc) • 562 B
text/typescript
import { createScalar } from "../utilities";
export const RealScalar = createScalar(
"real", "variable-precision, exact", {
string ( value, invalid ) {
if ((/e/iu).test(value)) {
const number = Number(value);
if (isNaN(number)) { invalid(); }
return `${number}`;
}
if (!(/[+-]?\d+(\.\d+)?/u).test(value)) { invalid(); }
return invalid();
},
number ( value, invalid ) {
return isNaN(value) ? invalid() : (`${value}`);
},
boolean ( value ) {
return `${+value}`;
},
}
);