fix: simplify export import typedef (#1818)

* fix: simplify export import typedef

* feat: expose kvstore methods in the service too

* chore: update versioning
This commit is contained in:
Daniel Salazar
2025-10-24 12:52:58 -07:00
committed by GitHub
parent 1a1e9e8bb2
commit 3fb3cf0e60
5 changed files with 13 additions and 13 deletions

14
extensions/api.d.ts vendored
View File

@@ -1,10 +1,10 @@
import type { Actor } from '@heyputer/backend/src/services/auth/Actor.js';
import type { MeteringService } from '@heyputer/backend/src/services/MeteringService/MeteringService.ts';
import type { MeteringServiceWrapper } from '@heyputer/backend/src/services/MeteringService/MeteringServiceWrapper.mjs';
import type { DBKVStore } from '@heyputer/backend/src/services/repositories/DBKVStore/DBKVStore.ts';
import type { SUService } from '@heyputer/backend/src/services/SUService.js';
import type { RequestHandler } from 'express';
import type helpers from '../src/backend/src/helpers.js';
declare global {
namespace Express {
interface Request {
@@ -37,20 +37,16 @@ interface CoreRuntimeModule {
}
}
type StripPrefix<TPrefix extends string, T extends string> = T extends `${TPrefix}.${infer R}` ? R : never;
// TODO DS: define this globally in core to use it there too
interface ServiceNameMap {
'meteringService': { meteringService: MeteringService } & MeteringService // TODO DS: squash into a single class without wrapper
'meteringService': Pick<MeteringServiceWrapper, 'meteringService'> & MeteringService // TODO DS: squash into a single class without wrapper
'puter-kv': DBKVStore
'su': SUService
}
interface Extension extends RouterMethods {
import<T extends (`service:${keyof ServiceNameMap}` | 'core') | (string & {})>(module: T): T extends `service:${infer R extends keyof ServiceNameMap}`
import(module:'core'): CoreRuntimeModule,
import<T extends `service:${keyof ServiceNameMap}`| (string & {})>(module: T): T extends `service:${infer R extends keyof ServiceNameMap}`
? ServiceNameMap[R]
: T extends 'core'
? CoreRuntimeModule
: unknown;
: unknown;
}
declare global {

2
package-lock.json generated
View File

@@ -20075,7 +20075,7 @@
},
"src/puter-js": {
"name": "@heyputer/puter.js",
"version": "2.1.1",
"version": "2.1.2",
"license": "Apache-2.0",
"dependencies": {
"@heyputer/kv.js": "^0.2.1",

View File

@@ -11,6 +11,10 @@ export class DBKVServiceWrapper extends BaseService {
meteringService: this.services.get('meteringService').meteringService,
globalConfig: this.global_config,
});
Object.getOwnPropertyNames(DBKVStore.prototype).forEach(fn => {
if ( fn === 'constructor' ) return;
this[fn] = (...args) => this.kvStore[fn](args);
});
}
static IMPLEMENTS = {
['puter-kvstore']: Object.getOwnPropertyNames(DBKVStore.prototype)

View File

@@ -1,12 +1,12 @@
{
"name": "puter",
"version": "2.1.1",
"version": "2.1.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "puter",
"version": "2.1.1",
"version": "2.1.2",
"license": "Apache-2.0",
"dependencies": {
"@heyputer/kv.js": "^0.1.92",

View File

@@ -1,6 +1,6 @@
{
"name": "@heyputer/puter.js",
"version": "2.1.1",
"version": "2.1.2",
"description": "Puter.js - A JavaScript library for interacting with Puter services.",
"main": "src/index.js",
"types": "index.d.ts",