@elysiajs/eden 0.5.0 → 0.5.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elysiajs/eden",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Fully type-safe Elysia client",
5
5
  "author": {
6
6
  "name": "saltyAom",
@@ -42,31 +42,57 @@ export namespace EdenTreaty {
42
42
  $query: Route['query']
43
43
  }) => EdenWS<Route>
44
44
  : IsUnknown<Route['body']> extends true
45
- ? (params?: {
46
- $query?: Record<string, string>
47
- $fetch?: RequestInit
48
- }) => Promise<
49
- | {
50
- data: Route['response']['200']
51
- error: null
52
- }
53
- | {
54
- data: null
55
- error: MapError<
56
- Route['response']
57
- > extends infer Errors
58
- ? IsNever<Errors> extends true
59
- ? EdenFetchError<
45
+ ? undefined extends Route['query']
46
+ ? (params?: {
47
+ $query?: Record<string, string>
48
+ $fetch?: RequestInit
49
+ }) => Promise<
50
+ | {
51
+ data: Route['response']['200']
52
+ error: null
53
+ }
54
+ | {
55
+ data: null
56
+ error: MapError<
57
+ Route['response']
58
+ > extends infer Errors
59
+ ? IsNever<Errors> extends true
60
+ ? EdenFetchError<
61
+ number,
62
+ string
63
+ >
64
+ : Errors
65
+ : EdenFetchError<
60
66
  number,
61
67
  string
62
68
  >
63
- : Errors
64
- : EdenFetchError<
65
- number,
66
- string
67
- >
68
- }
69
- >
69
+ }
70
+ >
71
+ : (params: {
72
+ $query: Route['query']
73
+ $fetch?: RequestInit
74
+ }) => Promise<
75
+ | {
76
+ data: Route['response']['200']
77
+ error: null
78
+ }
79
+ | {
80
+ data: null
81
+ error: MapError<
82
+ Route['response']
83
+ > extends infer Errors
84
+ ? IsNever<Errors> extends true
85
+ ? EdenFetchError<
86
+ number,
87
+ string
88
+ >
89
+ : Errors
90
+ : EdenFetchError<
91
+ number,
92
+ string
93
+ >
94
+ }
95
+ >
70
96
  : (
71
97
  params: Replace<
72
98
  Route['body'],
@@ -116,28 +142,57 @@ export namespace EdenTreaty {
116
142
  $query: Route['query']
117
143
  }) => EdenWS<Route>
118
144
  : IsUnknown<Route['body']> extends true
