Scalar.d.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import type { BlockScalar, FlowScalar } from '../parse/cst.js';
  2. import { NodeBase, Range } from './Node.js';
  3. import { ToJSContext } from './toJS.js';
  4. export declare const isScalarValue: (value: unknown) => boolean;
  5. export declare namespace Scalar {
  6. interface Parsed extends Scalar {
  7. range: Range;
  8. source: string;
  9. srcToken?: FlowScalar | BlockScalar;
  10. }
  11. type BLOCK_FOLDED = 'BLOCK_FOLDED';
  12. type BLOCK_LITERAL = 'BLOCK_LITERAL';
  13. type PLAIN = 'PLAIN';
  14. type QUOTE_DOUBLE = 'QUOTE_DOUBLE';
  15. type QUOTE_SINGLE = 'QUOTE_SINGLE';
  16. type Type = BLOCK_FOLDED | BLOCK_LITERAL | PLAIN | QUOTE_DOUBLE | QUOTE_SINGLE;
  17. }
  18. export declare class Scalar<T = unknown> extends NodeBase {
  19. static readonly BLOCK_FOLDED = "BLOCK_FOLDED";
  20. static readonly BLOCK_LITERAL = "BLOCK_LITERAL";
  21. static readonly PLAIN = "PLAIN";
  22. static readonly QUOTE_DOUBLE = "QUOTE_DOUBLE";
  23. static readonly QUOTE_SINGLE = "QUOTE_SINGLE";
  24. value: T;
  25. /** An optional anchor on this node. Used by alias nodes. */
  26. anchor?: string;
  27. /**
  28. * By default (undefined), numbers use decimal notation.
  29. * The YAML 1.2 core schema only supports 'HEX' and 'OCT'.
  30. * The YAML 1.1 schema also supports 'BIN' and 'TIME'
  31. */
  32. format?: string;
  33. /** If `value` is a number, use this value when stringifying this node. */
  34. minFractionDigits?: number;
  35. /** Set during parsing to the source string value */
  36. source?: string;
  37. /** The scalar style used for the node's string representation */
  38. type?: Scalar.Type;
  39. constructor(value: T);
  40. toJSON(arg?: any, ctx?: ToJSContext): any;
  41. toString(): string;
  42. }