A solution to using a remote ide

Like most people, I like the play canvas ide,especially it’s auto complete. From time to time I like to refractor and I need a way to quickly edit code from there to here. So I nabbed the playcanvaswebpackplugin, zombie’d it, and wrote this script. Works with an exported project to save it back up.

const fs= require('fs');

const request = require('request-promise')
console.log(process.argv);
var filepath =process.argv[process.argv.length -1];
var match =/(\d+)\\\d\\([a-zA-Z0-9_-]+\.js)$/.exec(filepath)
if(!match) process.exit();

var assetId = match[1];
console.log(match);
var content = fs.readFileSync(filepath,'utf8'); 
let options = {
   "bearer": " ",
   "assetId": assetId,
   "project":  '' 
};

   console.log("Uploading " + filepath  + " to PlayCanvas") 
   let req = request({
       uri: `https://playcanvas.com/api/assets/${assetId}`,
       method: 'PUT',
       headers: {
           "Authorization": `Bearer ${options.bearer}`
       }
   })
   let form = req.form()
    form.append("file", content, {
       filename: filepath,
       contentType: "text/javascript"
   })
   req.then(() => {
       console.log("Upload complete for file " + filepath)
  
   }, (e) => {
       console.error(e)
  
   })


you can use it on save to auto upload existing asset. tested

1 Like