fastify-mongoose-rest
Version:
Rest API generator tools for fastify and mongoose
72 lines • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.updatePropertiesRecursive = exports.createResponseSchema = exports.parseInput = void 0;
/**
* Try safely to parse input to object. Return string if not possible.
*/
function parseInput(input) {
try {
const result = JSON.parse(input);
return result;
}
catch (error) {
return input;
}
}
exports.parseInput = parseInput;
function createResponseSchema(schema, type) {
let successResponse;
if (type === 'object') {
successResponse = { type: 'object', properties: schema };
}
if (type === 'array') {
successResponse = {
type: 'array',
items: {
type: 'object',
properties: schema,
},
};
}
return {
200: {
description: 'Success',
...successResponse,
},
400: {
description: 'Validation error',
type: 'object',
properties: {
error: { type: 'string' },
message: { type: 'string' },
},
},
500: {
description: 'Server error',
type: 'object',
properties: {
error: { type: 'string' },
message: { type: 'string' },
},
},
};
}
exports.createResponseSchema = createResponseSchema;
/**
* Update properties of object recursively.
*/
function updatePropertiesRecursive(obj, changes) {
Object.keys(changes).map(key => {
if (typeof obj[key] === 'object' && typeof changes[key] === 'object') {
if (changes[key] !== null) {
obj[key] = updatePropertiesRecursive(obj[key], changes[key]);
}
}
else {
obj[key] = changes[key];
}
});
return obj;
}
exports.updatePropertiesRecursive = updatePropertiesRecursive;
//# sourceMappingURL=helpers.js.map