Dashboard sipadu mbip
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.

index.js 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _parse = _interopRequireDefault(require("./cst/parse"));
  7. var _Document = _interopRequireDefault(require("./Document"));
  8. var _errors = require("./errors");
  9. var _schema = _interopRequireDefault(require("./schema"));
  10. var _warnings = require("./warnings");
  11. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  12. const defaultOptions = {
  13. anchorPrefix: 'a',
  14. customTags: null,
  15. keepCstNodes: false,
  16. keepNodeTypes: true,
  17. keepBlobsInJSON: true,
  18. mapAsMap: false,
  19. maxAliasCount: 100,
  20. prettyErrors: false,
  21. // TODO Set true in v2
  22. simpleKeys: false,
  23. version: '1.2'
  24. };
  25. function createNode(value, wrapScalars = true, tag) {
  26. if (tag === undefined && typeof wrapScalars === 'string') {
  27. tag = wrapScalars;
  28. wrapScalars = true;
  29. }
  30. const options = Object.assign({}, _Document.default.defaults[defaultOptions.version], defaultOptions);
  31. const schema = new _schema.default(options);
  32. return schema.createNode(value, wrapScalars, tag);
  33. }
  34. class Document extends _Document.default {
  35. constructor(options) {
  36. super(Object.assign({}, defaultOptions, options));
  37. }
  38. }
  39. function parseAllDocuments(src, options) {
  40. const stream = [];
  41. let prev;
  42. for (const cstDoc of (0, _parse.default)(src)) {
  43. const doc = new Document(options);
  44. doc.parse(cstDoc, prev);
  45. stream.push(doc);
  46. prev = doc;
  47. }
  48. return stream;
  49. }
  50. function parseDocument(src, options) {
  51. const cst = (0, _parse.default)(src);
  52. const doc = new Document(options).parse(cst[0]);
  53. if (cst.length > 1) {
  54. const errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()';
  55. doc.errors.unshift(new _errors.YAMLSemanticError(cst[1], errMsg));
  56. }
  57. return doc;
  58. }
  59. function parse(src, options) {
  60. const doc = parseDocument(src, options);
  61. doc.warnings.forEach(warning => (0, _warnings.warn)(warning));
  62. if (doc.errors.length > 0) throw doc.errors[0];
  63. return doc.toJSON();
  64. }
  65. function stringify(value, options) {
  66. const doc = new Document(options);
  67. doc.contents = value;
  68. return String(doc);
  69. }
  70. var _default = {
  71. createNode,
  72. defaultOptions,
  73. Document,
  74. parse,
  75. parseAllDocuments,
  76. parseCST: _parse.default,
  77. parseDocument,
  78. stringify
  79. };
  80. exports.default = _default;