diff --git a/CHANGELOG.md b/CHANGELOG.md index a82d91e6..2c11ea9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## Change log +### Version: 3.25.2 +#### Date: April-02-2025 +##### Fix: + - allow number, string, object, boolean, and RegExp as valid query parameters in sync method + ### Version: 3.25.1 #### Date: April-01-2025 ##### Fix: diff --git a/package-lock.json b/package-lock.json index 0b706898..c5e90ab8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "contentstack", - "version": "3.25.1", + "version": "3.25.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "contentstack", - "version": "3.25.1", + "version": "3.25.2", "license": "MIT", "dependencies": { "@contentstack/utils": "^1.3.18", diff --git a/package.json b/package.json index c6bf4a51..a3427ed2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "contentstack", - "version": "3.25.1", + "version": "3.25.2", "description": "Contentstack Javascript SDK", "homepage": "https://www.contentstack.com/", "author": { diff --git a/src/core/stack.js b/src/core/stack.js index 2b9ed88b..b9206fd3 100755 --- a/src/core/stack.js +++ b/src/core/stack.js @@ -603,9 +603,16 @@ export default class Stack { if (params) { for (const key in params) { + const value = params[key]; if (params.hasOwnProperty(key)) { - if (typeof params[key] !== "string" && typeof params[key] !== "number") { - throw new Error(`Invalid parameter value for key "${key}": must be a string or number.`); + if ( + typeof value !== "string" && + typeof value !== "number" && + typeof value !== "boolean" && + !(value instanceof RegExp) && + (typeof value !== "object" || value === null) + ) { + throw new Error(`Invalid parameter value for key "${key}": must be a string, number, object, boolean, or RegExp.`); } this._query[key] = params[key]; } diff --git a/test/typescript/sync.test.ts b/test/typescript/sync.test.ts new file mode 100644 index 00000000..e6614573 --- /dev/null +++ b/test/typescript/sync.test.ts @@ -0,0 +1,37 @@ +import * as Contentstack from '../..'; + +const stack = Contentstack.Stack({ api_key: 'api_key', delivery_token: 'delivery_token', environment: 'environment', fetchOptions: { + logHandler: () => { + + } +}}); + +describe('Sync Test', () => { + test('Sync init test', done => { + const response = makeSync({"init": true}) + expect(response).not.toEqual(undefined) + done(); + }); + + test('Sync with startdate test', done => { + const response = makeSync({"init": true, "start_from": "2025-04-02"}) + expect(response).not.toEqual(undefined) + done(); + }); + + test('Sync with locale test', done => { + const response = makeSync({"init": true, "locale": "en-us"}) + expect(response).not.toEqual(undefined) + done(); + }); + + test('Sync with contentTypeUid test', done => { + const response = makeSync({"init": true, "content_type_uid": "ct_uid"}) + expect(response).not.toEqual(undefined) + done(); + }); +}); + +function makeSync(params: any) { + return stack.sync(params) +} \ No newline at end of file