From e0641639da8c193d2ac2cc919fef72ff032ecb65 Mon Sep 17 00:00:00 2001 From: Dimitrie Stefanescu Date: Thu, 25 Mar 2021 17:27:29 +0000 Subject: [PATCH] feat(loader): separated object loader into separate package --- .../ObjectLoader.js => objectloader/index.js} | 8 +++++- packages/objectloader/package.json | 12 +++++++++ packages/viewer/package.json | 5 ++-- packages/viewer/readme.md | 8 ++++-- packages/viewer/src/app.js | 2 +- packages/viewer/src/index.js | 3 +-- .../viewer/src/modules/ViewerObjectLoader.js | 2 +- packages/viewer/src/readme.md | 25 +++++++++++++++++++ 8 files changed, 56 insertions(+), 9 deletions(-) rename packages/{viewer/src/modules/ObjectLoader.js => objectloader/index.js} (97%) create mode 100644 packages/objectloader/package.json create mode 100644 packages/viewer/src/readme.md diff --git a/packages/viewer/src/modules/ObjectLoader.js b/packages/objectloader/index.js similarity index 97% rename from packages/viewer/src/modules/ObjectLoader.js rename to packages/objectloader/index.js index 5df13a4b9..59a8c833b 100644 --- a/packages/viewer/src/modules/ObjectLoader.js +++ b/packages/objectloader/index.js @@ -2,6 +2,7 @@ * Simple client that streams object info from a Speckle Server. * TODO: This should be split from the viewer into its own package. */ + export default class ObjectLoader { constructor( { serverUrl, streamId, token, objectId } ) { @@ -12,10 +13,15 @@ export default class ObjectLoader { this.streamId = streamId this.objectId = objectId this.token = token || localStorage.getItem( 'AuthToken' ) + this.headers = { - 'Authorization': `Bearer ${this.token}`, 'Accept': 'text/plain' } + + if( token ) { + this.headers['Authorization'] = `Bearer ${this.token}` + } + this.requestUrl = `${this.serverUrl}/objects/${this.streamId}/${this.objectId}` this.promises = [] this.intervals = {} diff --git a/packages/objectloader/package.json b/packages/objectloader/package.json new file mode 100644 index 000000000..76bd0932a --- /dev/null +++ b/packages/objectloader/package.json @@ -0,0 +1,12 @@ +{ + "name": "@speckle/objectloader", + "version": "2.0.0", + "description": "Simple API helper to stream in objects from the Speckle Server.", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "AEC Systems", + "license": "SEE LICENSE NOTE IN readme.md" +} diff --git a/packages/viewer/package.json b/packages/viewer/package.json index b5ee142d3..32359738e 100644 --- a/packages/viewer/package.json +++ b/packages/viewer/package.json @@ -1,7 +1,7 @@ { "name": "@speckle/viewer", "version": "2.0.0", - "description": "Speckle js utilities.", + "description": "A 3d viewer for Speckle, based on threejs.", "main": "dist/Speckle.js", "files": [ "dist" @@ -34,7 +34,8 @@ "webpack": "5.11.0", "webpack-cli": "^4.3.1", "webpack-dev-server": "^3.11.1", - "yargs": "^10.0.3" + "yargs": "^10.0.3", + "@speckle/objectloader": "^2.0.0" }, "dependencies": { "camera-controls": "^1.26.0", diff --git a/packages/viewer/readme.md b/packages/viewer/readme.md index 2f9e4824a..a5bc7c049 100644 --- a/packages/viewer/readme.md +++ b/packages/viewer/readme.md @@ -14,12 +14,16 @@ Comprehensive developer and user documentation can be found in our: ## Getting started -Note, these are WIP instructions. For development purposes, to start a webpack live reload server run: +Note, these are WIP instructions. More details coming soon! + +For development purposes, to start a webpack live reload server run: ``` npm run serve ``` +You can now access the example at [http://localhost:9000/example.html](http://localhost:9000/example.html). + To build the library, you should run: ``` @@ -32,4 +36,4 @@ If in trouble, the Speckle Community hangs out on [the forum](https://speckle.co ## License -Unless otherwise described, the code in this repository is licensed under the Apache-2.0 License. Please note that some modules, extensions or code herein might be otherwise licensed. This is indicated either in the root of the containing folder under a different license file, or in the respective file's header. If you have any questions, don't hesitate to get in touch with us via [email](mailto:hello@speckle.systems). +Unless otherwise described, the code in this repository is licensed under the Apache-2.0 License. If you have any questions, don't hesitate to get in touch with us via [email](mailto:hello@speckle.systems). diff --git a/packages/viewer/src/app.js b/packages/viewer/src/app.js index d6b4eb631..178c1d516 100644 --- a/packages/viewer/src/app.js +++ b/packages/viewer/src/app.js @@ -1,6 +1,6 @@ import Viewer from './modules/Viewer' -import ObjectLoader from './modules/ObjectLoader' +import ObjectLoader from '@speckle/objectloader' import Converter from './modules/Converter' let v = new Viewer( { container: document.getElementById( 'renderer' ), showStats: true } ) diff --git a/packages/viewer/src/index.js b/packages/viewer/src/index.js index 3f17e57e3..e238d53ee 100644 --- a/packages/viewer/src/index.js +++ b/packages/viewer/src/index.js @@ -1,5 +1,4 @@ import Viewer from './modules/Viewer' -import ObjectLoader from './modules/ObjectLoader' import Converter from './modules/Converter' -export { Viewer, ObjectLoader, Converter } +export { Viewer, Converter } diff --git a/packages/viewer/src/modules/ViewerObjectLoader.js b/packages/viewer/src/modules/ViewerObjectLoader.js index 505eca842..360d5df8c 100644 --- a/packages/viewer/src/modules/ViewerObjectLoader.js +++ b/packages/viewer/src/modules/ViewerObjectLoader.js @@ -1,4 +1,4 @@ -import ObjectLoader from './ObjectLoader' +import ObjectLoader from '@speckle/objectloader' import Converter from './Converter' /** diff --git a/packages/viewer/src/readme.md b/packages/viewer/src/readme.md new file mode 100644 index 000000000..febbf5c87 --- /dev/null +++ b/packages/viewer/src/readme.md @@ -0,0 +1,25 @@ +# The Speckle Object Loader + +[![Twitter Follow](https://img.shields.io/twitter/follow/SpeckleSystems?style=social)](https://twitter.com/SpeckleSystems) [![Community forum users](https://img.shields.io/discourse/users?server=https%3A%2F%2Fspeckle.community&style=flat-square&logo=discourse&logoColor=white)](https://speckle.community) [![website](https://img.shields.io/badge/https://-speckle.systems-royalblue?style=flat-square)](https://speckle.systems) [![docs](https://img.shields.io/badge/docs-speckle.guide-orange?style=flat-square&logo=read-the-docs&logoColor=white)](https://speckle.guide/dev/) + +## Documentation + +Comprehensive developer and user documentation can be found in our: + +#### 📚 [Speckle Docs website](https://speckle.guide/dev/) + +## Getting started + +This module is meant to simply help you stream objects from a Speckle Server by using the "efficient" download endpoint. + +It is currently used in [the 3d viewer](../viewer). Please check there for example usage! + +More details coming soon! + +## Community + +If in trouble, the Speckle Community hangs out on [the forum](https://speckle.community). Do join and introduce yourself! We're happy to help. + +## License + +Unless otherwise described, the code in this repository is licensed under the Apache-2.0 License. If you have any questions, don't hesitate to get in touch with us via [email](mailto:hello@speckle.systems).