swagger-parser VS node-validator

Compare swagger-parser vs node-validator and see what are their differences.

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
swagger-parser node-validator
2 1
1,055 19,216
1.9% -
1.5 8.3
about 2 months ago about 2 years ago
JavaScript JavaScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

swagger-parser

Posts with mentions or reviews of swagger-parser. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-04.

node-validator

Posts with mentions or reviews of node-validator. We have used some of these posts to build our list of alternatives and similar projects.
  • Newbie here.
    1 project | /r/angularjs | 4 Mar 2022
    // Clean up when 500 users reached if(users.length > 500) { users = users.slice(0, 2); } var user = { id: _.max(users, function(user) { return user.id; }).id + 1, username: username, password: password, role: role }; users.push(user); callback(null, user); }, findOrCreateOauthUser: function(provider, providerId) { var user = module.exports.findByProviderId(provider, providerId); if(!user) { user = { id: _.max(users, function(user) { return user.id; }).id + 1, username: provider + '_user', // Should keep Oauth users anonymous on demo site role: userRoles.user, provider: provider }; user[provider] = providerId; users.push(user); } return user; }, findAll: function() { return _.map(users, function(user) { return _.clone(user); }); }, findById: function(id) { return _.clone(_.find(users, function(user) { return user.id === id })); }, findByUsername: function(username) { return _.clone(_.find(users, function(user) { return user.username === username; })); }, findByProviderId: function(provider, id) { return _.find(users, function(user) { return user[provider] === id; }); }, validate: function(user) { check(user.username, 'Username must be 1-20 characters long').len(1, 20); check(user.password, 'Password must be 5-60 characters long').len(5, 60); check(user.username, 'Invalid username').not(/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/); // TODO: Seems node-validator's isIn function doesn't handle Number arrays very well... // Till this is rectified Number arrays must be converted to string arrays // https://github.com/chriso/node-validator/issues/185 var stringArr = _.map(_.values(userRoles), function(val) { return val.toString() }); check(user.role, 'Invalid user role given').isIn(stringArr); }, localStrategy: new LocalStrategy( function(username, password, done) { var user = module.exports.findByUsername(username); if(!user) { done(null, false, { message: 'Incorrect username.' }); } else if(user.password != password) { done(null, false, { message: 'Incorrect username.' }); } else { return done(null, user); } } ), twitterStrategy: function() { if(!process.env.TWITTER_CONSUMER_KEY) throw new Error('A Twitter Consumer Key is required if you want to enable login via Twitter.'); if(!process.env.TWITTER_CONSUMER_SECRET) throw new Error('A Twitter Consumer Secret is required if you want to enable login via Twitter.'); return new TwitterStrategy({ consumerKey: process.env.TWITTER_CONSUMER_KEY, consumerSecret: process.env.TWITTER_CONSUMER_SECRET, callbackURL: process.env.TWITTER_CALLBACK_URL || 'http://localhost:8000/auth/twitter/callback' }, function(token, tokenSecret, profile, done) { var user = module.exports.findOrCreateOauthUser(profile.provider, profile.id); done(null, user); }); }, facebookStrategy: function() { if(!process.env.FACEBOOK_APP_ID) throw new Error('A Facebook App ID is required if you want to enable login via Facebook.'); if(!process.env.FACEBOOK_APP_SECRET) throw new Error('A Facebook App Secret is required if you want to enable login via Facebook.'); return new FacebookStrategy({ clientID: process.env.FACEBOOK_APP_ID, clientSecret: process.env.FACEBOOK_APP_SECRET, callbackURL: process.env.FACEBOOK_CALLBACK_URL || "http://localhost:8000/auth/facebook/callback" }, function(accessToken, refreshToken, profile, done) { var user = module.exports.findOrCreateOauthUser(profile.provider, profile.id); done(null, user); }); }, googleStrategy: function() { return new GoogleStrategy({ returnURL: process.env.GOOGLE_RETURN_URL || "http://localhost:8000/auth/google/return", realm: process.env.GOOGLE_REALM || "http://localhost:8000/" }, function(identifier, profile, done) { var user = module.exports.findOrCreateOauthUser('google', identifier); done(null, user); }); }, linkedInStrategy: function() { if(!process.env.LINKED_IN_KEY) throw new Error('A LinkedIn App Key is required if you want to enable login via LinkedIn.'); if(!process.env.LINKED_IN_SECRET) throw new Error('A LinkedIn App Secret is required if you want to enable login via LinkedIn.'); return new LinkedInStrategy({ consumerKey: process.env.LINKED_IN_KEY, consumerSecret: process.env.LINKED_IN_SECRET, callbackURL: process.env.LINKED_IN_CALLBACK_URL || "http://localhost:8000/auth/linkedin/callback" }, function(token, tokenSecret, profile, done) { var user = module.exports.findOrCreateOauthUser('linkedin', profile.id); done(null,user); } ); }, serializeUser: function(user, done) { done(null, user.id); }, deserializeUser: function(id, done) { var user = module.exports.findById(id); if(user) { done(null, user); } else { done(null, false); } }

What are some alternatives?

When comparing swagger-parser and node-validator you can also consider the following projects:

typescript-api-docs

decoders - Elegant validation library for type-safe input data (for TypeScript and Flow)

bevor - Bevor is payloads / HTTP request validator

intl-tel-input - A JavaScript plugin for entering and validating international telephone numbers

fluent-json-validator - An easy-to-use, expressive, and composable JSON object validator, with a fluent builder pattern interface!

valitron - Valitron is a rust validation, support ergonomics, functional and configurable

open-api - A Monorepo of various packages to power OpenAPI in node

nano-address-validator - Validates addresses in the Nano cryptocurrency for syntax and checksum integrity

json-schema-to-typescript - Compile JSONSchema to TypeScript type declarations

fastest-validator - :zap: The fastest JS validator library for NodeJS

validator.js - String validation

mali - A minimalistic gRPC microservice framework for Node.js