@elysiajs/eden 0.3.0-exp-230222.2210 → 0.3.0-exp-230224.1831

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.
package/dist/types.d.ts CHANGED
@@ -2,24 +2,23 @@
2
2
  import type { Elysia, SCHEMA, TypedRoute, IsPathParameter, EXPOSED } from 'elysia';
3
3
  import type { EdenWS } from '.';
4
4
  import { type EdenFetchError } from './utils';
5
- declare type IsAny<T> = unknown extends T ? [T] extends [object] ? true : false : false;
6
5
  declare type Promisify<T extends (...args: any[]) => any> = T extends (...args: infer Args) => infer Return ? Return extends Promise<any> ? T : (...args: Args) => Promise<Return> : never;
7
6
  declare type Asynctify<T> = T extends infer Fn extends (...args: any) => any ? Promisify<Fn> : T extends Record<string, any> ? {
8
7
  [K in keyof T]: EdenFn<T[K]>;
9
8
  } : never;
10
9
  declare type EdenFn<T> = T extends {
11
- [EXPOSED]: true;
10
+ [EXPOSED]: any;
12
11
  value: infer Value;
13
12
  } ? Asynctify<Value> : Asynctify<T>;
14
13
  declare type CreateEdenFn<Exposed extends Record<string, any>> = EdenFn<Exposed> & {
15
14
  $set(config: EdenConfig): void;
16
15
  $clone(config?: EdenConfig): CreateEdenFn<Exposed>;
17
16
  };
18
- export declare type Eden<App extends Elysia<any>> = App['store'] extends {
19
- [key in typeof SCHEMA]: any;
20
- } ? IsAny<Elysia> extends true ? 'Please install Elysia before using Eden' : UnionToIntersection<CreateEden<App['store'][typeof SCHEMA]>> & {
21
- $fn: CreateEdenFn<App['store'][typeof EXPOSED]>;
22
- } : never;
17
+ export declare type Eden<App extends Elysia<any>> = App['meta'] extends {
18
+ [key in typeof SCHEMA]: infer Schema extends Record<string, Record<string, TypedRoute>>;
19
+ } ? UnionToIntersection<CreateEden<Schema>> & {
20
+ $fn: CreateEdenFn<App['meta'][typeof EXPOSED]>;
21
+ } : 'Please install Elysia before using Eden';
23
22
  export interface EdenCall {
24
23
  [x: string]: any;
25
24
  $fetch?: RequestInit;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elysiajs/eden",
3
- "version": "0.3.0-exp-230222.2210",
3
+ "version": "0.3.0-exp-230224.1831",
4
4
  "description": "Fully type-safe Elysia client",
5
5
  "author": {
6
6
  "name": "saltyAom",
@@ -36,7 +36,7 @@
36
36
  "release": "npm run build && npm run test && npm publish --access public"
37
37
  },
38
38
  "peerDependencies": {
39
- "elysia": ">= 0.3.0-exp-230222.2123"
39
+ "elysia": ">= 0.3.0-exp-230223.1133"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@elysiajs/cors": "^0.1.0",
@@ -45,7 +45,7 @@
45
45
  "@types/node": "^18.11.7",
46
46
  "bun-types": "^0.5.0",
47
47
  "eslint": "^8.26.0",
48
- "elysia": "../elysia",
48
+ "elysia": "^0.3.0-exp-230223.1133",
49
49
  "rimraf": "^3.0.2",
50
50
  "typescript": "^4.8.4",
51
51
  "vite": "^4.0.1",
package/src/types.ts CHANGED
@@ -33,7 +33,7 @@ type Asynctify<T> = T extends infer Fn extends (...args: any) => any
33
33
  : never
34
34
 
35
35
  type EdenFn<T> = T extends {
36
- [EXPOSED]: true
36
+ [EXPOSED]: any
37
37
  value: infer Value
38
38
  }
39
39
  ? Asynctify<Value>
@@ -44,15 +44,16 @@ type CreateEdenFn<Exposed extends Record<string, any>> = EdenFn<Exposed> & {
44
44
  $clone(config?: EdenConfig): CreateEdenFn<Exposed>
45
45
  }
46
46
 
47
- export type Eden<App extends Elysia<any>> = App['store'] extends {
48
- [key in typeof SCHEMA]: any
47
+ export type Eden<App extends Elysia<any>> = App['meta'] extends {
48
+ [key in typeof SCHEMA]: infer Schema extends Record<
49
+ string,
50
+ Record<string, TypedRoute>
51
+ >
49
52
  }
50
- ? IsAny<Elysia> extends true
51
- ? 'Please install Elysia before using Eden'
52
- : UnionToIntersection<CreateEden<App['store'][typeof SCHEMA]>> & {
53
- $fn: CreateEdenFn<App['store'][typeof EXPOSED]>
54
- }
55
- : never
53
+ ? UnionToIntersection<CreateEden<Schema>> & {
54
+ $fn: CreateEdenFn<App['meta'][typeof EXPOSED]>
55
+ }
56
+ : 'Please install Elysia before using Eden'
56
57
 
57
58
  export interface EdenCall {
58
59
  [x: string]: any