Simplify PuterVersionService

This commit is contained in:
KernelDeimos 2024-04-11 14:37:34 -04:00
parent e3d238f897
commit fc5025a2a8
4 changed files with 18 additions and 54 deletions

2
package-lock.json generated
View File

@ -10789,7 +10789,7 @@
},
"packages/backend": {
"name": "@heyputer/backend",
"version": "1.0.0",
"version": "2.0.2",
"license": "AGPL-3.0-only",
"workspaces": [
"packages/*"

View File

@ -43,6 +43,11 @@ module.exports = CoreModule;
const install = async ({ services, app }) => {
const config = require('./config');
// /!\ IMPORTANT /!\
// For new services, put the import immediate above the
// call to services.registerService. We'll clean this up
// in a future PR.
const { LogService } = require('./services/runtime-analysis/LogService');
const { PagerService } = require('./services/runtime-analysis/PagerService');
const { AlarmService } = require('./services/runtime-analysis/AlarmService');
@ -182,6 +187,8 @@ const install = async ({ services, app }) => {
const { EventService } = require('./services/EventService');
services.registerService('event', EventService);
const { PuterVersionService } = require('./services/PuterVersionService');
services.registerService('puter-version', PuterVersionService);
}
const install_legacy = async ({ services }) => {
@ -192,7 +199,6 @@ const install_legacy = async ({ services }) => {
const PerformanceMonitor = require('./monitor/PerformanceMonitor');
const { OperationTraceService } = require('./services/OperationTraceService');
const { WSPushService } = require('./services/WSPushService');
const { PuterVersionService } = require('./services/PuterVersionService');
const { ReferralCodeService } = require('./services/ReferralCodeService');
const { Emailservice } = require('./services/EmailService');
const { ClientOperationService } = require('./services/ClientOperationService');
@ -207,7 +213,6 @@ const install_legacy = async ({ services }) => {
services.registerService('filesystem', FilesystemService);
services.registerService('operationTrace', OperationTraceService);
services.registerService('__event-push-ws', WSPushService);
services.registerService('puter-version', PuterVersionService);
services.registerService('referral-code', ReferralCodeService);
services.registerService('email', Emailservice);
services.registerService('file-cache', FileCacheService);

View File

@ -22,7 +22,6 @@ class PuterAPIService extends BaseService {
async ['__on_install.routes'] () {
const { app } = this.services.get('web-server');
app.use(require('../routers/version'))
app.use(require('../routers/apps'))
app.use(require('../routers/query/app'))
app.use(require('../routers/change_username'))

View File

@ -16,66 +16,26 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
const { AdvancedBase } = require("puter-js-common");
const { NodeUIDSelector } = require("../filesystem/node/selectors");
const { get_user } = require("../helpers");
const { TeePromise } = require("../util/promise");
const { StreamBuffer } = require("../util/streamutil");
const BaseService = require("./BaseService");
class PuterVersionService extends AdvancedBase {
static MODULES = {
_path: require('path'),
fs: require('fs'),
_exec: require('child_process').execSync,
axios: require('axios'),
class PuterVersionService extends BaseService {
async _init () {
this.boot_time = Date.now();
}
constructor ({ services, config }) {
super();
this.fs = services.get('filesystem');
this.config = config;
this._init({ config });
this.ready_ = new TeePromise();
}
async _init ({ config }) {
// this.node = await this.fs.node(new NodeUIDSelector(config.puter_hosted_data.puter_versions));
// this.user = await get_user({ username: 'puter' });
// await this._poll_versions({ config });
// setInterval(async () => {
// await this._poll_versions({ config });
// }, 60 * 1000);
}
// not used anymore - this was for getting version numbers from a file hosted on puter
async _poll_versions ({ config }) {
const resp = await this.modules.axios.get(
config.puter_hosted_data.puter_versions
);
this.versions_ = resp.data.versions;
this.ready_.resolve();
async ['__on_install.routes'] () {
const { app } = this.services.get('web-server');
app.use(require('../routers/version'));
}
get_version () {
let deploy_timestamp;
if ( this.config.env === 'dev' ) {
deploy_timestamp = Date.now();
} else {
deploy_timestamp = Number.parseInt((this.modules.fs.readFileSync(
this.modules._path.join(__dirname, '../../deploy_timestamp'),
'utf8'
)).trim());
}
const version = process.env.npm_package_version ||
require('../../package.json').version;
return {
version,
environment: this.config.env,
location: this.config.server_id,
deploy_timestamp,
environment: this.global_config.env,
location: this.global_config.server_id,
deploy_timestamp: this.boot_time,
};
}
}