Socket
Socket
Sign inDemoInstall

class-validator-jsonschema

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

class-validator-jsonschema - npm Package Compare versions

Comparing version 5.0.0 to 5.0.1

49

__tests__/inheritedProperties.test.ts

@@ -16,3 +16,7 @@ // tslint:disable:no-submodule-imports

import { JSONSchema, validationMetadatasToSchemas } from '../src'
import {
JSONSchema,
targetConstructorToSchema,
validationMetadatasToSchemas,
} from '../src'

@@ -47,3 +51,2 @@ @JSONSchema({

})
// @ts-ignore: not referenced
class User extends BaseContent {

@@ -70,2 +73,5 @@ @MinLength(10)

// @ts-ignore: not referenced
class Admin extends User {}
const metadatas = _get(getFromContainer(MetadataStorage), 'validationMetadatas')

@@ -146,2 +152,41 @@

})
it('inherits and merges validation decorators from multiple parent classes and empty child class', () => {
const schema = targetConstructorToSchema(Admin)
expect(schema).toEqual({
properties: {
email: {
default: 'some@email.com',
format: 'email',
type: 'string',
not: { type: 'null' },
},
name: {
maxLength: 20,
minLength: 10,
type: 'string',
},
password: {
description: 'Password field - required!',
minLength: 20,
type: 'string',
not: { type: 'null' },
},
phone: {
format: 'mobile-phone',
title: 'Mobile phone number',
type: 'string',
not: { type: 'null' },
},
welcome: {
pattern: 'hello',
type: 'string',
},
},
required: ['name', 'welcome', 'email'],
title: 'User object',
type: 'object',
})
})
})

@@ -49,2 +49,13 @@ "use strict";

exports.validationMetadataArrayToSchemas = validationMetadataArrayToSchemas;
function getTargetConstructorSchema(schemas, targetConstructor) {
if (!targetConstructor.name) {
return {};
}
else if (schemas[targetConstructor.name]) {
return schemas[targetConstructor.name];
}
else {
return getTargetConstructorSchema(schemas, Object.getPrototypeOf(targetConstructor));
}
}
function targetConstructorToSchema(targetConstructor, userOptions) {

@@ -56,3 +67,3 @@ const options = Object.assign(Object.assign({}, options_1.defaultOptions), userOptions);

const schemas = validationMetadataArrayToSchemas(metadatas, userOptions);
return Object.values(schemas).length ? Object.values(schemas)[0] : {};
return getTargetConstructorSchema(schemas, targetConstructor);
}

