diff --git a/packages/js-client/src/core/remote-storage.ts b/packages/js-client/src/core/remote-storage.ts index e22a02a..6db4271 100644 --- a/packages/js-client/src/core/remote-storage.ts +++ b/packages/js-client/src/core/remote-storage.ts @@ -45,7 +45,7 @@ export class RemoteStorage { } const data = await response.text() // Check if valid JSON - if (!data.startsWith('{')) { + if (!data.startsWith('{') && !data.startsWith('[')) { if (data === 'true') { return true as unknown as T } diff --git a/packages/js-client/test/remote-storage.test.ts b/packages/js-client/test/remote-storage.test.ts index 5e01d3f..3c2ef59 100644 --- a/packages/js-client/test/remote-storage.test.ts +++ b/packages/js-client/test/remote-storage.test.ts @@ -55,6 +55,13 @@ describe('global storage', () => { expect(value).toEqual('value') }) + it('should be able to set and get an array', async () => { + const remoteStorage = new RemoteStorage(getConfig()) + await remoteStorage.setItem('key', ['foo', 'bar']) + const value = await remoteStorage.getItem('key') + expect(value).toEqual(['foo', 'bar']) + }) + it('should be able to set and get an object', async () => { const remoteStorage = new RemoteStorage(getConfig()) await remoteStorage.setItem('key', { foo: 'bar' })