From 601eb019a2e0a31454cf991e0e6b62322cf3a1eb Mon Sep 17 00:00:00 2001 From: KernelDeimos <7225168+KernelDeimos@users.noreply.github.com> Date: Fri, 26 Sep 2025 13:43:53 -0400 Subject: [PATCH] dev(extensions): [+] data The data extension adds convenient access to the database and kvstore via it's 'db' and 'kv' exports. Example usage: const { db, kv } = extensions.import('data'); await kv.set('some-key', 'some-value'); await db.write('INSERT INTO something (a, b) VALUES (1, 2)'); --- extensions/data.js | 10 ++++++++++ src/backend/src/CoreModule.js | 2 ++ 2 files changed, 12 insertions(+) create mode 100644 extensions/data.js diff --git a/extensions/data.js b/extensions/data.js new file mode 100644 index 000000000..c865dc138 --- /dev/null +++ b/extensions/data.js @@ -0,0 +1,10 @@ +//@extension priority -10000 + +const { DB_WRITE } = extension.import('core').database; +const svc_database = extension.import('service:database'); +const svc_kvstore = extension.import('service:puter-kvstore'); + +extension.exports = { + db: svc_database.get(DB_WRITE, 'extensions'), + kv: svc_kvstore.as('puter-kvstore'), +}; diff --git a/src/backend/src/CoreModule.js b/src/backend/src/CoreModule.js index 60b5c96d8..ce32471de 100644 --- a/src/backend/src/CoreModule.js +++ b/src/backend/src/CoreModule.js @@ -105,6 +105,8 @@ const install = async ({ context, services, app, useapi, modapi }) => { def('web', require('./util/expressutil')); def('core.validation', require('@heyputer/backend-core-0').validation); + def('core.database', require('./services/database/consts.js')); + // Extension compatibility const runtimeModule = new RuntimeModule({ name: 'core' }); context.get('runtime-modules').register(runtimeModule);