UNPKG

mockttp

Version:

Mock HTTP server for testing HTTP clients and stubbing webservices

38 lines 1.58 kB
"use strict"; 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