From e9997f1c629cbcded5de8ec09f61548d23733d09 Mon Sep 17 00:00:00 2001 From: Alexandru Popovici Date: Thu, 13 Feb 2025 17:32:25 +0200 Subject: [PATCH] feat(viewer-lib): Loader now allows unknown type for resourceData, so each loader can treat it the way it wants (#3981) --- packages/viewer-sandbox/src/main.ts | 1 - packages/viewer/src/modules/loaders/Loader.ts | 7 ++----- packages/viewer/src/modules/loaders/OBJ/ObjLoader.ts | 2 +- .../viewer/src/modules/loaders/Speckle/SpeckleLoader.ts | 5 ++--- .../src/modules/loaders/Speckle/SpeckleOfflineLoader.ts | 4 ++-- 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/packages/viewer-sandbox/src/main.ts b/packages/viewer-sandbox/src/main.ts index 05fbc7922..c27fcdd54 100644 --- a/packages/viewer-sandbox/src/main.ts +++ b/packages/viewer-sandbox/src/main.ts @@ -20,7 +20,6 @@ import { import { SectionTool } from '@speckle/viewer' import { SectionOutlines } from '@speckle/viewer' import { ViewModesKeys } from './Extensions/ViewModesKeys' -// import { JSONSpeckleStream } from './JSONSpeckleStream' import { BoxSelection } from './Extensions/BoxSelection' import { PassReader } from './Extensions/PassReader' diff --git a/packages/viewer/src/modules/loaders/Loader.ts b/packages/viewer/src/modules/loaders/Loader.ts index fda341230..ac338e580 100644 --- a/packages/viewer/src/modules/loaders/Loader.ts +++ b/packages/viewer/src/modules/loaders/Loader.ts @@ -14,15 +14,12 @@ export interface LoaderEventPayload { export abstract class Loader extends EventEmitter { protected _resource: string - protected _resourceData: string | ArrayBuffer | undefined + protected _resourceData: unknown public abstract get resource(): string public abstract get finished(): boolean - protected constructor( - resource: string, - resourceData?: string | ArrayBuffer | undefined - ) { + protected constructor(resource: string, resourceData?: unknown) { super() this._resource = resource this._resourceData = resourceData diff --git a/packages/viewer/src/modules/loaders/OBJ/ObjLoader.ts b/packages/viewer/src/modules/loaders/OBJ/ObjLoader.ts index 67bc4d577..bfb5479f5 100644 --- a/packages/viewer/src/modules/loaders/OBJ/ObjLoader.ts +++ b/packages/viewer/src/modules/loaders/OBJ/ObjLoader.ts @@ -20,7 +20,7 @@ export class ObjLoader extends Loader { return this.isFinished } - public constructor(targetTree: WorldTree, resource: string, resourceData?: string) { + public constructor(targetTree: WorldTree, resource: string, resourceData?: unknown) { super(resource, resourceData) this.tree = targetTree this.baseLoader = new OBJLoader() diff --git a/packages/viewer/src/modules/loaders/Speckle/SpeckleLoader.ts b/packages/viewer/src/modules/loaders/Speckle/SpeckleLoader.ts index 5e3a2d81d..df54596ef 100644 --- a/packages/viewer/src/modules/loaders/Speckle/SpeckleLoader.ts +++ b/packages/viewer/src/modules/loaders/Speckle/SpeckleLoader.ts @@ -26,7 +26,7 @@ export class SpeckleLoader extends Loader { resource: string, authToken?: string, enableCaching?: boolean, - resourceData?: string | ArrayBuffer + resourceData?: unknown ) { super(resource, resourceData) this.tree = targetTree @@ -49,10 +49,9 @@ export class SpeckleLoader extends Loader { resource: string, authToken?: string, enableCaching?: boolean, - resourceData?: string | ArrayBuffer + resourceData?: unknown ): ObjectLoader { resourceData - let token = undefined try { token = authToken || (localStorage.getItem('AuthToken') as string | undefined) diff --git a/packages/viewer/src/modules/loaders/Speckle/SpeckleOfflineLoader.ts b/packages/viewer/src/modules/loaders/Speckle/SpeckleOfflineLoader.ts index d2acedf59..aa46a7bda 100644 --- a/packages/viewer/src/modules/loaders/Speckle/SpeckleOfflineLoader.ts +++ b/packages/viewer/src/modules/loaders/Speckle/SpeckleOfflineLoader.ts @@ -4,7 +4,7 @@ import { WorldTree } from '../../tree/WorldTree.js' import Logger from '../../utils/Logger.js' export class SpeckleOfflineLoader extends SpeckleLoader { - constructor(targetTree: WorldTree, resourceData: string, resourceId?: string) { + constructor(targetTree: WorldTree, resourceData: unknown, resourceId?: string) { super(targetTree, resourceId || '', undefined, undefined, resourceData) } @@ -12,7 +12,7 @@ export class SpeckleOfflineLoader extends SpeckleLoader { _resource: string, _authToken?: string, _enableCaching?: boolean, - resourceData?: string | ArrayBuffer + resourceData?: unknown ): ObjectLoader { return ObjectLoader.createFromJSON(resourceData as string) }