@decorators/server
Version:
node decorators - decorators for express library
31 lines • 4.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.pick = exports.getValidationMeta = exports.isObjectLike = exports.replaceUrlParameters = exports.isStandardType = exports.typeToContentType = void 0;
const class_validator_1 = require("class-validator");
function typeToContentType(type) {
return isObjectLike(type) ? 'application/json' : 'text/plain';
}
exports.typeToContentType = typeToContentType;
function isStandardType(type) {
const standardTypes = ['object', 'number', 'boolean', 'string'];
return standardTypes.includes(type.name.toLowerCase());
}
exports.isStandardType = isStandardType;
function replaceUrlParameters(url) {
return url.replace(/:(\w+)/g, '{$1}');
}
exports.replaceUrlParameters = replaceUrlParameters;
function isObjectLike(value) {
return (typeof value === 'object' && value !== null) || (value === null || value === void 0 ? void 0 : value.prototype.toString()) === '[object Object]';
}
exports.isObjectLike = isObjectLike;
function getValidationMeta(type) {
const metadataStorage = (0, class_validator_1.getMetadataStorage)();
return metadataStorage.getTargetValidationMetadatas(type, null, null, null);
}
exports.getValidationMeta = getValidationMeta;
function pick(obj, ...keys) {
return keys.reduce((acc, key) => ({ ...acc, [key]: obj[key] }), {});
}
exports.pick = pick;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm1zL3N3YWdnZXIvaGVscGVycy9zd2FnZ2VyLXVpL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFxRDtBQUlyRCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFnQztJQUNoRSxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztBQUNoRSxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixjQUFjLENBQUMsSUFBZ0M7SUFDN0QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVoRSxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFKRCx3Q0FJQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLEdBQVc7SUFDOUMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsb0RBRUM7QUFFRCxTQUFnQixZQUFZLENBQUMsS0FBaUM7SUFDNUQsT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFLLGlCQUFpQixDQUFDO0FBQzVHLENBQUM7QUFGRCxvQ0FFQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLElBQWdDO0lBQ2hFLE1BQU0sZUFBZSxHQUFHLElBQUEsb0NBQWtCLEdBQUUsQ0FBQztJQUU3QyxPQUFPLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBSkQsOENBSUM7QUFFRCxTQUFnQixJQUFJLENBQUMsR0FBVyxFQUFFLEdBQUcsSUFBYztJQUNqRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFGRCxvQkFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldE1ldGFkYXRhU3RvcmFnZSB9IGZyb20gJ2NsYXNzLXZhbGlkYXRvcic7XG5cbmltcG9ydCB7IENsYXNzQ29uc3RydWN0b3IsIEhhbmRsZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVUb0NvbnRlbnRUeXBlKHR5cGU6IEhhbmRsZXIgfCBDbGFzc0NvbnN0cnVjdG9yKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodHlwZSkgPyAnYXBwbGljYXRpb24vanNvbicgOiAndGV4dC9wbGFpbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0YW5kYXJkVHlwZSh0eXBlOiBIYW5kbGVyIHwgQ2xhc3NDb25zdHJ1Y3Rvcikge1xuICBjb25zdCBzdGFuZGFyZFR5cGVzID0gWydvYmplY3QnLCAnbnVtYmVyJywgJ2Jvb2xlYW4nLCAnc3RyaW5nJ107XG5cbiAgcmV0dXJuIHN0YW5kYXJkVHlwZXMuaW5jbHVkZXModHlwZS5uYW1lLnRvTG93ZXJDYXNlKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZVVybFBhcmFtZXRlcnModXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHVybC5yZXBsYWNlKC86KFxcdyspL2csICd7JDF9Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdExpa2UodmFsdWU6IEhhbmRsZXIgfCBDbGFzc0NvbnN0cnVjdG9yKSB7XG4gIHJldHVybiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkgfHwgdmFsdWU/LnByb3RvdHlwZS50b1N0cmluZygpID09PSAnW29iamVjdCBPYmplY3RdJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbGlkYXRpb25NZXRhKHR5cGU6IEhhbmRsZXIgfCBDbGFzc0NvbnN0cnVjdG9yKSB7XG4gIGNvbnN0IG1ldGFkYXRhU3RvcmFnZSA9IGdldE1ldGFkYXRhU3RvcmFnZSgpO1xuXG4gIHJldHVybiBtZXRhZGF0YVN0b3JhZ2UuZ2V0VGFyZ2V0VmFsaWRhdGlvbk1ldGFkYXRhcyh0eXBlLCBudWxsLCBudWxsLCBudWxsKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBpY2sob2JqOiBvYmplY3QsIC4uLmtleXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBrZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+ICh7IC4uLmFjYywgW2tleV06IG9ialtrZXldIH0pLCB7fSk7XG59XG4iXX0=