From 1f7073ef7604884a9bc335a0bcd29ebae8a86d6b Mon Sep 17 00:00:00 2001 From: KernelDeimos Date: Wed, 2 Apr 2025 11:10:51 -0400 Subject: [PATCH] dev: add services property to extensions A small change that adds ".services" to the "extension" global in an extension, so extensions can more easily talk to other services. --- src/backend/src/Extension.js | 11 +++++++++++ src/backend/src/ExtensionService.js | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/backend/src/Extension.js b/src/backend/src/Extension.js index 2291bb2b5..170131cef 100644 --- a/src/backend/src/Extension.js +++ b/src/backend/src/Extension.js @@ -61,6 +61,17 @@ class Extension extends AdvancedBase { return db; } + get services () { + const services = this.service.values.get('services'); + if ( ! services ) { + throw new Error( + 'extension tried to access "services" before it was ' + + 'initialized' + ); + } + return services; + } + /** * This will create a GET endpoint on the default service. * @param {*} path - route for the endpoint diff --git a/src/backend/src/ExtensionService.js b/src/backend/src/ExtensionService.js index 3321090cf..76fe37e91 100644 --- a/src/backend/src/ExtensionService.js +++ b/src/backend/src/ExtensionService.js @@ -80,6 +80,8 @@ class ExtensionService extends BaseService { } async _init (args) { this.state = args.state; + + this.state.values.set('services', this.services); // Create database access object for extension const db = this.services.get('database').get(DB_WRITE, 'extension');