Scalar.js 759 B

123456789101112131415161718192021222324252627
  1. 'use strict';
  2. var identity = require('./identity.js');
  3. var Node = require('./Node.js');
  4. var toJS = require('./toJS.js');
  5. const isScalarValue = (value) => !value || (typeof value !== 'function' && typeof value !== 'object');
  6. class Scalar extends Node.NodeBase {
  7. constructor(value) {
  8. super(identity.SCALAR);
  9. this.value = value;
  10. }
  11. toJSON(arg, ctx) {
  12. return ctx?.keep ? this.value : toJS.toJS(this.value, arg, ctx);
  13. }
  14. toString() {
  15. return String(this.value);
  16. }
  17. }
  18. Scalar.BLOCK_FOLDED = 'BLOCK_FOLDED';
  19. Scalar.BLOCK_LITERAL = 'BLOCK_LITERAL';
  20. Scalar.PLAIN = 'PLAIN';
  21. Scalar.QUOTE_DOUBLE = 'QUOTE_DOUBLE';
  22. Scalar.QUOTE_SINGLE = 'QUOTE_SINGLE';
  23. exports.Scalar = Scalar;
  24. exports.isScalarValue = isScalarValue;