You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
842 B
29 lines
842 B
'use strict'; |
|
|
|
var Scalar = require('../../nodes/Scalar.js'); |
|
|
|
function boolStringify({ value, source }, ctx) { |
|
const boolObj = value ? trueTag : falseTag; |
|
if (source && boolObj.test.test(source)) |
|
return source; |
|
return value ? ctx.options.trueStr : ctx.options.falseStr; |
|
} |
|
const trueTag = { |
|
identify: value => value === true, |
|
default: true, |
|
tag: 'tag:yaml.org,2002:bool', |
|
test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/, |
|
resolve: () => new Scalar.Scalar(true), |
|
stringify: boolStringify |
|
}; |
|
const falseTag = { |
|
identify: value => value === false, |
|
default: true, |
|
tag: 'tag:yaml.org,2002:bool', |
|
test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i, |
|
resolve: () => new Scalar.Scalar(false), |
|
stringify: boolStringify |
|
}; |
|
|
|
exports.falseTag = falseTag; |
|
exports.trueTag = trueTag;
|
|
|