@n1k1t/mock-server
Version:
Powerful util to setup mocks over HTTP APIs
49 lines • 1.89 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const deepmerge_1 = __importDefault(require("deepmerge"));
const utils_1 = require("../utils");
const utils_2 = require("../utils");
const errors_1 = require("../errors");
const models_1 = require("../models");
const expectations_1 = require("../../expectations");
const utils_3 = require("../../utils");
const config_1 = __importDefault(require("../../config"));
exports.default = models_1.ClientMethod
.build()
.register('remote', (instance) => async (body) => {
const response = await instance
.request({
data: {
id: body.id,
body: (0, utils_1.prepareExpectationBodyToRequest)(body.set),
},
...(0, utils_3.cast)({
url: `${config_1.default.get('routes').internal.root}/expectations`,
method: 'PUT',
}),
})
.catch(utils_2.handleRequestError);
return response.data.data;
})
.register('onsite', (provider) => async (body) => {
const found = provider.storages.expectations.get(body.id);
if (!found) {
return null;
}
const updated = expectations_1.Expectation.build(Object.assign((0, deepmerge_1.default)(found.configuration, body.set ?? {}, { arrayMerge: (target, source) => source }), {
name: found.name,
meta: found.meta,
id: found.id,
}));
const errors = updated.validate();
if (errors.length) {
throw new errors_1.ValidationError({}, errors);
}
provider.storages.expectations.set(body.id, updated);
provider.server?.exchanges.io.publish('expectation:updated', updated.toPlain());
return updated.toPlain();
});
//# sourceMappingURL=expectations.update.method.js.map