Sha256: 35c2af3594d1a78c0c157479bff9a3e4f219a76e57015d6a6959c8b8c0b68175

Contents?: true

Size: 1.96 KB

Versions: 9

Compression:

Stored size: 1.96 KB

Contents

'use strict';

var PlainValue = require('./PlainValue-ec8e588e.js');
var parseCst = require('./parse-cst.js');
require('./resolveSeq-4a68b39b.js');
var Document$1 = require('./Document-2cf6b08c.js');
var Schema = require('./Schema-42e9705c.js');
var warnings = require('./warnings-39684f17.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;

Version data entries

9 entries across 8 versions & 4 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/yaml/dist/index.js
tang-0.2.1 spec/tang_app/node_modules/yaml/dist/index.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/yaml/dist/index.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/yaml/dist/index.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/yaml/dist/index.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/yaml/dist/index.js
tang-0.2.0 spec/tang_app/node_modules/yaml/dist/index.js
tang-0.1.0 spec/tang_app/node_modules/yaml/dist/index.js
tang-0.0.9 spec/tang_app/node_modules/yaml/dist/index.js