| import { Scalar } from '../../nodes/Scalar.js'; | |
| import { map } from '../common/map.js'; | |
| import { seq } from '../common/seq.js'; | |
| function intIdentify(value) { | |
| return typeof value === 'bigint' || Number.isInteger(value); | |
| } | |
| const stringifyJSON = ({ value }) => JSON.stringify(value); | |
| const jsonScalars = [ | |
| { | |
| identify: value => typeof value === 'string', | |
| default: true, | |
| tag: 'tag:yaml.org,2002:str', | |
| resolve: str => str, | |
| stringify: stringifyJSON | |
| }, | |
| { | |
| identify: value => value == null, | |
| createNode: () => new Scalar(null), | |
| default: true, | |
| tag: 'tag:yaml.org,2002:null', | |
| test: /^null$/, | |
| resolve: () => null, | |
| stringify: stringifyJSON | |
| }, | |
| { | |
| identify: value => typeof value === 'boolean', | |
| default: true, | |
| tag: 'tag:yaml.org,2002:bool', | |
| test: /^true$|^false$/, | |
| resolve: str => str === 'true', | |
| stringify: stringifyJSON | |
| }, | |
| { | |
| identify: intIdentify, | |
| default: true, | |
| tag: 'tag:yaml.org,2002:int', | |
| test: /^-?(?:0|[1-9][0-9]*)$/, | |
| resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10), | |
| stringify: ({ value }) => intIdentify(value) ? value.toString() : JSON.stringify(value) | |
| }, | |
| { | |
| identify: value => typeof value === 'number', | |
| default: true, | |
| tag: 'tag:yaml.org,2002:float', | |
| test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/, | |
| resolve: str => parseFloat(str), | |
| stringify: stringifyJSON | |
| } | |
| ]; | |
| const jsonError = { | |
| default: true, | |
| tag: '', | |
| test: /^/, | |
| resolve(str, onError) { | |
| onError(`Unresolved plain scalar ${JSON.stringify(str)}`); | |
| return str; | |
| } | |
| }; | |
| const schema = [map, seq].concat(jsonScalars, jsonError); | |
| export { schema }; | |
Xet Storage Details
- Size:
- 1.87 kB
- Xet hash:
- 438f0449a317e460227ed1a4e95374cf91e952fc7282fa21db368310c5064561
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.