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.

parse.js 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = parse;
  6. var _Document = _interopRequireDefault(require("./Document"));
  7. var _ParseContext = _interopRequireDefault(require("./ParseContext"));
  8. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  9. // Published as 'yaml/parse-cst'
  10. function parse(src) {
  11. const cr = [];
  12. if (src.indexOf('\r') !== -1) {
  13. src = src.replace(/\r\n?/g, (match, offset) => {
  14. if (match.length > 1) cr.push(offset);
  15. return '\n';
  16. });
  17. }
  18. const documents = [];
  19. let offset = 0;
  20. do {
  21. const doc = new _Document.default();
  22. const context = new _ParseContext.default({
  23. src
  24. });
  25. offset = doc.parse(context, offset);
  26. documents.push(doc);
  27. } while (offset < src.length);
  28. documents.setOrigRanges = () => {
  29. if (cr.length === 0) return false;
  30. for (let i = 1; i < cr.length; ++i) cr[i] -= i;
  31. let crOffset = 0;
  32. for (let i = 0; i < documents.length; ++i) {
  33. crOffset = documents[i].setOrigRanges(cr, crOffset);
  34. }
  35. cr.splice(0, cr.length);
  36. return true;
  37. };
  38. documents.toString = () => documents.join('...\n');
  39. return documents;
  40. }