While doing so: - Use ProjectLoader for loading projects - Stop using loadEmptyProject and supply empty project data - Move project loading to App, GUI now receives data (as a string - the vm should receive an object eventually) - Add logging
23 lines
600 B
JavaScript
23 lines
600 B
JavaScript
const xhr = require('xhr');
|
|
|
|
const log = require('./log');
|
|
|
|
class ProjectLoader {
|
|
constructor () {
|
|
this.DEFAULT_PROJECT_DATA = ProjectLoader.DEFAULT_PROJECT_DATA;
|
|
}
|
|
load (id, callback) {
|
|
callback = callback || (err => log.error(err));
|
|
xhr({
|
|
uri: `https://projects.scratch.mit.edu/internalapi/project/${id}/get/`
|
|
}, (err, res, body) => {
|
|
if (err) return callback(err);
|
|
callback(null, body);
|
|
});
|
|
}
|
|
}
|
|
|
|
ProjectLoader.DEFAULT_PROJECT_DATA = require('./empty-project.json');
|
|
|
|
module.exports = new ProjectLoader();
|