diff --git a/packages/optimizely-sdk/lib/core/decision_service/index.tests.js b/packages/optimizely-sdk/lib/core/decision_service/index.tests.js index 6571364d1..0f5b20552 100644 --- a/packages/optimizely-sdk/lib/core/decision_service/index.tests.js +++ b/packages/optimizely-sdk/lib/core/decision_service/index.tests.js @@ -32,7 +32,7 @@ import AudienceEvaluator from '../audience_evaluator'; import errorHandler from '../../plugins/error_handler'; import eventBuilder from '../../core/event_builder/index.js'; import eventDispatcher from '../../plugins/event_dispatcher/index.node'; -import jsonSchemaValidator from '../../utils/json_schema_validator'; +import * as jsonSchemaValidator from '../../utils/json_schema_validator'; import { getTestProjectConfig, getTestProjectConfigWithFeatures, diff --git a/packages/optimizely-sdk/lib/core/project_config/project_config_manager.tests.js b/packages/optimizely-sdk/lib/core/project_config/project_config_manager.tests.js index de38044ea..e43b95fc5 100644 --- a/packages/optimizely-sdk/lib/core/project_config/project_config_manager.tests.js +++ b/packages/optimizely-sdk/lib/core/project_config/project_config_manager.tests.js @@ -25,7 +25,7 @@ import { ERROR_MESSAGES, LOG_MESSAGES } from '../../utils/enums'; import testData from '../../tests/test_data'; import * as optimizelyConfig from '../optimizely_config/index'; import projectConfigManager from './project_config_manager'; -import jsonSchemaValidator from '../../utils/json_schema_validator'; +import * as jsonSchemaValidator from '../../utils/json_schema_validator'; describe('lib/core/project_config/project_config_manager', function() { var globalStubErrorHandler; diff --git a/packages/optimizely-sdk/lib/core/project_config/project_config_schema.js b/packages/optimizely-sdk/lib/core/project_config/project_config_schema.ts similarity index 97% rename from packages/optimizely-sdk/lib/core/project_config/project_config_schema.js rename to packages/optimizely-sdk/lib/core/project_config/project_config_schema.ts index d04959b0d..e21830b89 100644 --- a/packages/optimizely-sdk/lib/core/project_config/project_config_schema.js +++ b/packages/optimizely-sdk/lib/core/project_config/project_config_schema.ts @@ -17,7 +17,9 @@ /** * Project Config JSON Schema file used to validate the project json datafile */ -export var schema = { + import { JSONSchema4 } from 'json-schema'; + + var schemaDefinition = { $schema: 'http://json-schema.org/draft-04/schema#', type: 'object', properties: { @@ -276,4 +278,6 @@ export var schema = { }, }; -export default schema; +const schema = schemaDefinition as JSONSchema4 + +export default schema diff --git a/packages/optimizely-sdk/lib/optimizely/index.tests.js b/packages/optimizely-sdk/lib/optimizely/index.tests.js index 777d4c505..003685832 100644 --- a/packages/optimizely-sdk/lib/optimizely/index.tests.js +++ b/packages/optimizely-sdk/lib/optimizely/index.tests.js @@ -31,7 +31,7 @@ import errorHandler from '../plugins/error_handler'; import fns from '../utils/fns'; import logger from '../plugins/logger'; import decisionService from '../core/decision_service'; -import jsonSchemaValidator from '../utils/json_schema_validator'; +import * as jsonSchemaValidator from '../utils/json_schema_validator'; import projectConfig from '../core/project_config'; import testData from '../tests/test_data'; diff --git a/packages/optimizely-sdk/lib/utils/json_schema_validator/index.js b/packages/optimizely-sdk/lib/utils/json_schema_validator/index.ts similarity index 74% rename from packages/optimizely-sdk/lib/utils/json_schema_validator/index.js rename to packages/optimizely-sdk/lib/utils/json_schema_validator/index.ts index 3f21978de..a30df70a8 100644 --- a/packages/optimizely-sdk/lib/utils/json_schema_validator/index.js +++ b/packages/optimizely-sdk/lib/utils/json_schema_validator/index.ts @@ -17,21 +17,21 @@ import { sprintf } from '@optimizely/js-sdk-utils'; import { validate as jsonSchemaValidator } from 'json-schema'; import { ERROR_MESSAGES } from '../enums'; -import projectConfigSchema from '../../core/project_config/project_config_schema'; +import schema from '../../core/project_config/project_config_schema'; -var MODULE_NAME = 'JSON_SCHEMA_VALIDATOR'; +const MODULE_NAME = 'JSON_SCHEMA_VALIDATOR'; /** * Validate the given json object against the specified schema - * @param {Object} jsonObject The object to validate against the schema - * @return {Boolean} True if the given object is valid + * @param {unknown} jsonObject The object to validate against the schema + * @return {boolean} true if the given object is valid */ -export var validate = function(jsonObject) { +export function validate(jsonObject: unknown): boolean { if (!jsonObject) { throw new Error(sprintf(ERROR_MESSAGES.NO_JSON_PROVIDED, MODULE_NAME)); } - var result = jsonSchemaValidator(jsonObject, projectConfigSchema); + const result = jsonSchemaValidator(jsonObject as {}, schema); if (result.valid) { return true; } else { @@ -42,8 +42,4 @@ export var validate = function(jsonObject) { } throw new Error(sprintf(ERROR_MESSAGES.INVALID_JSON, MODULE_NAME)); } -}; - -export default { - validate: validate, -}; +}