SelfhostedModule.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. const { AdvancedBase } = require("puter-js-common");
  2. class SelfhostedModule extends AdvancedBase {
  3. async install (context) {
  4. const services = context.get('services');
  5. const DefaultUserService = require('./services/DefaultUserService');
  6. services.registerService('__default-user', DefaultUserService);
  7. const ComplainAboutVersionsService = require('./services/ComplainAboutVersionsService');
  8. services.registerService('complain-about-versions', ComplainAboutVersionsService);
  9. const DevWatcherService = require('./services/DevWatcherService');
  10. const path_ = require('path');
  11. services.registerService('__dev-watcher', DevWatcherService, {
  12. root: path_.resolve(__dirname, '../../../'),
  13. commands: [
  14. {
  15. name: 'puter.js:webpack-watch',
  16. directory: 'packages/puter-js',
  17. command: 'npm',
  18. args: ['run', 'start-webpack'],
  19. },
  20. {
  21. name: 'terminal:rollup-watch',
  22. directory: 'packages/terminal',
  23. command: 'npx',
  24. args: ['rollup', '-c', 'rollup.config.js', '--watch'],
  25. },
  26. {
  27. name: 'phoenix:rollup-watch',
  28. directory: 'packages/phoenix',
  29. command: 'npx',
  30. args: ['rollup', '-c', 'rollup.config.js', '--watch'],
  31. },
  32. ],
  33. });
  34. const ServeStaticFilesService = require("./services/ServceStaticFilesService");
  35. services.registerService('__serve-puterjs', ServeStaticFilesService, {
  36. directories: [
  37. {
  38. prefix: '/sdk',
  39. path: path_.resolve(__dirname, '../../../packages/puter-js/dist'),
  40. },
  41. {
  42. prefix: '/builtin/terminal',
  43. path: path_.resolve(__dirname, '../../../packages/terminal/dist'),
  44. },
  45. {
  46. prefix: '/builtin/phoenix',
  47. path: path_.resolve(__dirname, '../../../packages/phoenix/dist'),
  48. },
  49. ],
  50. });
  51. }
  52. }
  53. module.exports = SelfhostedModule;