From db7c36a82d8156a071e277e030335a4bd0dfcc48 Mon Sep 17 00:00:00 2001 From: Vitalii Yarmus Date: Mon, 14 Aug 2023 15:20:52 +0300 Subject: [PATCH] Allow usage of adaptJsonSchema in browser version of application --- api/re.js | 3 +++ reverse_engineering/api.js | 19 ++-------------- .../adaptJsonSchema/adaptJsonSchema.js | 22 +++++++++++++++++-- 3 files changed, 25 insertions(+), 19 deletions(-) create mode 100644 api/re.js diff --git a/api/re.js b/api/re.js new file mode 100644 index 0000000..77978eb --- /dev/null +++ b/api/re.js @@ -0,0 +1,3 @@ +const { adaptJsonSchema } = require('../reverse_engineering/helpers/adaptJsonSchema/adaptJsonSchema'); + +module.exports = { adaptJsonSchema }; diff --git a/reverse_engineering/api.js b/reverse_engineering/api.js index 1c2ff16..8aff126 100644 --- a/reverse_engineering/api.js +++ b/reverse_engineering/api.js @@ -3,7 +3,7 @@ const commonHelper = require('./helpers/commonHelper'); const dataHelper = require('./helpers/dataHelper'); const errorHelper = require('./helpers/errorHelper'); -const adaptJsonSchema = require('./helpers/adaptJsonSchema/adaptJsonSchema'); +const { adaptJsonSchema } = require('./helpers/adaptJsonSchema/adaptJsonSchema'); const resolveExternalDefinitionPathHelper = require('./helpers/resolveExternalDefinitionPathHelper'); const validationHelper = require('../forward_engineering/helpers/validationHelper'); @@ -62,22 +62,7 @@ module.exports = { callback(handledError); }, - adaptJsonSchema(data, logger, callback) { - logger.log('info', 'Adaptation of JSON Schema started...', 'Adapt JSON Schema'); - try { - const jsonSchema = JSON.parse(data.jsonSchema); - - const adaptedJsonSchema = adaptJsonSchema(jsonSchema, data.options?.targetDBVersion); - - logger.log('info', 'Adaptation of JSON Schema finished.', 'Adapt JSON Schema'); - - callback(null, { - jsonSchema: JSON.stringify(adaptedJsonSchema) - }); - } catch(e) { - callback(commonHelper.handleErrorObject(e, 'Adapt JSON Schema'), data); - } - }, + adaptJsonSchema, resolveExternalDefinitionPath(data, logger, callback) { resolveExternalDefinitionPathHelper.resolvePath(data, callback); diff --git a/reverse_engineering/helpers/adaptJsonSchema/adaptJsonSchema.js b/reverse_engineering/helpers/adaptJsonSchema/adaptJsonSchema.js index b9a7dd2..c7e49cc 100644 --- a/reverse_engineering/helpers/adaptJsonSchema/adaptJsonSchema.js +++ b/reverse_engineering/helpers/adaptJsonSchema/adaptJsonSchema.js @@ -1,4 +1,5 @@ const mapJsonSchema = require('./mapJsonSchema'); +const commonHelper = require('../commonHelper') const convertToString = (jsonSchema) => { return Object.assign({}, jsonSchema, { @@ -44,7 +45,7 @@ const handleNumericType = (jsonSchema) => { return jsonSchema; }; -const adaptJsonSchema = (jsonSchema, targetDBVersion) => { +const adaptSchema = (jsonSchema, targetDBVersion) => { const isJSONSchemaCompatibleTargetVersion = targetDBVersion?.split('.')?.[1] >= '1'; // 3.1.0 or higher return mapJsonSchema(jsonSchema, (jsonSchemaItem) => { if (Array.isArray(jsonSchemaItem.type) && !isJSONSchemaCompatibleTargetVersion) { @@ -59,4 +60,21 @@ const adaptJsonSchema = (jsonSchema, targetDBVersion) => { }); }; -module.exports = adaptJsonSchema; +const adaptJsonSchema = (data, logger, callback) => { + logger.log('info', 'Adaptation of JSON Schema started...', 'Adapt JSON Schema'); + try { + const jsonSchema = JSON.parse(data.jsonSchema); + + const adaptedJsonSchema = adaptSchema(jsonSchema, data.options?.targetDBVersion); + + logger.log('info', 'Adaptation of JSON Schema finished.', 'Adapt JSON Schema'); + + callback(null, { + jsonSchema: JSON.stringify(adaptedJsonSchema) + }); + } catch(e) { + callback(commonHelper.handleErrorObject(e, 'Adapt JSON Schema'), data); + } +}; + +module.exports = { adaptJsonSchema };