rps-jsonvalidator 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -0
 - package/package.json +10 -0
 - package/src/index.d.ts +1 -0
 - package/src/index.js +5 -0
 - package/src/index.js.map +1 -0
 - package/src/lib/general-libs-json-object-validator.d.ts +12 -0
 - package/src/lib/general-libs-json-object-validator.js +55 -0
 - package/src/lib/general-libs-json-object-validator.js.map +1 -0
 
    
        package/README.md
    ADDED
    
    | 
         @@ -0,0 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # general-libs-json-object-validator
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            This library was generated with [Nx](https://nx.dev).
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            ## Running unit tests
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            Run `nx test general-libs-json-object-validator` to execute the unit tests via [Jest](https://jestjs.io).
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ## Running lint
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            Run `nx lint general-libs-json-object-validator` to execute the lint via [ESLint](https://eslint.org/).
         
     | 
    
        package/package.json
    ADDED
    
    
    
        package/src/index.d.ts
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            export * from './lib/general-libs-json-object-validator';
         
     | 
    
        package/src/index.js
    ADDED
    
    
    
        package/src/index.js.map
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/general-libs/json-object-validator/src/index.ts"],"names":[],"mappings":";;;AAAA,mFAAyD"}
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            export interface JSONObjectKeyAndTypeValidator {
         
     | 
| 
      
 2 
     | 
    
         
            +
                key: string;
         
     | 
| 
      
 3 
     | 
    
         
            +
                required: boolean;
         
     | 
| 
      
 4 
     | 
    
         
            +
                default?: any;
         
     | 
| 
      
 5 
     | 
    
         
            +
                trim?: boolean;
         
     | 
| 
      
 6 
     | 
    
         
            +
                custom_validator?: (value: any) => boolean;
         
     | 
| 
      
 7 
     | 
    
         
            +
                type: 'string' | 'number' | 'boolean' | 'function' | 'object' | 'symbol' | 'symbol' | 'any' | 'bigint';
         
     | 
| 
      
 8 
     | 
    
         
            +
                regex?: RegExp;
         
     | 
| 
      
 9 
     | 
    
         
            +
                error?: any;
         
     | 
| 
      
 10 
     | 
    
         
            +
                Extra?: JSONObjectKeyAndTypeValidator[];
         
     | 
| 
      
 11 
     | 
    
         
            +
            }
         
     | 
| 
      
 12 
     | 
    
         
            +
            export declare function ValidateJSONObject(data: any, Validator: JSONObjectKeyAndTypeValidator[]): boolean | any;
         
     | 
| 
         @@ -0,0 +1,55 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            "use strict";
         
     | 
| 
      
 2 
     | 
    
         
            +
            Object.defineProperty(exports, "__esModule", { value: true });
         
     | 
| 
      
 3 
     | 
    
         
            +
            exports.ValidateJSONObject = void 0;
         
     | 
| 
      
 4 
     | 
    
         
            +
            function ValidateJSONObject(data, Validator) {
         
     | 
| 
      
 5 
     | 
    
         
            +
                const temp = {};
         
     | 
| 
      
 6 
     | 
    
         
            +
                Validator.forEach((a) => {
         
     | 
| 
      
 7 
     | 
    
         
            +
                    if (a.required ||
         
     | 
| 
      
 8 
     | 
    
         
            +
                        (typeof data[a.key] !== 'undefined' && data[a.key] !== null)) {
         
     | 
| 
      
 9 
     | 
    
         
            +
                        try {
         
     | 
| 
      
 10 
     | 
    
         
            +
                            if (a.type === 'number' && isNaN(+data[a.key]) === true) {
         
     | 
| 
      
 11 
     | 
    
         
            +
                                throw a.error || 'Type Mismatch';
         
     | 
| 
      
 12 
     | 
    
         
            +
                            }
         
     | 
| 
      
 13 
     | 
    
         
            +
                            else if (typeof data[a.key] !== a.type && a.type !== 'any') {
         
     | 
| 
      
 14 
     | 
    
         
            +
                                throw a.error || 'Type Mismatch';
         
     | 
| 
      
 15 
     | 
    
         
            +
                            }
         
     | 
| 
      
 16 
     | 
    
         
            +
                            if (a.type === 'number') {
         
     | 
| 
      
 17 
     | 
    
         
            +
                                data[a.key] = +data[a.key];
         
     | 
| 
      
 18 
     | 
    
         
            +
                            }
         
     | 
| 
      
 19 
     | 
    
         
            +
                        }
         
     | 
| 
      
 20 
     | 
    
         
            +
                        catch (error) {
         
     | 
| 
      
 21 
     | 
    
         
            +
                            if (typeof a.default !== 'undefined') {
         
     | 
| 
      
 22 
     | 
    
         
            +
                                data[a.key] = a.default;
         
     | 
| 
      
 23 
     | 
    
         
            +
                                return;
         
     | 
| 
      
 24 
     | 
    
         
            +
                            }
         
     | 
| 
      
 25 
     | 
    
         
            +
                            else {
         
     | 
| 
      
 26 
     | 
    
         
            +
                                throw error;
         
     | 
| 
      
 27 
     | 
    
         
            +
                            }
         
     | 
| 
      
 28 
     | 
    
         
            +
                        }
         
     | 
| 
      
 29 
     | 
    
         
            +
                        if (a.regex) {
         
     | 
| 
      
 30 
     | 
    
         
            +
                            let dataCC = data[a.key];
         
     | 
| 
      
 31 
     | 
    
         
            +
                            if (typeof dataCC !== 'string') {
         
     | 
| 
      
 32 
     | 
    
         
            +
                                dataCC = String(dataCC);
         
     | 
| 
      
 33 
     | 
    
         
            +
                            }
         
     | 
| 
      
 34 
     | 
    
         
            +
                            if (a.regex.test(dataCC) === false) {
         
     | 
| 
      
 35 
     | 
    
         
            +
                                throw a.error || `${a.key} Regexp MisMAtch`;
         
     | 
| 
      
 36 
     | 
    
         
            +
                            }
         
     | 
| 
      
 37 
     | 
    
         
            +
                        }
         
     | 
| 
      
 38 
     | 
    
         
            +
                        if (a.custom_validator) {
         
     | 
| 
      
 39 
     | 
    
         
            +
                            const dd = a.custom_validator(data[a.key]);
         
     | 
| 
      
 40 
     | 
    
         
            +
                            if (!!dd === false) {
         
     | 
| 
      
 41 
     | 
    
         
            +
                                throw a.error || 'Custom Validator Error';
         
     | 
| 
      
 42 
     | 
    
         
            +
                            }
         
     | 
| 
      
 43 
     | 
    
         
            +
                        }
         
     | 
| 
      
 44 
     | 
    
         
            +
                        if (a.Extra && Array.isArray(a.Extra)) {
         
     | 
| 
      
 45 
     | 
    
         
            +
                            temp[a.key] = ValidateJSONObject(data[a.key], a.Extra);
         
     | 
| 
      
 46 
     | 
    
         
            +
                        }
         
     | 
| 
      
 47 
     | 
    
         
            +
                        else {
         
     | 
| 
      
 48 
     | 
    
         
            +
                            temp[a.key] = data[a.key];
         
     | 
| 
      
 49 
     | 
    
         
            +
                        }
         
     | 
| 
      
 50 
     | 
    
         
            +
                    }
         
     | 
| 
      
 51 
     | 
    
         
            +
                });
         
     | 
| 
      
 52 
     | 
    
         
            +
                return temp;
         
     | 
| 
      
 53 
     | 
    
         
            +
            }
         
     | 
| 
      
 54 
     | 
    
         
            +
            exports.ValidateJSONObject = ValidateJSONObject;
         
     | 
| 
      
 55 
     | 
    
         
            +
            //# sourceMappingURL=general-libs-json-object-validator.js.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"general-libs-json-object-validator.js","sourceRoot":"","sources":["../../../../../../packages/general-libs/json-object-validator/src/lib/general-libs-json-object-validator.ts"],"names":[],"mappings":";;;AAqBA,SAAgB,kBAAkB,CAChC,IAAS,EACT,SAA0C;IAE1C,MAAM,IAAI,GAAQ,EAAE,CAAC;IACrB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,IACE,CAAC,CAAC,QAAQ;YACV,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAC5D;YACA,IAAI;gBACF,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;oBACvD,MAAM,CAAC,CAAC,KAAK,IAAI,eAAe,CAAC;iBAClC;qBAAM,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE;oBAC5D,MAAM,CAAC,CAAC,KAAK,IAAI,eAAe,CAAC;iBAClC;gBACD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACvB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC5B;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,WAAW,EAAE;oBACpC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;oBACxB,OAAO;iBACR;qBAAM;oBACL,MAAM,KAAK,CAAC;iBACb;aACF;YACD,IAAI,CAAC,CAAC,KAAK,EAAE;gBACX,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;oBAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;iBACzB;gBACD,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;oBAClC,MAAM,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC;iBAC7C;aACF;YACD,IAAI,CAAC,CAAC,gBAAgB,EAAE;gBACtB,MAAM,EAAE,GAAG,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,EAAE;oBAClB,MAAM,CAAC,CAAC,KAAK,IAAI,wBAAwB,CAAC;iBAC3C;aACF;YACD,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBACrC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;aACxD;iBAAM;gBACL,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aAC3B;SACF;IACH,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAlDD,gDAkDC"}
         
     |