From c04ce41b40191c07b5b8ee66d79e9572c7fd5d54 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Sat, 4 Nov 2023 10:12:13 -0500 Subject: [PATCH 1/3] fix(native): parse file response type --- packages/fiber/src/native/polyfills.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/fiber/src/native/polyfills.ts b/packages/fiber/src/native/polyfills.ts index d3bade8317..8d5405273f 100644 --- a/packages/fiber/src/native/polyfills.ts +++ b/packages/fiber/src/native/polyfills.ts @@ -161,7 +161,18 @@ export function polyfills() { .then(async (uri) => { const base64 = await fs.readAsStringAsync(uri, { encoding: fs.EncodingType.Base64 }) const data = Buffer.from(base64, 'base64') - onLoad?.(data.buffer) + + switch (this.responseType) { + case 'arrayBuffer': + return onLoad?.(data.buffer) + case 'blob': + return onLoad?.(new Blob([data.buffer]) as any) + // case 'document': + case 'json': + return onLoad?.(JSON.parse(THREE.LoaderUtils.decodeText(data))) + default: + return onLoad?.(THREE.LoaderUtils.decodeText(data)) + } }) .catch((error) => { onError?.(error) From da9218c03960c71779fc712396b52f88c2ced147 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Sat, 4 Nov 2023 10:16:30 -0500 Subject: [PATCH 2/3] chore: lint --- packages/fiber/src/native/polyfills.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/fiber/src/native/polyfills.ts b/packages/fiber/src/native/polyfills.ts index 8d5405273f..49baad2edd 100644 --- a/packages/fiber/src/native/polyfills.ts +++ b/packages/fiber/src/native/polyfills.ts @@ -166,7 +166,8 @@ export function polyfills() { case 'arrayBuffer': return onLoad?.(data.buffer) case 'blob': - return onLoad?.(new Blob([data.buffer]) as any) + // @ts-ignore + return onLoad?.(new Blob([data.buffer])) // case 'document': case 'json': return onLoad?.(JSON.parse(THREE.LoaderUtils.decodeText(data))) From a34c31b6e4b7a4d370d7a1c54c0cc5271bdea6ff Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Sat, 4 Nov 2023 10:20:37 -0500 Subject: [PATCH 3/3] chore: update tests responseType --- packages/fiber/tests/native/polyfills.test.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/fiber/tests/native/polyfills.test.ts b/packages/fiber/tests/native/polyfills.test.ts index 24c895d343..93cc68e7be 100644 --- a/packages/fiber/tests/native/polyfills.test.ts +++ b/packages/fiber/tests/native/polyfills.test.ts @@ -26,12 +26,16 @@ describe('polyfills', () => { it('loads files via the file system', async () => { const asset = 1 - const file = await new THREE.FileLoader().loadAsync(asset as any) + const loader = new THREE.FileLoader() + loader.setResponseType('arrayBuffer') + const file = await loader.loadAsync(asset as any) expect(typeof (file as ArrayBuffer).byteLength).toBe('number') // TODO: ArrayBuffer instanceof }) it('loads files via http', async () => { - const file = await new THREE.FileLoader().loadAsync('https://example.com/test.png') + const loader = new THREE.FileLoader() + loader.setResponseType('arrayBuffer') + const file = await loader.loadAsync('https://example.com/test.png') expect(typeof (file as ArrayBuffer).byteLength).toBe('number') // TODO: ArrayBuffer instanceof }) })