Code Monkey home page Code Monkey logo

validate-polish's Introduction

Work in progress...

radarsu logo
Simplicity is the ultimate sophistication.

Node.js server-side TypeScript framework with one thing in mind - removing code is easier than writing it.
Auto-generated Swagger docs, REST, GraphQL, WebSockets and others - have it all, delete what you don't need.

Inspired by: sails.js, feathers.

npm license stars social twitter

Description

When you choose your perfect stack quite often you realize that setting things up, well-configured and working takes a lot of time. Everything is far from perfect and you need to write tons of code to make all the awesome features work your way according to your needs.

Maybe you have tried meteor, loopback, sails.js and nothing suits your needs. Lack of WebSocket integration? No auto-generated swagger docs, CRUD, issues with GraphQL subscriptions? Overcomplicated structure with many concepts you do not really want to implement? Simple solution comes here.

Built on top of nestjs, flexible, ready-to-go.

Installation

npm i radarsu

Features

  • Integrated REST, GraphQL and WebSocket API.
  • Automatic validation of incoming requests.
  • Pretty logging to console and files with a well-configured Winston.

radarsu logo

  • Auto-generated swagger docs and GraphQL panel.
  • Auto-generated CRUD client for all the models powered by Angular and Primeng.
  • CLI for generating various components based on templates that you can easiely modify.
  • RadarsuSocket Client and Server library allowing easy WebSocket communication between Client and Server:
// client side
const result = await ws.emit({
	action: `user/login`,
	args: [{
		login: `test`,
		password: `test`,
	}],
});
console.log(result); // 'NOT YET IMPLEMENTED';
// requests goes to the server through validation and other middleware
interface ILoginRequest {
	login: string;
	password: string;
}

@RadarsuController
@RadarsuMiddleware(exampleMiddleware, exampleGuard)
export class UserController {

	// body parameters are automatically validated based on ILoginRequest interface
    public login(@Body() body: ILoginRequest, rs: RadarsuSocket) {
	    return 'NOT YET IMPLEMENTED';
    }
}
  • Simple approach leaves everything as simple as possible, no coding redundancy, simple file structure:
  • src
    • 1-helpers - utility functions you like, your own little libraries.
    • 2-interfaces - types and interfaces.
    • 3-config - configuration of application and various libraries.
    • 4-entities - database models powered by sequelize-typescript.
    • 5-services - additional logics and storing data in server memory.
    • 6-middleware - filters, guards, interceptors, whatever you like as a middleware.
    • 7-controllers - routing and application entry point for all the REST, GraphQL and WebSocket Requests.
    • import - barrel import of every library and object you may need.
    • index.ts - application entry point (bootstrap).
  • data - place for logs and some server assets (like a favicon).
  • templates - place for templates that you can modify accodring to your needs, used to auto-generate components. Powered by ejs.

Drawbacks

In order to provide you with a well-configured setup of various libraries perfectly working together radarsu framework does not yet have adapters for other popular libraries. If you wish to switch from Winston to Bunyan or from Sequelize to other database, you need to rewrite initLogger, initDb, (...), methods.

import {
    Radarsu, config, radarsuLogger,
} from './import';

const log = radarsuLogger(__filename);

(async () => {
    config.app = new Radarsu();
    config.app.initLogger((options) => {
        // you are on your own here to return other logger you like
        return {};
    });
    await config.app.launch(config);
})();

validate-polish's People

Contributors

dependabot[bot] avatar radarsu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

validate-polish's Issues

Incorrect validation of month

Hello,
I have noticed that in version 2.0.34 there was added month and day validation.
Unfortunately, it does not take into account the fact that in PESEL there is a century encoded in the month digits.
Basically, there is a possibility that month digits > 12, for all people born after 2000.

Example: PESEL 00320506835 returns false.
See https://en.wikipedia.org/wiki/PESEL for the algo.

Other than that - great job, thanks.

Pesel validation

Hi @radarsu! I have noticed that pesel validation has bug. If you validate pesel - 55558888888, it's gonna return true. Please make sure that pesel validation is checking also date because there is no 88th day of the month.
Cheers.

Relicensing proposal

Hi @radarsu, I've noticed that this library does not explicitly state what license does it use, however according to package.json it is supposed to be GPL-3.0 licensed. This license makes this library essentially useless for any larger project (commercial or not, except for GPL-licensed project obviously), because GPL is considered to be a viral license, forcing the code which uses it (in most cases) to also be licensed using GPL.

Would you consider relicensing your library to a more permissive license, eg. MIT, Apache or BSD-3-clause? Conversely, if this was not your intention to license it as GPL-3.0 (IANAL, but currently your code does not include the required copy of the GPL license), could you please include the desired license text and also update the package.json accordingly?

Regon validator

This pesel 71122506585 is recognized as valid regon. Regex for length shoud be 9 or 14 digits not range between {9, 14}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.