mirror of
https://github.com/Instadapp/Swap-Aggregator-Subgraph.git
synced 2024-07-29 21:57:12 +00:00
143 lines
2.8 KiB
JavaScript
143 lines
2.8 KiB
JavaScript
"use strict";
|
|
|
|
exports.YAML = void 0;
|
|
|
|
var _parse = require("./cst/parse");
|
|
|
|
var _Document = require("./Document");
|
|
|
|
var _errors = require("./errors");
|
|
|
|
var _schema = require("./schema");
|
|
|
|
var _options = require("./tags/options");
|
|
|
|
var _warnings = require("./warnings");
|
|
|
|
const defaultOptions = {
|
|
anchorPrefix: 'a',
|
|
customTags: null,
|
|
indent: 2,
|
|
indentSeq: true,
|
|
keepCstNodes: false,
|
|
keepNodeTypes: true,
|
|
keepBlobsInJSON: true,
|
|
mapAsMap: false,
|
|
maxAliasCount: 100,
|
|
prettyErrors: false,
|
|
// TODO Set true in v2
|
|
simpleKeys: false,
|
|
version: '1.2'
|
|
};
|
|
const scalarOptions = {
|
|
get binary() {
|
|
return _options.binaryOptions;
|
|
},
|
|
|
|
set binary(opt) {
|
|
Object.assign(_options.binaryOptions, opt);
|
|
},
|
|
|
|
get bool() {
|
|
return _options.boolOptions;
|
|
},
|
|
|
|
set bool(opt) {
|
|
Object.assign(_options.boolOptions, opt);
|
|
},
|
|
|
|
get int() {
|
|
return _options.intOptions;
|
|
},
|
|
|
|
set int(opt) {
|
|
Object.assign(_options.intOptions, opt);
|
|
},
|
|
|
|
get null() {
|
|
return _options.nullOptions;
|
|
},
|
|
|
|
set null(opt) {
|
|
Object.assign(_options.nullOptions, opt);
|
|
},
|
|
|
|
get str() {
|
|
return _options.strOptions;
|
|
},
|
|
|
|
set str(opt) {
|
|
Object.assign(_options.strOptions, opt);
|
|
}
|
|
|
|
};
|
|
|
|
function createNode(value, wrapScalars = true, tag) {
|
|
if (tag === undefined && typeof wrapScalars === 'string') {
|
|
tag = wrapScalars;
|
|
wrapScalars = true;
|
|
}
|
|
|
|
const options = Object.assign({}, _Document.Document.defaults[defaultOptions.version], defaultOptions);
|
|
const schema = new _schema.Schema(options);
|
|
return schema.createNode(value, wrapScalars, tag);
|
|
}
|
|
|
|
class Document extends _Document.Document {
|
|
constructor(options) {
|
|
super(Object.assign({}, defaultOptions, options));
|
|
}
|
|
|
|
}
|
|
|
|
function parseAllDocuments(src, options) {
|
|
const stream = [];
|
|
let prev;
|
|
|
|
for (const cstDoc of (0, _parse.parse)(src)) {
|
|
const doc = new Document(options);
|
|
doc.parse(cstDoc, prev);
|
|
stream.push(doc);
|
|
prev = doc;
|
|
}
|
|
|
|
return stream;
|
|
}
|
|
|
|
function parseDocument(src, options) {
|
|
const cst = (0, _parse.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 _errors.YAMLSemanticError(cst[1], errMsg));
|
|
}
|
|
|
|
return doc;
|
|
}
|
|
|
|
function parse(src, options) {
|
|
const doc = parseDocument(src, options);
|
|
doc.warnings.forEach(warning => (0, _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,
|
|
parse,
|
|
parseAllDocuments,
|
|
parseCST: _parse.parse,
|
|
parseDocument,
|
|
scalarOptions,
|
|
stringify
|
|
};
|
|
exports.YAML = YAML; |