bool.js (971B)
1 'use strict'; 2 3 var Type = require('../type'); 4 5 function resolveYamlBoolean(data) { 6 if (data === null) return false; 7 8 var max = data.length; 9 10 return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || 11 (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); 12 } 13 14 function constructYamlBoolean(data) { 15 return data === 'true' || 16 data === 'True' || 17 data === 'TRUE'; 18 } 19 20 function isBoolean(object) { 21 return Object.prototype.toString.call(object) === '[object Boolean]'; 22 } 23 24 module.exports = new Type('tag:yaml.org,2002:bool', { 25 kind: 'scalar', 26 resolve: resolveYamlBoolean, 27 construct: constructYamlBoolean, 28 predicate: isBoolean, 29 represent: { 30 lowercase: function (object) { return object ? 'true' : 'false'; }, 31 uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, 32 camelcase: function (object) { return object ? 'True' : 'False'; } 33 }, 34 defaultStyle: 'lowercase' 35 });