@speckle/objectloader
Version:
Simple API helper to stream in objects from the Speckle Server.
58 lines (50 loc) • 1.59 kB
text/typescript
/**
* This is written manually & should be kept up to date when the API changes
*/
export interface SpeckleObject extends Record<string, unknown> {
totalChildrenCount?: number
}
type Logger = (...args: unknown[]) => void
export type ProgressStage = 'download' | 'construction'
/**
* ObjectLoader class
*/
class ObjectLoader {
constructor(params: {
serverUrl: string
streamId: string
objectId: string
token?: string
options?: Partial<{
/**
* Whether IndexedDB caching is enabled (disabled by default in node envs where IndexedDB is not available)
*/
enableCaching: boolean
fullyTraverseArrays: boolean
excludeProps: Array
/**
* Override fetch implementation (necessary in node environment)
*/
fetch: GlobalFetch['fetch']
/**
* Optionally provide alternative for console.log
*/
customLogger: Logger
/**
* Optionally provide alternative for console.warn
*/
customWarner: Logger
}>
})
static createFromObjects(objects: object[]): ObjectLoader
static createFromJSON(input: string): ObjectLoader
async getRootObject(): Promise<SpeckleObject>
async getTotalObjectCount(): Promise<number>
async getAndConstructObject(
onProgress: (e: { stage: ProgressStage; current: number; total: number }) => void
): SpeckleObject | SpeckleObject[]
async *getObjectIterator(): AsyncGenerator<SpeckleObject, SpeckleObject>
async getObject(id: string): Promise<Record<string, unknown>>
dispose(): void
}
export default ObjectLoader