From ca91294b31ea4b67500ad783f7c2400070e5c038 Mon Sep 17 00:00:00 2001 From: Connor Hudson Date: Tue, 19 Jun 2018 11:24:54 -0400 Subject: [PATCH] Add ScratchStorage subclass for getting project JSON --- src/lib/storage.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/lib/storage.js diff --git a/src/lib/storage.js b/src/lib/storage.js new file mode 100644 index 000000000..52ee36502 --- /dev/null +++ b/src/lib/storage.js @@ -0,0 +1,26 @@ +import ScratchStorage from 'scratch-storage'; + +const PROJECT_SERVER = 'https://projects.scratch.mit.edu'; + +/** + * Wrapper for ScratchStorage which adds default web sources. + * @todo make this more configurable + */ +class Storage extends ScratchStorage { + constructor () { + super(); + this.addWebSource( // https://github.com/babel/babel/issues/7022 + [this.AssetType.Project], + projectAsset => { + const [projectId, revision] = projectAsset.assetId.split('.'); + return revision ? + `${PROJECT_SERVER}/internalapi/project/${projectId}/get/${revision}` : + `${PROJECT_SERVER}/internalapi/project/${projectId}/get/`; + } + ); + } +} + +const storage = new Storage(); + +export default storage;