mirror of
https://github.com/HeyPuter/puter.git
synced 2025-12-31 02:00:13 -06:00
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:
14
extensions/api.d.ts
vendored
14
extensions/api.d.ts
vendored
@@ -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
2
package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -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)
|
||||
|
||||
4
src/puter-js/package-lock.json
generated
4
src/puter-js/package-lock.json
generated
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user