@@ -133,2 +144,2 @@ exports.targetConstructorToSchema = targetConstructorToSchema;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLDREQUFxQztBQUVyQyw0RUFBcUM7QUFDckMsd0VBQWlDO0FBR2pDLDZDQUFnRDtBQUNoRCwyREFBdUQ7QUFDdkQsdUNBQW9EO0FBRXBELDJDQUF5QztBQUFoQyx3R0FBQSxVQUFVLE9BQUE7QUFTbkIsU0FBZ0IsNEJBQTRCLENBQzFDLFdBQStCO0lBRS9CLE1BQU0sT0FBTyxtQ0FDUix3QkFBYyxHQUNkLFdBQVcsQ0FDZixDQUFBO0lBRUQsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLENBQ3ZDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FDdEMsQ0FBQTtJQUVELE9BQU8sZ0NBQWdDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0FBQ2pFLENBQUM7QUFiRCxvRUFhQztBQUtELFNBQWdCLGdDQUFnQyxDQUM5QyxTQUErQixFQUMvQixXQUErQjtJQUUvQixNQUFNLE9BQU8sbUNBQ1Isd0JBQWMsR0FDZCxXQUFXLENBQ2YsQ0FBQTtJQUVELE1BQU0sT0FBTyxHQUFvQyxFQUFFLENBQUE7SUFDbkQsTUFBTSxDQUFDLE9BQU8sQ0FDWixJQUFBLHdCQUFRLEVBQ04sU0FBUyxFQUNULENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFOztRQUNiLE9BQUEsTUFBQSxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQXNDLENBQUMsbUNBQ3JELE1BQW1CLENBQUMsSUFBSSxDQUFBO0tBQUEsQ0FDNUIsQ0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQWtCLENBQUE7UUFDN0MsTUFBTSxLQUFLLEdBQUcsUUFBUTthQUNuQixNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ2hELE1BQU0sQ0FDTCxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ1gsQ0FBQyxDQUNDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO1lBQzdCLFVBQVUsaUNBQU0sUUFBUSxLQUFFLE1BQU0sS0FBSSxPQUFPLENBQUMsQ0FDN0MsQ0FDSixDQUFBO1FBRUgsTUFBTSxVQUFVLEdBQXVELEVBQUUsQ0FBQTtRQUV6RSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUEsd0JBQVEsRUFBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3JELENBQUMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRTtZQUN4QixNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxlQUFlLENBQ3BDLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxFQUNQLFFBQVEsQ0FDVCxDQUFBO1FBQ0gsQ0FBQyxDQUNGLENBQUE7UUFFRCxNQUFNLGdCQUFnQixHQUFpQjtZQUNyQyxVQUFVO1lBQ1YsSUFBSSxFQUFFLFFBQVE7U0FDZixDQUFBO1FBRUQsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUM3RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLGdCQUFnQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7U0FDckM7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUM1QixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLENBQUMsSUFBSSxDQUNJLENBQUE7SUFDbkIsQ0FBQyxDQUFDLENBQUE7SUFFRixPQUFPLE9BQU8sQ0FBQTtBQUNoQixDQUFDO0FBOURELDRFQThEQztBQUtELFNBQWdCLHlCQUF5QixDQUN2QyxpQkFBMkIsRUFDM0IsV0FBK0I7SUFFL0IsTUFBTSxPQUFPLG1DQUNSLHdCQUFjLEdBQ2QsV0FBVyxDQUNmLENBQUE7SUFFRCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsNkJBQTZCLENBQUE7SUFDckQsSUFBSSxTQUFTLEdBQUcsT0FBTyxDQUFDLDRCQUE0QixDQUNsRCxpQkFBaUIsRUFDakIsRUFBRSxFQUNGLElBQUksRUFDSixLQUFLLENBQ04sQ0FBQTtJQUNELFNBQVMsR0FBRyxnQ0FBZ0MsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFFaEUsTUFBTSxPQUFPLEdBQUcsZ0NBQWdDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQ3hFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtBQUN2RSxDQUFDO0FBcEJELDhEQW9CQztBQUtELFNBQVMsdUJBQXVCLENBQzlCLE9BQTJCO0lBRTNCLE1BQU0sU0FBUyxHQUF5QixFQUFFLENBQUE7SUFFMUMsS0FBSyxNQUFNLEtBQUssSUFBSyxPQUErQixDQUFDLG1CQUFtQixFQUFFO1FBQ3hFLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxnQ0FBZ0MsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUN2RTtJQUNELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxTQUFTLGdDQUFnQyxDQUN2QyxPQUEyQixFQUMzQixTQUErQjtJQUUvQixPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM1QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLDZCQUE2QixDQUN0RCxJQUFJLENBQUMsYUFBYSxDQUNuQixDQUFBO1lBQ0QsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDekIsdUNBQVksSUFBSSxLQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFFO2FBQzdDO1NBQ0Y7UUFDRCx5QkFBWSxJQUFJLEVBQUU7SUFDcEIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBV0QsU0FBUyxxQkFBcUIsQ0FDNUIsTUFBZ0IsRUFDaEIsU0FBK0I7SUFFL0IsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUNyQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osQ0FBQyxDQUFDLE1BQU0sWUFBWSxRQUFRO1FBQzVCLE1BQU0sQ0FBQyxTQUFTLFlBQVksQ0FBQyxDQUFDLE1BQU07UUFDcEMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNiLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxZQUFZO1lBQ2pDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTTtZQUNuQixDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3BCLENBQ0osQ0FBQTtBQUNILENBQUM7QUFLRCxTQUFTLGVBQWUsQ0FDdEIsaUJBQXVDLEVBQ3ZDLE9BQWlCO0lBRWpCLE1BQU0sVUFBVSxtQ0FBUSxxQ0FBaUIsR0FBSyxPQUFPLENBQUMsb0JBQW9CLENBQUUsQ0FBQTtJQUU1RSxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQXdCLEVBQUUsRUFBRTs7UUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBQSxPQUFPLENBQUMsK0JBQStCLDBDQUFFLGdCQUFnQixDQUN4RSxJQUFJLENBQUMsTUFBa0IsRUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQTtRQUNELE1BQU0sS0FBSyxHQUNULFFBQVE7WUFDUixRQUFRLENBQUMsYUFBYTtZQUN0QixJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBWSxHQUFHLENBQUE7UUFFN0MsTUFBTSxTQUFTLEdBQ2IsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBRTNFLE1BQU0sS0FBSyxHQUNULE9BQU8sU0FBUyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO1FBRXhFLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDdEIsT0FBTztnQkFDTCxvQkFBb0Isb0JBQ2YsS0FBSyxDQUNUO2dCQUNELElBQUksRUFBRSxRQUFRO2FBQ2YsQ0FBQTtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtJQUNyRCxDQUFDLENBQUE7SUFFRCxPQUFPLElBQUEsc0JBQU0sRUFBQyxFQUFFLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUN0RCxDQUFDO0FBR0QsU0FBUyxVQUFVLENBQ2pCLGdCQUFvQyxFQUNwQyxPQUFpQjs7SUFFakIsT0FBTyxDQUFDLENBQUMsQ0FBQSxNQUFBLE9BQU8sQ0FBQywrQkFBK0IsMENBQUUsbUJBQW1CLENBQ25FLGdCQUFnQixDQUFDLE1BQWtCLEVBQ25DLGdCQUFnQixDQUFDLFlBQVksQ0FDOUIsQ0FBQSxDQUFBO0FBQ0gsQ0FBQztBQU1ELFNBQVMsZUFBZSxDQUN0QixNQUFvQixFQUNwQixNQUFnQixFQUNoQixPQUFpQixFQUNqQixZQUFvQjtJQUVwQixNQUFNLGdCQUFnQixHQUFHLElBQUEsOEJBQWlCLEVBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUMxRSxPQUFPLE9BQU8sZ0JBQWdCLEtBQUssVUFBVTtRQUMzQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztRQUNuQyxDQUFDLENBQUMsSUFBQSxzQkFBTSxFQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtBQUMxQyxDQUFDO0FBUUQsU0FBUyxvQkFBb0IsQ0FDM0IsTUFBZ0IsRUFDaEIsU0FBK0IsRUFDL0IsT0FBaUI7SUFFakIsU0FBUyxTQUFTLENBQUMsS0FBMkI7UUFDNUMsT0FBTyxDQUNMLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQzFFLENBQUE7SUFDSCxDQUFDO0lBQ0QsU0FBUyxVQUFVLENBQUMsS0FBMkI7UUFDN0MsT0FBTyxDQUNMLEtBQUs7WUFDTCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQ3RCLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUN4RSxDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUEsd0JBQVEsRUFBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM5RCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUE7UUFDcEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQTtRQUMxRCxPQUFPLE9BQU8sQ0FBQyxxQkFBcUI7WUFDbEMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtJQUNqRCxDQUFDLENBQUM7U0FDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUMxQixDQUFDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLDREQUFxQztBQUVyQyw0RUFBcUM7QUFDckMsd0VBQWlDO0FBR2pDLDZDQUFnRDtBQUNoRCwyREFBdUQ7QUFDdkQsdUNBQW9EO0FBRXBELDJDQUF5QztBQUFoQyx3R0FBQSxVQUFVLE9BQUE7QUFTbkIsU0FBZ0IsNEJBQTRCLENBQzFDLFdBQStCO0lBRS9CLE1BQU0sT0FBTyxtQ0FDUix3QkFBYyxHQUNkLFdBQVcsQ0FDZixDQUFBO0lBRUQsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLENBQ3ZDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FDdEMsQ0FBQTtJQUVELE9BQU8sZ0NBQWdDLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0FBQ2pFLENBQUM7QUFiRCxvRUFhQztBQUtELFNBQWdCLGdDQUFnQyxDQUM5QyxTQUErQixFQUMvQixXQUErQjtJQUUvQixNQUFNLE9BQU8sbUNBQ1Isd0JBQWMsR0FDZCxXQUFXLENBQ2YsQ0FBQTtJQUVELE1BQU0sT0FBTyxHQUFvQyxFQUFFLENBQUE7SUFDbkQsTUFBTSxDQUFDLE9BQU8sQ0FDWixJQUFBLHdCQUFRLEVBQ04sU0FBUyxFQUNULENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFOztRQUNiLE9BQUEsTUFBQSxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQXNDLENBQUMsbUNBQ3JELE1BQW1CLENBQUMsSUFBSSxDQUFBO0tBQUEsQ0FDNUIsQ0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQWtCLENBQUE7UUFDN0MsTUFBTSxLQUFLLEdBQUcsUUFBUTthQUNuQixNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLFNBQVMs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LENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFBO1FBQ3BELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUE7UUFDMUQsT0FBTyxPQUFPLENBQUMscUJBQXFCO1lBQ2xDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7SUFDakQsQ0FBQyxDQUFDO1NBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDMUIsQ0FBQyJ9

2

package.json
{
"name": "class-validator-jsonschema",
"version": "5.0.0",
"version": "5.0.1",
"description": "Convert class-validator-decorated classes into JSON schema",

@@ -5,0 +5,0 @@ "keywords": [

@@ -104,2 +104,22 @@ // tslint:disable:no-submodule-imports ban-types

/**
* Search for the JSON Schema definition from child class up to the
* top parent class until empty function name is found.
*/
function getTargetConstructorSchema(
schemas: Record<string, SchemaObject>,
targetConstructor: Function
): SchemaObject {
if (!targetConstructor.name) {
return {}
} else if (schemas[targetConstructor.name]) {
return schemas[targetConstructor.name]
} else {
return getTargetConstructorSchema(
schemas,
Object.getPrototypeOf(targetConstructor)
)
}
}
/**
* Generate JSON Schema definitions from the target object constructor.

@@ -126,3 +146,3 @@ */

const schemas = validationMetadataArrayToSchemas(metadatas, userOptions)
return Object.values(schemas).length ? Object.values(schemas)[0] : {}
return getTargetConstructorSchema(schemas, targetConstructor)
}

@@ -129,0 +149,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc