Befor generating
This commit is contained in:
+59
@@ -0,0 +1,59 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var chai_1 = require("chai");
|
||||
var YAML = require("../src/");
|
||||
var util = require("./testUtil");
|
||||
suite('YAML Syntax', function () {
|
||||
test('Allow astral characters', function () {
|
||||
var key = '𝑘𝑒𝑦';
|
||||
var value = '𝑣𝑎𝑙𝑢𝑒';
|
||||
var document = YAML.safeLoad(key + ": " + value);
|
||||
chai_1.assert.deepEqual(document.mappings[0].key.value, key);
|
||||
chai_1.assert.deepEqual(document.mappings[0].value.value, value);
|
||||
});
|
||||
test('Forbid non-printable characters', function () {
|
||||
testErrors('\x01', [{
|
||||
line: 1,
|
||||
column: 0,
|
||||
message: 'the stream contains non-printable characters',
|
||||
isWarning: false
|
||||
}]);
|
||||
testErrors('\x7f', [{
|
||||
line: 1,
|
||||
column: 0,
|
||||
message: 'the stream contains non-printable characters',
|
||||
isWarning: false
|
||||
}]);
|
||||
testErrors('\x9f', [{
|
||||
line: 1,
|
||||
column: 0,
|
||||
message: 'the stream contains non-printable characters',
|
||||
isWarning: false
|
||||
}]);
|
||||
});
|
||||
test('Forbid lone surrogates', function () {
|
||||
testErrors('\udc00\ud800', [{
|
||||
line: 1,
|
||||
column: 0,
|
||||
message: 'the stream contains non-printable characters',
|
||||
isWarning: false
|
||||
}]);
|
||||
});
|
||||
test('Allow non-printable characters inside quoted scalars', function () {
|
||||
var key = '"\x7f\x9f\udc00\ud800"';
|
||||
var document = YAML.safeLoad(key);
|
||||
chai_1.assert.deepEqual(document.value, '\x7f\x9f\udc00\ud800');
|
||||
});
|
||||
test('Forbid control sequences inside quoted scalars', function () {
|
||||
testErrors('"\x03"', [{
|
||||
line: 0,
|
||||
column: 2,
|
||||
message: 'expected valid JSON character',
|
||||
isWarning: false
|
||||
}]);
|
||||
});
|
||||
});
|
||||
function testErrors(input, expectedErrors) {
|
||||
util.testErrors(input, expectedErrors);
|
||||
}
|
||||
//# sourceMappingURL=characterSet.test.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"characterSet.test.js","sourceRoot":"","sources":["../../test/characterSet.test.ts"],"names":[],"mappings":";;AAAA,6BAA8B;AAC9B,8BAAgC;AAChC,iCAAmC;AAEnC,KAAK,CAAC,aAAa,EAAE;IACpB,IAAI,CAAC,yBAAyB,EAAE;QAC/B,IAAM,GAAG,GAAG,QAAQ,CAAC;QACrB,IAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAI,GAAG,UAAK,KAAO,CAAC,CAAC;QAEnD,aAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,aAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE;QACvC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,8CAA8C;gBACtD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;QAEJ,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,8CAA8C;gBACtD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;QAEJ,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,8CAA8C;gBACtD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE;QAC9B,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC3B,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,8CAA8C;gBACtD,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sDAAsD,EAAE;QAC5D,IAAM,GAAG,GAAG,wBAAwB,CAAC;QACrC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEpC,aAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE;QACtD,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACrB,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,CAAC;gBACT,OAAO,EAAC,+BAA+B;gBACvC,SAAS,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AAEJ,CAAC,CAAC,CAAC;AAEH,oBAAoB,KAAa,EAAE,cAAgC;IAClE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACxC,CAAC"}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
"use strict";
|
||||
var __extends = (this && this.__extends) || (function () {
|
||||
var extendStatics = Object.setPrototypeOf ||
|
||||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
||||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
||||
return function (d, b) {
|
||||
extendStatics(d, b);
|
||||
function __() { this.constructor = d; }
|
||||
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
||||
};
|
||||
})();
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var YAML = require("../src/");
|
||||
var visitor_1 = require("./visitor");
|
||||
var chai = require("chai");
|
||||
var assert = chai.assert;
|
||||
function structure(node) {
|
||||
return new DuplicateStructureBuilder().accept(node);
|
||||
}
|
||||
suite('Loading a single document', function () {
|
||||
test('should work with document-end delimiters', function () {
|
||||
var input = "---\nwhatever: true\n...";
|
||||
var doc = YAML.safeLoad(input);
|
||||
var expected_structure = YAML.newMap([YAML.newMapping(YAML.newScalar('whatever'), YAML.newScalar('true'))]);
|
||||
assert.deepEqual(structure(doc), expected_structure);
|
||||
assert.lengthOf(doc.errors, 0, "Found error(s): " + doc.errors.toString() + " when expecting none.");
|
||||
});
|
||||
test('Document end position should be equal to input length', function () {
|
||||
var input = "\nouter:\ninner:\n ";
|
||||
var doc1 = YAML.load(input);
|
||||
assert.deepEqual(doc1.endPosition, input.length);
|
||||
});
|
||||
});
|
||||
suite('Loading multiple documents', function () {
|
||||
test('should work with document-end delimiters', function () {
|
||||
var docs = [];
|
||||
YAML.loadAll("---\nwhatever: true\n...\n---\nwhatever: false\n...", function (d) { return docs.push(d); });
|
||||
var expected_structure = [
|
||||
YAML.newMap([YAML.newMapping(YAML.newScalar('whatever'), YAML.newScalar('true'))]),
|
||||
YAML.newMap([YAML.newMapping(YAML.newScalar('whatever'), YAML.newScalar('false'))])
|
||||
];
|
||||
assert.deepEqual(docs.map(function (d) { return structure(d); }), expected_structure);
|
||||
docs.forEach(function (doc) {
|
||||
return assert.lengthOf(doc.errors, 0, "Found error(s): " + doc.errors.toString() + " when expecting none.");
|
||||
});
|
||||
});
|
||||
test('Last document end position should be equal to input length', function () {
|
||||
var input = "\nouter1:\ninner1:\n...\n---\nouter2:\ninner2:\n ";
|
||||
var documents = [];
|
||||
YAML.loadAll(input, function (x) { return documents.push(x); });
|
||||
var doc2 = documents[1];
|
||||
assert.deepEqual(doc2.endPosition, input.length);
|
||||
});
|
||||
});
|
||||
var DuplicateStructureBuilder = (function (_super) {
|
||||
__extends(DuplicateStructureBuilder, _super);
|
||||
function DuplicateStructureBuilder() {
|
||||
return _super !== null && _super.apply(this, arguments) || this;
|
||||
}
|
||||
DuplicateStructureBuilder.prototype.visitScalar = function (node) {
|
||||
return YAML.newScalar(node.value);
|
||||
};
|
||||
DuplicateStructureBuilder.prototype.visitMapping = function (node) {
|
||||
return YAML.newMapping(this.visitScalar(node.key), this.accept(node.value));
|
||||
};
|
||||
DuplicateStructureBuilder.prototype.visitSequence = function (node) {
|
||||
var _this = this;
|
||||
var seq = YAML.newSeq();
|
||||
seq.items = node.items.map(function (n) { return _this.accept(n); });
|
||||
return seq;
|
||||
};
|
||||
DuplicateStructureBuilder.prototype.visitMap = function (node) {
|
||||
var _this = this;
|
||||
return YAML.newMap(node.mappings.map(function (n) { return _this.accept(n); }));
|
||||
};
|
||||
DuplicateStructureBuilder.prototype.visitAnchorRef = function (node) {
|
||||
throw new Error("Method not implemented.");
|
||||
};
|
||||
DuplicateStructureBuilder.prototype.visitIncludeRef = function (node) {
|
||||
throw new Error("Method not implemented.");
|
||||
};
|
||||
return DuplicateStructureBuilder;
|
||||
}(visitor_1.AbstractVisitor));
|
||||
//# sourceMappingURL=loader.test.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../test/loader.test.ts"],"names":[],"mappings":"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"}
|
||||
Generated
Vendored
+132
@@ -0,0 +1,132 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var chai = require("chai");
|
||||
var assert = chai.assert;
|
||||
var scalarInference_1 = require("../src/scalarInference");
|
||||
var Yaml = require("../src/index");
|
||||
suite('determineScalarType', function () {
|
||||
function determineScalarType(scalar) {
|
||||
return scalarInference_1.determineScalarType(scalar);
|
||||
}
|
||||
function safeLoad(input) {
|
||||
return Yaml.safeLoad(input, {});
|
||||
}
|
||||
var _test = test;
|
||||
suite('Plain Tag Resolution', function () {
|
||||
function test(name, type, acceptable) {
|
||||
_test(name, function () {
|
||||
for (var _i = 0, acceptable_1 = acceptable; _i < acceptable_1.length; _i++) {
|
||||
var word = acceptable_1[_i];
|
||||
assert.strictEqual(determineScalarType(safeLoad(word)), type, word);
|
||||
}
|
||||
});
|
||||
}
|
||||
;
|
||||
test('boolean', scalarInference_1.ScalarType.bool, ["true", "True", "TRUE", "false", "False", "FALSE"]);
|
||||
test("null", scalarInference_1.ScalarType.null, ["null", "Null", "NULL", "~", ""]);
|
||||
_test("null as from an array", function () {
|
||||
var node = Yaml.newScalar('');
|
||||
node.plainScalar = true;
|
||||
assert.strictEqual(determineScalarType(node), scalarInference_1.ScalarType.null, "unquoted empty string");
|
||||
});
|
||||
test("integer", scalarInference_1.ScalarType.int, ["0", "0o7", "0x3A", "-19"]);
|
||||
test("float", scalarInference_1.ScalarType.float, ["0.", "-0.0", ".5", "+12e03", "-2E+05"]);
|
||||
test("float-infinity", scalarInference_1.ScalarType.float, [".inf", "-.Inf", "+.INF"]);
|
||||
test("float-NaN", scalarInference_1.ScalarType.float, [".nan", ".NaN", ".NAN"]);
|
||||
test("string", scalarInference_1.ScalarType.string, ["'true'", "TrUe", "nULl", "''", "'0'", '"1"', '" .5"', ".inF", ".nAn"]);
|
||||
});
|
||||
suite('Flow style', function () {
|
||||
test('still recognizes types', function () {
|
||||
var node = safeLoad("[ null,\n true,\n 0,\n 0.,\n .inf,\n .nan,\n \"-123\n345\"\n]");
|
||||
var expected = [scalarInference_1.ScalarType.null, scalarInference_1.ScalarType.bool, scalarInference_1.ScalarType.int, scalarInference_1.ScalarType.float, scalarInference_1.ScalarType.float, scalarInference_1.ScalarType.float, scalarInference_1.ScalarType.string];
|
||||
assert.deepEqual(node.items.map(function (d) { return determineScalarType(d); }), expected);
|
||||
});
|
||||
});
|
||||
suite('Block styles', function () {
|
||||
var variations = ['>', '|', '>8', '|+1', '>-', '>+', '|-', '|+'];
|
||||
test('are always strings', function () {
|
||||
for (var _i = 0, variations_1 = variations; _i < variations_1.length; _i++) {
|
||||
var variant = variations_1[_i];
|
||||
assert.deepEqual(determineScalarType(safeLoad(variant + "\n 123")), scalarInference_1.ScalarType.string);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
suite('parseYamlInteger', function () {
|
||||
test('decimal', function () {
|
||||
assert.strictEqual(scalarInference_1.parseYamlInteger("0"), 0);
|
||||
assert.strictEqual(scalarInference_1.parseYamlInteger("-19"), -19);
|
||||
assert.strictEqual(scalarInference_1.parseYamlInteger("+1"), 1);
|
||||
});
|
||||
test('hexadecimal', function () {
|
||||
assert.strictEqual(scalarInference_1.parseYamlInteger("0x3A"), 58);
|
||||
});
|
||||
test('octal', function () {
|
||||
assert.strictEqual(scalarInference_1.parseYamlInteger("0o7"), 7);
|
||||
});
|
||||
test('otherwise', function () {
|
||||
var error;
|
||||
try {
|
||||
scalarInference_1.parseYamlInteger("'1'");
|
||||
}
|
||||
catch (e) {
|
||||
error = e;
|
||||
}
|
||||
assert(error, "should have thrown");
|
||||
});
|
||||
});
|
||||
suite('parseYamlBoolean', function () {
|
||||
test('true', function () {
|
||||
for (var _i = 0, _a = ["true", "True", "TRUE"]; _i < _a.length; _i++) {
|
||||
var value = _a[_i];
|
||||
assert.strictEqual(scalarInference_1.parseYamlBoolean(value), true, value);
|
||||
}
|
||||
});
|
||||
test('false', function () {
|
||||
for (var _i = 0, _a = ["false", "False", "FALSE"]; _i < _a.length; _i++) {
|
||||
var value = _a[_i];
|
||||
assert.strictEqual(scalarInference_1.parseYamlBoolean(value), false, value);
|
||||
}
|
||||
});
|
||||
test('otherwise', function () {
|
||||
var error;
|
||||
try {
|
||||
scalarInference_1.parseYamlBoolean("tRUE");
|
||||
}
|
||||
catch (e) {
|
||||
error = e;
|
||||
}
|
||||
assert(error, "should have thrown");
|
||||
});
|
||||
});
|
||||
suite('parseYamlFloat', function () {
|
||||
test('float', function () {
|
||||
var values = ["0.", "-0.0", ".5", "+12e03", "-2E+05"];
|
||||
var expected = [0, -0, 0.5, 12000, -200000];
|
||||
for (var index = 0; index < values.length; index++) {
|
||||
assert.strictEqual(scalarInference_1.parseYamlFloat(values[index]), expected[index]);
|
||||
}
|
||||
});
|
||||
test('NaN', function () {
|
||||
for (var _i = 0, _a = [".nan", ".NaN", ".NAN"]; _i < _a.length; _i++) {
|
||||
var value = _a[_i];
|
||||
assert(isNaN(scalarInference_1.parseYamlFloat(value)), "isNaN(" + value + ")");
|
||||
}
|
||||
});
|
||||
test('infinity', function () {
|
||||
assert.strictEqual(scalarInference_1.parseYamlFloat(".inf"), Infinity);
|
||||
assert.strictEqual(scalarInference_1.parseYamlFloat("-.Inf"), -Infinity);
|
||||
assert.strictEqual(scalarInference_1.parseYamlFloat(".INF"), Infinity);
|
||||
});
|
||||
test('otherwise', function () {
|
||||
var error;
|
||||
try {
|
||||
scalarInference_1.parseYamlFloat("text");
|
||||
}
|
||||
catch (e) {
|
||||
error = e;
|
||||
}
|
||||
assert(error, "should have thrown");
|
||||
});
|
||||
});
|
||||
//# sourceMappingURL=scalarInference.test.js.map
|
||||
Generated
Vendored
+1
File diff suppressed because one or more lines are too long
+55
@@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var util = require("./testUtil");
|
||||
suite('YAML Syntax', function () {
|
||||
suite('Warnings for tab symbols', function () {
|
||||
test('test 001', function () {
|
||||
testErrors("schemas:\n" +
|
||||
" - !i", [
|
||||
{
|
||||
line: 1,
|
||||
column: 4,
|
||||
message: "unknown tag <!i>",
|
||||
isWarning: false
|
||||
}
|
||||
]);
|
||||
});
|
||||
test('test 002', function () {
|
||||
testErrors("schemas:\n" +
|
||||
" - !in", [
|
||||
{
|
||||
line: 1,
|
||||
column: 4,
|
||||
message: "unknown tag <!in>",
|
||||
isWarning: false
|
||||
}
|
||||
]);
|
||||
});
|
||||
test('test 003', function () {
|
||||
testErrors("schemas:\n" +
|
||||
" - !inc", [
|
||||
{
|
||||
line: 1,
|
||||
column: 4,
|
||||
message: "unknown tag <!inc>",
|
||||
isWarning: false
|
||||
}
|
||||
]);
|
||||
});
|
||||
test('test 004', function () {
|
||||
testErrors("schemas:\n" +
|
||||
" - !incl", [
|
||||
{
|
||||
line: 1,
|
||||
column: 4,
|
||||
message: "unknown tag <!incl>",
|
||||
isWarning: false
|
||||
}
|
||||
]);
|
||||
});
|
||||
});
|
||||
});
|
||||
function testErrors(input, expectedErrors) {
|
||||
util.testErrors(input, expectedErrors);
|
||||
}
|
||||
//# sourceMappingURL=stability.test.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"stability.test.js","sourceRoot":"","sources":["../../test/stability.test.ts"],"names":[],"mappings":";;AAAA,iCAAoC;AAEpC,KAAK,CAAC,aAAa,EAAE;IAEjB,KAAK,CAAC,0BAA0B,EAAE;QAE9B,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,QAAQ,EACR;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,kBAAkB;oBAC3B,SAAS,EAAE,KAAK;iBACnB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,SAAS,EACT;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,mBAAmB;oBAC5B,SAAS,EAAE,KAAK;iBACnB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,UAAU,EACV;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,oBAAoB;oBAC7B,SAAS,EAAE,KAAK;iBACnB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,WAAW,EACX;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,qBAAqB;oBAC9B,SAAS,EAAE,KAAK;iBACnB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,oBAAoB,KAAY,EAAC,cAAgC;IAC7D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC"}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import ast = require("../src/yamlAST");
|
||||
export interface TestError {
|
||||
message: string;
|
||||
line: number;
|
||||
column: number;
|
||||
isWarning: boolean;
|
||||
}
|
||||
export declare function testErrors(input: string, expectedErrors: TestError[]): void;
|
||||
export declare function safeLoad(input: any): ast.YAMLNode;
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var chai = require("chai");
|
||||
var assert = chai.assert;
|
||||
var index_1 = require("../src/index");
|
||||
function testErrors(input, expectedErrors) {
|
||||
var errorsMap = {};
|
||||
for (var _i = 0, expectedErrors_1 = expectedErrors; _i < expectedErrors_1.length; _i++) {
|
||||
var e = expectedErrors_1[_i];
|
||||
var key = e.message + " at line " + e.line + " column " + e.column;
|
||||
if (e.isWarning) {
|
||||
key += " (warning)";
|
||||
}
|
||||
errorsMap[key] = true;
|
||||
}
|
||||
var ast = safeLoad(input);
|
||||
if (!ast) {
|
||||
assert.fail("The parser has failed to load YAML AST");
|
||||
}
|
||||
var actualErrors = ast.errors;
|
||||
if (actualErrors.length == 0 && expectedErrors.length == 0) {
|
||||
assert(true);
|
||||
return;
|
||||
}
|
||||
var unexpectedErrorsMap = {};
|
||||
for (var _a = 0, actualErrors_1 = actualErrors; _a < actualErrors_1.length; _a++) {
|
||||
var e = actualErrors_1[_a];
|
||||
var key = e.reason + " at line " + e.mark.line + " column " + e.mark.column;
|
||||
if (e.isWarning) {
|
||||
key += " (warning)";
|
||||
}
|
||||
if (!errorsMap[key]) {
|
||||
unexpectedErrorsMap[key] = e;
|
||||
}
|
||||
else {
|
||||
delete errorsMap[key];
|
||||
}
|
||||
}
|
||||
var missingErrors = Object.keys(errorsMap);
|
||||
var unexpectedErrorKeys = Object.keys(unexpectedErrorsMap);
|
||||
if (missingErrors.length == 0 && unexpectedErrorKeys.length == 0) {
|
||||
assert(true);
|
||||
return;
|
||||
}
|
||||
var messageComponents = [];
|
||||
if (unexpectedErrorKeys.length > 0) {
|
||||
messageComponents.push("Unexpected errors:\n" + unexpectedErrorKeys.join('\n'));
|
||||
}
|
||||
if (missingErrors.length > 0) {
|
||||
messageComponents.push("Missing errors:\n" + missingErrors.join('\n'));
|
||||
}
|
||||
var testFailureMessage = "\n" + messageComponents.join("\n\n");
|
||||
assert(false, testFailureMessage);
|
||||
}
|
||||
exports.testErrors = testErrors;
|
||||
;
|
||||
function safeLoad(input) {
|
||||
return index_1.safeLoad(input, {});
|
||||
}
|
||||
exports.safeLoad = safeLoad;
|
||||
//# sourceMappingURL=testUtil.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"testUtil.js","sourceRoot":"","sources":["../../test/testUtil.ts"],"names":[],"mappings":"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"}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import * as YAML from '../src/';
|
||||
export interface NodeVisitor {
|
||||
visitScalar(node: YAML.YAMLScalar): any;
|
||||
visitMapping(node: YAML.YAMLMapping): any;
|
||||
visitSequence(node: YAML.YAMLSequence): any;
|
||||
visitMap(node: YAML.YamlMap): any;
|
||||
visitAnchorRef(node: YAML.YAMLAnchorReference): any;
|
||||
visitIncludeRef(node: YAML.YAMLNode): any;
|
||||
}
|
||||
export declare abstract class AbstractVisitor implements NodeVisitor {
|
||||
accept(node: YAML.YAMLNode): any;
|
||||
abstract visitScalar(node: YAML.YAMLScalar): any;
|
||||
abstract visitMapping(node: YAML.YAMLMapping): any;
|
||||
abstract visitSequence(node: YAML.YAMLSequence): any;
|
||||
abstract visitMap(node: YAML.YamlMap): any;
|
||||
abstract visitAnchorRef(node: YAML.YAMLAnchorReference): any;
|
||||
abstract visitIncludeRef(node: YAML.YAMLNode): any;
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var YAML = require("../src/");
|
||||
var AbstractVisitor = (function () {
|
||||
function AbstractVisitor() {
|
||||
}
|
||||
AbstractVisitor.prototype.accept = function (node) {
|
||||
switch (node.kind) {
|
||||
case YAML.Kind.SCALAR: {
|
||||
return this.visitScalar(node);
|
||||
}
|
||||
case YAML.Kind.MAP: {
|
||||
return this.visitMap(node);
|
||||
}
|
||||
case YAML.Kind.MAPPING: {
|
||||
return this.visitMapping(node);
|
||||
}
|
||||
case YAML.Kind.SEQ: {
|
||||
return this.visitSequence(node);
|
||||
}
|
||||
case YAML.Kind.ANCHOR_REF: {
|
||||
return this.visitAnchorRef(node);
|
||||
}
|
||||
case YAML.Kind.INCLUDE_REF: {
|
||||
return this.visitIncludeRef(node);
|
||||
}
|
||||
}
|
||||
throw new Error("Kind, " + node.kind + " not implemented.");
|
||||
};
|
||||
return AbstractVisitor;
|
||||
}());
|
||||
exports.AbstractVisitor = AbstractVisitor;
|
||||
//# sourceMappingURL=visitor.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"visitor.js","sourceRoot":"","sources":["../../test/visitor.ts"],"names":[],"mappings":";;AAAA,8BAA+B;AAW/B;IAAA;IAgCA,CAAC;IA9BG,gCAAM,GAAN,UAAO,IAAmB;QACtB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAkB,IAAI,CAAC,CAAC;YACnD,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAe,IAAI,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAmB,IAAI,CAAC,CAAC;YACrD,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAoB,IAAI,CAAC,CAAC;YACvD,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,cAAc,CAA2B,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,WAAS,IAAI,CAAC,IAAI,sBAAmB,CAAC,CAAC;IAC3D,CAAC;IAOL,sBAAC;AAAD,CAAC,AAhCD,IAgCC;AAhCqB,0CAAe"}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var util = require("./testUtil");
|
||||
suite('YAML Syntax', function () {
|
||||
suite('Warnings for tab symbols', function () {
|
||||
test('test 001', function () {
|
||||
testErrors("schemas:\n" +
|
||||
"\tsch1:\n", [
|
||||
{
|
||||
line: 1,
|
||||
column: 0,
|
||||
message: "Using tabs can lead to unpredictable results",
|
||||
isWarning: true
|
||||
}
|
||||
]);
|
||||
});
|
||||
test('test 002', function () {
|
||||
testErrors("level0:\n" +
|
||||
" level1:\n" +
|
||||
" level2:\n" +
|
||||
" \t level3:\n", [
|
||||
{
|
||||
line: 3,
|
||||
column: 2,
|
||||
message: "Using tabs can lead to unpredictable results",
|
||||
isWarning: true
|
||||
}
|
||||
]);
|
||||
});
|
||||
});
|
||||
});
|
||||
function testErrors(input, expectedErrors) {
|
||||
util.testErrors(input, expectedErrors);
|
||||
}
|
||||
//# sourceMappingURL=yamlSyntax.test.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"yamlSyntax.test.js","sourceRoot":"","sources":["../../test/yamlSyntax.test.ts"],"names":[],"mappings":";;AAAA,iCAAoC;AAEpC,KAAK,CAAC,aAAa,EAAE;IAEjB,KAAK,CAAC,0BAA0B,EAAE;QAE9B,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,YAAY;gBACZ,WAAW,EACX;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,8CAA8C;oBACvD,SAAS,EAAE,IAAI;iBAClB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE;YACb,UAAU,CACN,WAAW;gBACX,aAAa;gBACb,eAAe;gBACf,iBAAiB,EACjB;gBACI;oBACI,IAAI,EAAE,CAAC;oBACP,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,8CAA8C;oBACvD,SAAS,EAAE,IAAI;iBAClB;aACJ,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,oBAAoB,KAAY,EAAC,cAAgC;IAC7D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AAC3C,CAAC"}
|
||||
Reference in New Issue
Block a user