From ff32e745316e74d13f53362de75fbea160a10984 Mon Sep 17 00:00:00 2001 From: lucasdevelop Date: Sun, 8 Aug 2021 18:58:39 +0200 Subject: [PATCH] remove empty catch | add checker module --- package.json | 2 +- src/checker.js | 59 +++++++++++++++++++++++++++++++++++++++++++++++ src/engine.js | 7 +++--- src/jsonMerger.js | 15 ++++++------ 4 files changed, 70 insertions(+), 13 deletions(-) create mode 100644 src/checker.js diff --git a/package.json b/package.json index e72f414..1263eeb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jsste", - "version": "1.1.2", + "version": "1.1.3", "description": "A Javascript Static Template Emgine", "main": "src/index.js", "directories": { diff --git a/src/checker.js b/src/checker.js new file mode 100644 index 0000000..38c91fe --- /dev/null +++ b/src/checker.js @@ -0,0 +1,59 @@ +function isObject(obj) { + return obj !== undefined && obj !== null && obj.constructor == Object; +} +function isArray(obj) { + return obj !== undefined && obj !== null && obj.constructor == Array; +} + +function isBoolean(obj) { + return obj !== undefined && obj !== null && obj.constructor == Boolean; +} + +function isFunction(obj) { + return obj !== undefined && obj !== null && obj.constructor == Function; +} + +function isNumber(obj) { + return obj !== undefined && obj !== null && obj.constructor == Number; +} + +function isString(obj) { + return obj !== undefined && obj !== null && obj.constructor == String; +} + +function isInstanced(obj) { + if (obj === undefined || obj === null) { + return false; + } + + if (isArray(obj)) { + return false; + } + if (isBoolean(obj)) { + return false; + } + if (isFunction(obj)) { + return false; + } + if (isNumber(obj)) { + return false; + } + if (isObject(obj)) { + return false; + } + if (isString(obj)) { + return false; + } + + return true; +} + +module.exports = { + isObject: isObject, + isArray: isArray, + isBoolean: isBoolean, + isFunction: isFunction, + isNumber: isNumber, + isString: isString, + isInstanced: isInstanced, +}; diff --git a/src/engine.js b/src/engine.js index 6186f94..3c6b773 100644 --- a/src/engine.js +++ b/src/engine.js @@ -1,4 +1,5 @@ const fs = require("fs"); +const checker = require("./checker") //const path = require("path"); //let appdir = path.join(__dirname, ".."); let app = {}; @@ -26,10 +27,8 @@ app.render = function (pagecode, templatecode) { //let result = ""; //if (!pagecode == JSON) pagecode = JSON.parse(pagecode); - if (pagecode != null || pagecode != undefined) { - try { + if ((pagecode != null || pagecode != undefined) && checker.isString(pagecode)) { pagecode = JSON.parse(pagecode); - } catch {} } //TODO @@ -54,7 +53,7 @@ app.render = function (pagecode, templatecode) { for (let i in pagecode) { let value = undefined; - if ( new RegExp(/\d*_([A-Z]|[a-z])\w*_/g).test(i)) continue; + if (new RegExp(/\d*_([A-Z]|[a-z])\w*_/g).test(i)) continue; if (new RegExp(/js\$([A-Z]*[a-z]*)\w+/g).test(i)) { let SE = require("./scriptExecuter"); pagecode[i] = SE(pagecode[i]); diff --git a/src/jsonMerger.js b/src/jsonMerger.js index 2c304b9..f8cf755 100644 --- a/src/jsonMerger.js +++ b/src/jsonMerger.js @@ -1,14 +1,13 @@ +const checker = require("./checker"); + function mergeJson(org, ext) { // let placeholder = undefined; - if (org !== JSON) { - try { - org = JSON.parse(org); - } catch (error) {} + + if (!checker.isObject(org)) { + org = JSON.parse(org); } - if (ext !== JSON) { - try { - ext = JSON.parse(ext); - } catch (error) {} + if (!checker.isObject(ext)) { + ext = JSON.parse(ext); } Object.keys(ext).forEach(function (key) {