119
- ? (params?: {
120
- $query?: Record<string, string>
121
- $fetch?: RequestInit
122
- }) => Promise<
123
- | {
124
- data: Route['response']['200']
125
- error: null
126
- }
127
- | {
128
- data: null
129
- error: MapError<
130
- Route['response']
131
- > extends infer Errors
132
- ? IsNever<Errors> extends true
133
- ? EdenFetchError<
145
+ ? undefined extends Route['query']
146
+ ? (params?: {
147
+ $query?: Record<string, string>
148
+ $fetch?: RequestInit
149
+ }) => Promise<
150
+ | {
151
+ data: Route['response']['200']
152
+ error: null
153
+ }
154
+ | {
155
+ data: null
156
+ error: MapError<
157
+ Route['response']
158
+ > extends infer Errors
159
+ ? IsNever<Errors> extends true
160
+ ? EdenFetchError<
161
+ number,
162
+ string
163
+ >
164
+ : Errors
165
+ : EdenFetchError<
134
166
  number,
135
167
  string
136
168
  >
137
- : Errors
138
- : EdenFetchError<number, string>
139
- }
140
- >
169
+ }
170
+ >
171
+ : (params: {
172
+ $query: Route['query']
173
+ $fetch?: RequestInit
174
+ }) => Promise<
175
+ | {
176
+ data: Route['response']['200']
177
+ error: null
178
+ }
179
+ | {
180
+ data: null
181
+ error: MapError<
182
+ Route['response']
183
+ > extends infer Errors
184
+ ? IsNever<Errors> extends true
185
+ ? EdenFetchError<
186
+ number,
187
+ string
188
+ >
189
+ : Errors
190
+ : EdenFetchError<
191
+ number,
192
+ string
193
+ >
194
+ }
195
+ >
141
196
  : (
142
197
  params: Replace<
143
198
  Route['body'],
@@ -1,4 +0,0 @@
1
- import type { Elysia } from 'elysia';
2
- import type { EdenFetch } from './types';
3
- export type { EdenFetch } from './types';
4
- export declare const edenFetch: <App extends Elysia<any>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
@@ -1,32 +0,0 @@
1
- /// <reference types="bun-types" />
2
- import type { Elysia, SCHEMA } from 'elysia';
3
- import type { EdenFetchError } from '../utils';
4
- import type { MapError, IsUnknown, IsNever } from '../types';
5
- export declare namespace EdenFetch {
6
- type Create<App extends Elysia<any>> = App['meta'] extends Record<typeof SCHEMA, infer Schema extends Record<string, any>> ? EdenFetch.Fn<Schema> : 'Please install Elysia before using Eden';
7
- interface Config {
8
- }
9
- type Fn<Schema extends Record<string, any>> = <Endpoint extends keyof Schema, Method extends Extract<keyof Schema[Endpoint], string>, Route extends Schema[Endpoint][Method]>(endpoint: Endpoint, options: Omit<RequestInit, 'body' | 'method' | 'headers'> & ('get' extends Method ? {
10
- method?: Uppercase<Method>;
11
- } : {
12
- method: Uppercase<Method>;
13
- }) & (IsNever<keyof Route['params']> extends true ? {
14
- params?: Record<never, string>;
15
- } : {
16
- params: Route['params'];
17
- }) & (undefined extends Route['headers'] ? {
18
- headers?: Record<string, string>;
19
- } : {
20
- headers: Route['headers'];
21
- }) & (IsUnknown<Route['body']> extends false ? {
22
- body: Route['body'];
23
- } : {
24
- body?: unknown;
25
- })) => Promise<{
26
- data: Route['response']['200'];
27
- error: null;
28
- } | {
29
- data: null;
30
- error: MapError<Route['response']> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string>;
31
- }>;
32
- }
package/dist/fetch.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './fetch/index'
@@ -1,4 +0,0 @@
1
- import type { Elysia } from 'elysia';
2
- import type { EdenFn } from './types';
3
- export type { EdenFn } from './types';
4
- export declare const edenFn: <App extends Elysia<any>>(domain: string, config?: EdenFn.Config) => EdenFn.Create<App>;
@@ -1,24 +0,0 @@
1
- /// <reference types="bun-types" />
2
- import type { Elysia, EXPOSED } from 'elysia';
3
- export declare namespace EdenFn {
4
- type Create<App extends Elysia<any>> = App['meta'] extends Record<typeof EXPOSED, infer Schema extends Record<string, any>> ? EdenFn.Compose<Schema> : 'Please install Elysia before using Eden';
5
- interface Config {
6
- }
7
- type Compose<Exposed extends Record<string, any>> = Fn<Exposed> & {
8
- $set(config: Config): void;
9
- $clone(config?: Config): Compose<Exposed>;
10
- };
11
- type Fn<T> = T extends {
12
- [EXPOSED]: any;
13
- value: infer Value;
14
- } ? Asynctify<Value> : Asynctify<T>;
15
- interface Config {
16
- fn?: string;
17
- fetch?: Omit<RequestInit, 'body'>;
18
- }
19
- }
20
- type Promisify<T extends (...args: any[]) => any> = T extends (...args: infer Args) => infer Return ? Return extends Promise<any> ? T : (...args: Args) => Promise<Return> : never;
21
- type Asynctify<T> = T extends infer Fn extends (...args: any) => any ? Promisify<Fn> : T extends Record<string, any> ? {
22
- [K in keyof T]: EdenFn.Fn<T[K]>;
23
- } : never;
24
- export {};
@@ -1,13 +0,0 @@
1
- import type { EdenFn } from './types';
2
- export declare class Signal {
3
- private url;
4
- private config;
5
- private pendings;
6
- private operation;
7
- private isFetching;
8
- private sJson;
9
- constructor(url: string, config?: EdenFn.Config);
10
- setConfig(config: EdenFn.Config): void;
11
- clone(config?: EdenFn.Config): Signal;
12
- run(procedure: string[], params: any): Promise<any>;
13
- }
package/dist/fn.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './fn/index'
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export { edenTreaty } from './treaty';
2
- export { edenFetch } from './fetch';
3
- export { edenFn } from './fn';
@@ -1,17 +0,0 @@
1
- /// <reference types="bun-types" />
2
- import type { Elysia, TypedSchema } from 'elysia';
3
- import type { EdenTreaty } from './types';
4
- export type { EdenTreaty } from './types';
5
- export declare class EdenWS<Schema extends TypedSchema<any> = TypedSchema> {
6
- ws: WebSocket;
7
- url: string;
8
- constructor(url: string);
9
- send(data: Schema['body'] | Schema['body'][]): this;
10
- on<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
11
- off<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
12
- subscribe(onMessage: (event: EdenTreaty.WSEvent<'message', Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
13
- addEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (event: EdenTreaty.WSEvent<K, Schema['response']>) => void, options?: boolean | AddEventListenerOptions): this;
14
- removeEventListener<K extends keyof WebSocketEventMap>(type: K, listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any, options?: boolean | EventListenerOptions): this;
15
- close(): this;
16
- }
17
- export declare const edenTreaty: <App extends Elysia<any>>(domain: string, config?: {}) => EdenTreaty.Create<App>;
@@ -1 +0,0 @@
1
- export declare const composePath: (domain: string, path: string, query: Record<string, string> | undefined) => string;
package/dist/treaty.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './treaty/index'
package/dist/types.d.ts DELETED
@@ -1,25 +0,0 @@
1
- import type { EdenFetchError } from './utils';
2
- type Range<F extends number, T extends number> = Exclude<Enumerate<T>, Enumerate<F>>;
3
- type Enumerate<N extends number, Acc extends number[] = []> = Acc['length'] extends N ? Acc[number] : Enumerate<N, [...Acc, Acc['length']]>;
4
- type ErrorRange = Range<300, 599>;
5
- export type MapError<T extends Record<number, unknown>> = [
6
- {
7
- [K in keyof T]-?: K extends ErrorRange ? K : never;
8
- }[keyof T]
9
- ] extends [infer A extends number] ? {
10
- [K in A]: EdenFetchError<K, T[K]>;
11
- }[A] : false;
12
- export type UnionToIntersect<U> = (U extends unknown ? (arg: U) => 0 : never) extends (arg: infer I) => 0 ? I : never;
13
- export type IsAny<T> = 0 extends 1 & T ? true : false;
14
- export type IsNever<T> = [T] extends [never] ? true : false;
15
- export type IsUnknown<T> = IsAny<T> extends true ? false : unknown extends T ? true : false;
16
- export type AnyTypedRoute = {
17
- body: unknown;
18
- headers: Record<string, any> | undefined;
19
- query: Record<string, any> | undefined;
20
- params: Record<string, any> | undefined;
21
- response: Record<string, unknown> & {
22
- '200': unknown;
23
- };
24
- };
25
- export {};
package/dist/utils.d.ts DELETED
@@ -1,5 +0,0 @@
1
- export declare class EdenFetchError<Status extends number = number, Value = unknown> extends Error {
2
- status: Status;
3
- value: Value;
4
- constructor(status: Status, value: Value);
5
- }