dts-jest
Version:
A preprocessor for Jest to snapshot test TypeScript declaration (.d.ts) files
42 lines (41 loc) • 2.31 kB
JavaScript
;
exports.__esModule = true;
var definitions_1 = require("../definitions");
exports.parse_trigger_header_flags = function (unparsed_flags) {
var flags = 0;
unparsed_flags
.split(/(?=:)/)
.filter(function (flag_literal) { return flag_literal.length !== 0; })
.forEach(function (flag_literal) {
switch (flag_literal) {
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':fail']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':pass']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':show']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':snap']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':only']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':skip']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':group']]:
// tslint:disable-next-line:prettier
var current_flag = definitions_1.TriggerHeaderFlags[flag_literal];
if (flags & current_flag) {
throw new Error("Duplicate flag '" + flag_literal + "'");
}
flags = flags | current_flag;
break;
default:
throw new Error("Unexpected flag '" + flag_literal + "'");
}
});
if (flags & definitions_1.TriggerHeaderFlags[':pass'] &&
flags & definitions_1.TriggerHeaderFlags[':fail']) {
var pass_flag_literal = definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':pass']];
var fail_flag_literal = definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':fail']];
throw new Error(pass_flag_literal + " and " + fail_flag_literal + " cannot be used simultaneously'");
}
if (flags & definitions_1.TriggerHeaderFlags[':group'] &&
flags & definitions_1.TriggerHeaderFlags.Assertion) {
var group_flag_literal = definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':group']];
throw new Error("AssertionFlag is not allowed to be used with flag '" + group_flag_literal + "'");
}
return flags;
};