c153ed5c72d3fcef013776c9fa7e5c36c3517f34d5ff7c1e69a2b2cd30c66fe8d3c8ff4bc1f4375190e1b5a6e324f16790bbb4968a81a8dc67065eb35e875c 971 B

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