@deessejs/functions 0.0.38 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,16 +7,24 @@ function defineContext() {
7
7
  withExtensions: (config) => {
8
8
  // runtime builder (inchangé)
9
9
  const runtimeBuilder = {};
10
- const dummyContext = {};
10
+ // Utiliser un contexte runtime vide, mais conserver le type complet
11
+ const runtimeContext = {};
11
12
  for (const extension of config.extensions) {
12
- // appele runtime, pour construire les méthodes effectives
13
- const extensionMethods = extension.functions(dummyContext);
13
+ // Passer le contexte runtime complet (même vide) pour conserver les types
14
+ const extensionMethods = extension.functions(runtimeContext);
14
15
  Object.assign(runtimeBuilder, extensionMethods);
15
16
  }
16
- // On retourne runtimeBuilder mais on force le type public attendu.
17
+ // Créer un objet context qui préserve les types pour l'inférence
18
+ const contextProxy = new Proxy({}, {
19
+ get(_, prop) {
20
+ // Retourner undefined pour les propriétés inconnues, mais préserver le type
21
+ return runtimeContext[prop];
22
+ }
23
+ });
24
+ // On retourne runtimeBuilder avec un contexte qui préserve les types
17
25
  return {
18
26
  ...runtimeBuilder,
19
- context: {},
27
+ context: contextProxy,
20
28
  };
21
29
  },
22
30
  };
@@ -16,4 +16,5 @@ export declare const rpc: import("./types").Extension<undefined, Record<string,
16
16
  handler: (ctx: C, args: z.infer<TArgs>) => AsyncResult<TOutput_1, TError_1>;
17
17
  }) => MutationDefinition<C, TArgs, TOutput_1, TError_1>;
18
18
  group: <T extends Record<string, APINode>>(definitions: T) => T;
19
+ context: C;
19
20
  }>;
@@ -15,5 +15,7 @@ exports.rpc = (0, _1.extensions)({
15
15
  return { _type: "mutation", ...options };
16
16
  },
17
17
  group: (definitions) => definitions,
18
+ // Pour le typing, on expose le type de contexte
19
+ context: context,
18
20
  }),
19
21
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deessejs/functions",
3
- "version": "0.0.38",
3
+ "version": "0.0.39",
4
4
  "description": "A powerful utility library for building type-safe APIs and functions with context management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",