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.
		
		
		
		
		
			
		
			
				
					80 lines
				
				2.0 KiB
			
		
		
			
		
	
	
					80 lines
				
				2.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var parseCst = require('./parse-cst.js');
							 | 
						||
| 
								 | 
							
								var Document$1 = require('./Document-9b4560a1.js');
							 | 
						||
| 
								 | 
							
								var Schema = require('./Schema-88e323a7.js');
							 | 
						||
| 
								 | 
							
								var PlainValue = require('./PlainValue-ec8e588e.js');
							 | 
						||
| 
								 | 
							
								var warnings = require('./warnings-1000a372.js');
							 | 
						||
| 
								 | 
							
								require('./resolveSeq-d03cb037.js');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function createNode(value, wrapScalars = true, tag) {
							 | 
						||
| 
								 | 
							
								  if (tag === undefined && typeof wrapScalars === 'string') {
							 | 
						||
| 
								 | 
							
								    tag = wrapScalars;
							 | 
						||
| 
								 | 
							
								    wrapScalars = true;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions);
							 | 
						||
| 
								 | 
							
								  const schema = new Schema.Schema(options);
							 | 
						||
| 
								 | 
							
								  return schema.createNode(value, wrapScalars, tag);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class Document extends Document$1.Document {
							 | 
						||
| 
								 | 
							
								  constructor(options) {
							 | 
						||
| 
								 | 
							
								    super(Object.assign({}, Document$1.defaultOptions, options));
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function parseAllDocuments(src, options) {
							 | 
						||
| 
								 | 
							
								  const stream = [];
							 | 
						||
| 
								 | 
							
								  let prev;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  for (const cstDoc of parseCst.parse(src)) {
							 | 
						||
| 
								 | 
							
								    const doc = new Document(options);
							 | 
						||
| 
								 | 
							
								    doc.parse(cstDoc, prev);
							 | 
						||
| 
								 | 
							
								    stream.push(doc);
							 | 
						||
| 
								 | 
							
								    prev = doc;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return stream;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function parseDocument(src, options) {
							 | 
						||
| 
								 | 
							
								  const cst = parseCst.parse(src);
							 | 
						||
| 
								 | 
							
								  const doc = new Document(options).parse(cst[0]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (cst.length > 1) {
							 | 
						||
| 
								 | 
							
								    const errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()';
							 | 
						||
| 
								 | 
							
								    doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg));
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return doc;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function parse(src, options) {
							 | 
						||
| 
								 | 
							
								  const doc = parseDocument(src, options);
							 | 
						||
| 
								 | 
							
								  doc.warnings.forEach(warning => warnings.warn(warning));
							 | 
						||
| 
								 | 
							
								  if (doc.errors.length > 0) throw doc.errors[0];
							 | 
						||
| 
								 | 
							
								  return doc.toJSON();
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function stringify(value, options) {
							 | 
						||
| 
								 | 
							
								  const doc = new Document(options);
							 | 
						||
| 
								 | 
							
								  doc.contents = value;
							 | 
						||
| 
								 | 
							
								  return String(doc);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const YAML = {
							 | 
						||
| 
								 | 
							
								  createNode,
							 | 
						||
| 
								 | 
							
								  defaultOptions: Document$1.defaultOptions,
							 | 
						||
| 
								 | 
							
								  Document,
							 | 
						||
| 
								 | 
							
								  parse,
							 | 
						||
| 
								 | 
							
								  parseAllDocuments,
							 | 
						||
| 
								 | 
							
								  parseCST: parseCst.parse,
							 | 
						||
| 
								 | 
							
								  parseDocument,
							 | 
						||
| 
								 | 
							
								  scalarOptions: Document$1.scalarOptions,
							 | 
						||
| 
								 | 
							
								  stringify
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.YAML = YAML;
							 |