mockttp
Version:
Mock HTTP server for testing HTTP clients and stubbing webservices
38 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateMockRuleData = validateMockRuleData;
exports.serializeRuleData = serializeRuleData;
const serialization_1 = require("../serialization/serialization");
function validateMockRuleData(data) {
if (!data.matchers || data.matchers.length === 0) {
throw new Error('Cannot create a rule without at least one matcher');
}
if (!data.steps || data.steps.length === 0) {
throw new Error('Cannot create a rule with no steps');
}
}
function serializeRuleData(data, stream, options) {
validateMockRuleData(data);
// Backward compat to fall back to single-step 'handler' API for old servers
// as long as the rule is just a single step (or fail loudly if not)
const stepsOrHandler = options.supportsSteps
? {
steps: data.steps.map(step => (0, serialization_1.serialize)(step, stream))
}
: data.steps.length === 1
? {
handler: (0, serialization_1.serialize)(data.steps[0], stream)
}
: (() => {
throw new Error("Multi-step rules are not supported by the remote Mockttp server");
})();
return {
id: data.id,
priority: data.priority,
matchers: data.matchers.map(m => (0, serialization_1.serialize)(m, stream)),
...stepsOrHandler,
completionChecker: data.completionChecker && (0, serialization_1.serialize)(data.completionChecker, stream)
};
}
;
//# sourceMappingURL=rule-serialization.js.map