@elysiajs/eden 0.6.1 → 0.6.3
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/errors.js +10 -0
- package/dist/errors.js.map +1 -0
- package/dist/fetch/index.js +67 -0
- package/dist/fetch/index.js.map +1 -0
- package/dist/fetch/types.js +2 -0
- package/dist/fetch/types.js.map +1 -0
- package/dist/fetch.js +1 -1
- package/dist/fetch.mjs +32 -22
- package/dist/fn/index.js +35 -0
- package/dist/fn/index.js.map +1 -0
- package/dist/fn/types.js +2 -0
- package/dist/fn/types.js.map +1 -0
- package/dist/fn/utils.js +59 -0
- package/dist/fn/utils.js.map +1 -0
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1 -1
- package/dist/treaty/index.js +205 -0
- package/dist/treaty/index.js.map +1 -0
- package/dist/treaty/types.js +2 -0
- package/dist/treaty/types.js.map +1 -0
- package/dist/treaty/utils.js +13 -0
- package/dist/treaty/utils.js.map +1 -0
- package/dist/treaty.js +1 -1
- package/dist/treaty.mjs +108 -112
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +84 -79
- package/src/fetch/index.ts +19 -5
- package/src/fetch/types.ts +32 -13
- package/src/treaty/index.ts +57 -52
- package/src/treaty/types.ts +116 -205
- package/src/types.ts +1 -1
- package/dist/fetch/index.d.ts +0 -5
- package/dist/fetch/index.d.ts.map +0 -1
- package/dist/fetch/types.d.ts +0 -36
- package/dist/fetch/types.d.ts.map +0 -1
- package/dist/fn/index.d.ts +0 -5
- package/dist/fn/index.d.ts.map +0 -1
- package/dist/fn/types.d.ts +0 -28
- package/dist/fn/types.d.ts.map +0 -1
- package/dist/fn/utils.d.ts +0 -14
- package/dist/fn/utils.d.ts.map +0 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/treaty/index.d.ts +0 -18
- package/dist/treaty/index.d.ts.map +0 -1
- package/dist/treaty/utils.d.ts +0 -2
- package/dist/treaty/utils.d.ts.map +0 -1
- package/dist/types.d.ts +0 -26
- package/dist/types.d.ts.map +0 -1
- package/dist/utils.d.ts +0 -6
- package/dist/utils.d.ts.map +0 -1
- /package/dist/{utils-5a40996f.mjs → errors-5a40996f.mjs} +0 -0
- /package/dist/{utils-a2cfc56a.js → errors-a2cfc56a.js} +0 -0
- /package/src/{utils.ts → errors.ts} +0 -0
package/src/treaty/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Elysia, TypedSchema } from 'elysia'
|
|
2
2
|
|
|
3
|
-
import { EdenFetchError } from '../
|
|
3
|
+
import { EdenFetchError } from '../errors'
|
|
4
4
|
|
|
5
5
|
import { composePath } from './utils'
|
|
6
6
|
import type { EdenTreaty } from './types'
|
|
@@ -22,6 +22,8 @@ const isFile = (v: any) => {
|
|
|
22
22
|
|
|
23
23
|
// FormData is 1 level deep
|
|
24
24
|
const hasFile = (obj: Record<string, any>) => {
|
|
25
|
+
if (!obj) return false
|
|
26
|
+
|
|
25
27
|
for (const key in obj) {
|
|
26
28
|
if (isFile(obj[key])) return true
|
|
27
29
|
else if (
|
|
@@ -155,7 +157,6 @@ const createProxy = (
|
|
|
155
157
|
path = '',
|
|
156
158
|
config: EdenTreaty.Config
|
|
157
159
|
): Record<string, unknown> =>
|
|
158
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
159
160
|
new Proxy(() => {}, {
|
|
160
161
|
get(target, key, value) {
|
|
161
162
|
return createProxy(domain, `${path}/${key.toString()}`, config)
|
|
@@ -164,12 +165,17 @@ const createProxy = (
|
|
|
164
165
|
target,
|
|
165
166
|
_,
|
|
166
167
|
[
|
|
167
|
-
{ $query, $fetch, $
|
|
168
|
+
{ $query, $fetch, $headers, ...bodyObj } = {
|
|
168
169
|
$fetch: undefined,
|
|
169
|
-
$
|
|
170
|
-
$
|
|
170
|
+
$headers: undefined,
|
|
171
|
+
$query: undefined
|
|
171
172
|
}
|
|
172
|
-
]:
|
|
173
|
+
]: {
|
|
174
|
+
[x: string]: any
|
|
175
|
+
$fetch?: RequestInit
|
|
176
|
+
$headers?: HeadersInit
|
|
177
|
+
$query?: Record<string, string>
|
|
178
|
+
}[] = [{}]
|
|
173
179
|
) {
|
|
174
180
|
const i = path.lastIndexOf('/'),
|
|
175
181
|
method = path.slice(i + 1),
|
|
@@ -184,44 +190,54 @@ const createProxy = (
|
|
|
184
190
|
)
|
|
185
191
|
|
|
186
192
|
const execute = async () => {
|
|
187
|
-
let body
|
|
188
|
-
|
|
189
|
-
const
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
else
|
|
193
|
+
let body: any
|
|
194
|
+
|
|
195
|
+
const headers = {
|
|
196
|
+
...config.$fetch?.headers,
|
|
197
|
+
...$fetch?.headers,
|
|
198
|
+
...$headers
|
|
199
|
+
} as Record<string, string>
|
|
200
|
+
|
|
201
|
+
if (method !== 'GET' && method !== 'HEAD') {
|
|
202
|
+
body = Object.keys(bodyObj).length ? bodyObj : undefined
|
|
203
|
+
const isObject = typeof body === 'object'
|
|
204
|
+
const isFormData = isObject && hasFile(body)
|
|
205
|
+
|
|
206
|
+
if (isFormData) {
|
|
207
|
+
const newBody = new FormData()
|
|
208
|
+
|
|
209
|
+
// FormData is 1 level deep
|
|
210
|
+
for (const [key, field] of Object.entries(body)) {
|
|
211
|
+
if (isServer) {
|
|
212
|
+
newBody.append(key, field as any)
|
|
213
|
+
} else {
|
|
208
214
|
// @ts-ignore
|
|
209
|
-
|
|
215
|
+
if (field instanceof File)
|
|
210
216
|
newBody.append(
|
|
211
|
-
key
|
|
212
|
-
await fileToBlob(
|
|
217
|
+
key,
|
|
218
|
+
await fileToBlob(field as any)
|
|
213
219
|
)
|
|
214
|
-
|
|
215
|
-
|
|
220
|
+
// @ts-ignore
|
|
221
|
+
else if (field instanceof FileList) {
|
|
222
|
+
// @ts-ignore
|
|
223
|
+
for (let i = 0; i < field.length; i++) {
|
|
224
|
+
newBody.append(
|
|
225
|
+
key as any,
|
|
226
|
+
await fileToBlob((field as any)[i])
|
|
227
|
+
)
|
|
228
|
+
}
|
|
229
|
+
} else newBody.append(key, field as string)
|
|
230
|
+
}
|
|
216
231
|
}
|
|
217
|
-
}
|
|
218
232
|
|
|
219
|
-
|
|
220
|
-
|
|
233
|
+
body = newBody
|
|
234
|
+
} else {
|
|
235
|
+
headers['content-type'] = isObject
|
|
236
|
+
? 'application/json'
|
|
237
|
+
: 'text/plain'
|
|
221
238
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
...$fetch?.headers
|
|
239
|
+
if (isObject) body = JSON.stringify(body)
|
|
240
|
+
}
|
|
225
241
|
}
|
|
226
242
|
|
|
227
243
|
const response = await (config.fetcher ?? fetch)(url, {
|
|
@@ -229,16 +245,7 @@ const createProxy = (
|
|
|
229
245
|
body,
|
|
230
246
|
...config.$fetch,
|
|
231
247
|
...$fetch,
|
|
232
|
-
headers
|
|
233
|
-
? isFormData
|
|
234
|
-
? $headers
|
|
235
|
-
: {
|
|
236
|
-
'content-type': isObject
|
|
237
|
-
? 'application/json'
|
|
238
|
-
: 'text/plain',
|
|
239
|
-
...$headers
|
|
240
|
-
}
|
|
241
|
-
: $headers
|
|
248
|
+
headers
|
|
242
249
|
})
|
|
243
250
|
|
|
244
251
|
let data
|
|
@@ -265,16 +272,14 @@ const createProxy = (
|
|
|
265
272
|
status: response.status,
|
|
266
273
|
raw: response,
|
|
267
274
|
headers: response.headers,
|
|
268
|
-
retry: execute
|
|
269
275
|
}
|
|
270
276
|
|
|
271
277
|
return {
|
|
272
278
|
data,
|
|
273
279
|
status: response.status,
|
|
274
|
-
|
|
280
|
+
response: response,
|
|
275
281
|
headers: response.headers,
|
|
276
|
-
error: null
|
|
277
|
-
retry: execute
|
|
282
|
+
error: null as null
|
|
278
283
|
}
|
|
279
284
|
}
|
|
280
285
|
|
package/src/treaty/types.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
import type { Elysia
|
|
2
|
-
|
|
1
|
+
import type { Elysia } from 'elysia'
|
|
3
2
|
import type { EdenWS } from './index'
|
|
4
|
-
import type {
|
|
5
|
-
|
|
3
|
+
import type {
|
|
4
|
+
IsUnknown,
|
|
5
|
+
IsNever,
|
|
6
|
+
IsAny,
|
|
7
|
+
UnionToIntersect,
|
|
8
|
+
MapError
|
|
9
|
+
} from '../types'
|
|
10
|
+
import type { EdenFetchError } from '../errors'
|
|
11
|
+
|
|
12
|
+
type Files = File | FileList
|
|
6
13
|
|
|
7
14
|
type Replace<RecordType, TargetType, GenericType> = {
|
|
8
15
|
[K in keyof RecordType]: RecordType[K] extends TargetType
|
|
@@ -10,209 +17,127 @@ type Replace<RecordType, TargetType, GenericType> = {
|
|
|
10
17
|
: RecordType[K]
|
|
11
18
|
}
|
|
12
19
|
|
|
13
|
-
|
|
14
|
-
|
|
20
|
+
type Split<S extends string> = S extends `${infer Head}/${infer Tail}`
|
|
21
|
+
? Head extends ''
|
|
22
|
+
? Tail extends ''
|
|
23
|
+
? []
|
|
24
|
+
: Split<Tail>
|
|
25
|
+
: [Head, ...Split<Tail>]
|
|
26
|
+
: S extends `/`
|
|
27
|
+
? []
|
|
28
|
+
: S extends `${infer Head}/`
|
|
29
|
+
? [Head]
|
|
30
|
+
: [S]
|
|
31
|
+
|
|
32
|
+
type Prettify<T> = {
|
|
33
|
+
[K in keyof T]: T[K]
|
|
34
|
+
} & {}
|
|
35
|
+
|
|
36
|
+
type AnySchema = {
|
|
37
|
+
body: unknown
|
|
38
|
+
headers: Record<string, any> | undefined
|
|
39
|
+
query: Record<string, any> | undefined
|
|
40
|
+
params: Record<string, any> | undefined
|
|
41
|
+
response: any
|
|
42
|
+
}
|
|
15
43
|
|
|
16
44
|
export namespace EdenTreaty {
|
|
17
45
|
export type Create<App extends Elysia<any, any>> = App['meta'] extends {
|
|
18
46
|
schema: infer Schema extends Record<string, any>
|
|
19
47
|
}
|
|
20
|
-
?
|
|
48
|
+
? UnionToIntersect<Sign<Schema>>
|
|
21
49
|
: 'Please install Elysia before using Eden'
|
|
22
50
|
|
|
23
51
|
export interface Config {
|
|
24
52
|
/**
|
|
25
53
|
* Default options to pass to fetch
|
|
26
54
|
*/
|
|
27
|
-
$fetch?:
|
|
55
|
+
$fetch?: RequestInit
|
|
28
56
|
fetcher?: typeof fetch
|
|
29
57
|
}
|
|
30
58
|
|
|
31
|
-
export type Sign<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
string,
|
|
66
|
-
string
|
|
67
|
-
>
|
|
68
|
-
}
|
|
69
|
-
: {
|
|
70
|
-
$query: Route['query']
|
|
71
|
-
}) &
|
|
72
|
-
(undefined extends Route['headers']
|
|
73
|
-
? {
|
|
74
|
-
$headers?: Record<
|
|
75
|
-
string,
|
|
76
|
-
unknown
|
|
77
|
-
>
|
|
78
|
-
}
|
|
79
|
-
: {
|
|
80
|
-
$headers: Route['headers']
|
|
81
|
-
}) &
|
|
82
|
-
(IsUnknown<
|
|
83
|
-
Route['params']
|
|
84
|
-
> extends false
|
|
85
|
-
? {
|
|
86
|
-
$params?: never
|
|
87
|
-
}
|
|
88
|
-
: {
|
|
89
|
-
$params: Route['params']
|
|
90
|
-
})
|
|
91
|
-
) => Promise<
|
|
92
|
-
| {
|
|
93
|
-
data: Route['response'] extends {
|
|
94
|
-
200: infer ReturnedType
|
|
95
|
-
}
|
|
96
|
-
? Awaited<ReturnedType>
|
|
97
|
-
: unknown
|
|
98
|
-
error: null
|
|
99
|
-
}
|
|
100
|
-
| {
|
|
101
|
-
data: null
|
|
102
|
-
error: MapError<
|
|
103
|
-
Route['response']
|
|
104
|
-
> extends infer Errors
|
|
105
|
-
? IsNever<Errors> extends true
|
|
106
|
-
? EdenFetchError<
|
|
107
|
-
number,
|
|
108
|
-
string
|
|
109
|
-
>
|
|
110
|
-
: Errors
|
|
111
|
-
: EdenFetchError<
|
|
112
|
-
number,
|
|
113
|
-
string
|
|
114
|
-
>
|
|
115
|
-
}
|
|
116
|
-
>) extends (
|
|
117
|
-
params: infer Params
|
|
118
|
-
) => infer Response
|
|
119
|
-
? {
|
|
120
|
-
$params: undefined
|
|
121
|
-
$headers: undefined
|
|
122
|
-
$query: undefined
|
|
123
|
-
} extends Params
|
|
124
|
-
? (params?: Params) => Response
|
|
125
|
-
: (params: Params) => Response
|
|
126
|
-
: never
|
|
127
|
-
: never
|
|
128
|
-
}
|
|
129
|
-
>
|
|
130
|
-
: {
|
|
131
|
-
[Method in keyof A[Path]]: A[Path][Method] extends infer Route extends AnyTypedSchema
|
|
132
|
-
? Method extends 'subscribe'
|
|
133
|
-
? undefined extends Route['query']
|
|
134
|
-
? (params?: {
|
|
135
|
-
$query?: Record<string, string>
|
|
136
|
-
}) => EdenWS<Route>
|
|
137
|
-
: (params: {
|
|
138
|
-
$query: Route['query']
|
|
139
|
-
}) => EdenWS<Route>
|
|
140
|
-
: ((
|
|
141
|
-
params: (IsUnknown<
|
|
142
|
-
Route['body']
|
|
143
|
-
> extends false
|
|
144
|
-
? Replace<
|
|
145
|
-
Route['body'],
|
|
146
|
-
Blob | Blob[],
|
|
147
|
-
Files
|
|
148
|
-
>
|
|
149
|
-
: {}) &
|
|
150
|
-
(undefined extends Route['query']
|
|
151
|
-
? {
|
|
152
|
-
$query?: Record<
|
|
153
|
-
string,
|
|
154
|
-
string
|
|
155
|
-
>
|
|
156
|
-
}
|
|
157
|
-
: {
|
|
158
|
-
$query: Route['query']
|
|
159
|
-
}) &
|
|
160
|
-
(undefined extends Route['headers']
|
|
161
|
-
? {
|
|
162
|
-
$headers?: Record<
|
|
163
|
-
string,
|
|
164
|
-
unknown
|
|
165
|
-
>
|
|
166
|
-
}
|
|
167
|
-
: {
|
|
168
|
-
$headers: Route['headers']
|
|
169
|
-
}) &
|
|
170
|
-
(IsUnknown<
|
|
171
|
-
Route['params']
|
|
172
|
-
> extends false
|
|
173
|
-
? {
|
|
174
|
-
$params?: never
|
|
175
|
-
}
|
|
176
|
-
: {
|
|
177
|
-
$params: Route['params']
|
|
178
|
-
})
|
|
179
|
-
) => Promise<
|
|
180
|
-
| {
|
|
181
|
-
data: Route['response'] extends {
|
|
182
|
-
200: infer ReturnedType
|
|
183
|
-
}
|
|
184
|
-
? Awaited<ReturnedType>
|
|
185
|
-
: unknown
|
|
186
|
-
error: null
|
|
59
|
+
export type Sign<
|
|
60
|
+
Schema extends Record<string, Record<string, unknown>>,
|
|
61
|
+
// @ts-ignore
|
|
62
|
+
Paths extends (string | number)[] = Split<keyof Schema>,
|
|
63
|
+
Carry extends string = ''
|
|
64
|
+
> = Paths extends [
|
|
65
|
+
infer Prefix extends string | number,
|
|
66
|
+
...infer Rest extends (string | number)[]
|
|
67
|
+
]
|
|
68
|
+
? {
|
|
69
|
+
[Key in Prefix as Prefix extends `:${string}`
|
|
70
|
+
? (string & {}) | number | Prefix
|
|
71
|
+
: Prefix]: Sign<Schema, Rest, `${Carry}/${Key}`>
|
|
72
|
+
}
|
|
73
|
+
: Schema[Carry extends '' ? '/' : Carry] extends infer Routes
|
|
74
|
+
? {
|
|
75
|
+
[Method in keyof Routes]: Routes[Method] extends infer Route extends AnySchema
|
|
76
|
+
? Method extends 'subscribe'
|
|
77
|
+
? undefined extends Route['query']
|
|
78
|
+
? (params?: {
|
|
79
|
+
$query?: Record<string, string>
|
|
80
|
+
}) => EdenWS<Route>
|
|
81
|
+
: (params: {
|
|
82
|
+
$query: Route['query']
|
|
83
|
+
}) => EdenWS<Route>
|
|
84
|
+
: ((
|
|
85
|
+
params: {
|
|
86
|
+
$fetch?: RequestInit
|
|
87
|
+
} & (IsUnknown<Route['body']> extends false
|
|
88
|
+
? Replace<Route['body'], Blob | Blob[], Files>
|
|
89
|
+
: {}) &
|
|
90
|
+
(undefined extends Route['query']
|
|
91
|
+
? {
|
|
92
|
+
$query?: Record<string, string>
|
|
187
93
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
? EdenFetchError<
|
|
195
|
-
number,
|
|
196
|
-
string
|
|
197
|
-
>
|
|
198
|
-
: Errors
|
|
199
|
-
: EdenFetchError<number, string>
|
|
94
|
+
: {
|
|
95
|
+
$query: Route['query']
|
|
96
|
+
}) &
|
|
97
|
+
(undefined extends Route['headers']
|
|
98
|
+
? {
|
|
99
|
+
$headers?: Record<string, unknown>
|
|
200
100
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
101
|
+
: {
|
|
102
|
+
$headers: Route['headers']
|
|
103
|
+
})
|
|
104
|
+
) => Promise<
|
|
105
|
+
(
|
|
106
|
+
| {
|
|
107
|
+
data: Route['response'] extends {
|
|
108
|
+
200: infer ReturnedType
|
|
109
|
+
}
|
|
110
|
+
? Awaited<ReturnedType>
|
|
111
|
+
: unknown
|
|
112
|
+
error: null
|
|
113
|
+
}
|
|
114
|
+
| {
|
|
115
|
+
data: null
|
|
116
|
+
error: MapError<
|
|
117
|
+
Route['response']
|
|
118
|
+
> extends infer Errors
|
|
119
|
+
? IsNever<Errors> extends true
|
|
120
|
+
? EdenFetchError<number, string>
|
|
121
|
+
: Errors
|
|
122
|
+
: EdenFetchError<number, string>
|
|
123
|
+
}
|
|
124
|
+
) & {
|
|
125
|
+
status: number
|
|
126
|
+
response: Response
|
|
127
|
+
headers: Record<string, string>
|
|
128
|
+
}
|
|
129
|
+
>) extends (params: infer Params) => infer Response
|
|
130
|
+
? {
|
|
131
|
+
$params: undefined
|
|
132
|
+
$headers: undefined
|
|
133
|
+
$query: undefined
|
|
134
|
+
} extends Params
|
|
135
|
+
? (params?: Prettify<Params>) => Response
|
|
136
|
+
: (params: Prettify<Params>) => Response
|
|
137
|
+
: never
|
|
138
|
+
: never
|
|
139
|
+
}
|
|
140
|
+
: {}
|
|
216
141
|
|
|
217
142
|
export interface OnMessage<Data = unknown> extends MessageEvent {
|
|
218
143
|
data: Data
|
|
@@ -223,18 +148,4 @@ export namespace EdenTreaty {
|
|
|
223
148
|
K extends keyof WebSocketEventMap,
|
|
224
149
|
Data = unknown
|
|
225
150
|
> = K extends 'message' ? OnMessage<Data> : WebSocketEventMap[K]
|
|
226
|
-
|
|
227
|
-
export interface CallOption {
|
|
228
|
-
[x: string]: any
|
|
229
|
-
$fetch?: RequestInit
|
|
230
|
-
$query?: Record<string, string>
|
|
231
|
-
}
|
|
232
151
|
}
|
|
233
|
-
|
|
234
|
-
type NestPath<T extends string, V> = T extends `${infer First}/${infer Rest}`
|
|
235
|
-
? First extends `:${infer Parameter}`
|
|
236
|
-
? Record<(string & {}) | number | `:${Parameter}`, NestPath<Rest, V>>
|
|
237
|
-
: Record<First, NestPath<Rest, V>>
|
|
238
|
-
: T extends `:${string}`
|
|
239
|
-
? Record<(string & {}) | number | T, V>
|
|
240
|
-
: Record<T, V>
|
package/src/types.ts
CHANGED
package/dist/fetch/index.d.ts
DELETED
|
@@ -1,5 +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, any>>(server: string, config?: EdenFetch.Config) => EdenFetch.Create<App>;
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,eAAO,MAAM,SAAS,yCAEN,MAAM,WACL,UAAU,MAAM,0BAyD5B,CAAA"}
|
package/dist/fetch/types.d.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/// <reference types="bun-types" />
|
|
2
|
-
import type { Elysia } 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, any>> = App['meta'] extends {
|
|
7
|
-
schema: infer Schema extends Record<string, any>;
|
|
8
|
-
} ? EdenFetch.Fn<Schema> : 'Please install Elysia before using Eden';
|
|
9
|
-
interface Config {
|
|
10
|
-
fetcher?: typeof globalThis.fetch;
|
|
11
|
-
}
|
|
12
|
-
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 ? {
|
|
13
|
-
method?: Uppercase<Method>;
|
|
14
|
-
} : {
|
|
15
|
-
method: Uppercase<Method>;
|
|
16
|
-
}) & (IsNever<keyof Route['params']> extends true ? {
|
|
17
|
-
params?: Record<never, string>;
|
|
18
|
-
} : {
|
|
19
|
-
params: Route['params'];
|
|
20
|
-
}) & (undefined extends Route['headers'] ? {
|
|
21
|
-
headers?: Record<string, string>;
|
|
22
|
-
} : {
|
|
23
|
-
headers: Route['headers'];
|
|
24
|
-
}) & (IsUnknown<Route['body']> extends false ? {
|
|
25
|
-
body: Route['body'];
|
|
26
|
-
} : {
|
|
27
|
-
body?: unknown;
|
|
28
|
-
})) => Promise<{
|
|
29
|
-
data: Awaited<Route['response']['200']>;
|
|
30
|
-
error: null;
|
|
31
|
-
} | {
|
|
32
|
-
data: null;
|
|
33
|
-
error: MapError<Route['response']> extends infer Errors ? IsNever<Errors> extends true ? EdenFetchError<number, string> : Errors : EdenFetchError<number, string>;
|
|
34
|
-
}>;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fetch/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAE5D,yBAAiB,SAAS,CAAC;IACvB,KAAY,MAAM,CAAC,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS;QACnE,MAAM,EAAE,MAAM,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACnD,GACK,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,GACpB,yCAAyC,CAAA;IAE/C,UAAiB,MAAM;QACnB,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;KACpC;IAED,KAAY,EAAE,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CACjD,QAAQ,SAAS,MAAM,MAAM,EAC7B,MAAM,SAAS,OAAO,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EACtD,KAAK,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAEtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,GACrD,CAAC,KAAK,SAAS,MAAM,GACf;QACI,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;KAC7B,GACD;QACI,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;KAC5B,CAAC,GACR,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,SAAS,IAAI,GACtC;QACI,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;KACjC,GACD;QACI,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;KAC1B,CAAC,GACR,CAAC,SAAS,SAAS,KAAK,CAAC,SAAS,CAAC,GAC7B;QACI,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACnC,GACD;QACI,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;KAC5B,CAAC,GACR,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,GACjC;QAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,GACvB;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,KAC5B,OAAO,CACN;QACI,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;QACvC,KAAK,EAAE,IAAI,CAAA;KACd,GACD;QACI,IAAI,EAAE,IAAI,CAAA;QACV,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,MAAM,GACjD,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,GACxB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,GACV,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACvC,CACN,CAAA;CACJ"}
|
package/dist/fn/index.d.ts
DELETED
|
@@ -1,5 +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, any>>(domain: string, config?: EdenFn.Config) => EdenFn.Create<App>;
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/fn/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fn/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AA2CrC,eAAO,MAAM,MAAM,yCACP,MAAM,WACL,OAAO,MAAM,uBAI6B,CAAA"}
|
package/dist/fn/types.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/// <reference types="bun-types" />
|
|
2
|
-
import type { Elysia } from 'elysia';
|
|
3
|
-
export declare namespace EdenFn {
|
|
4
|
-
type Create<App extends Elysia<any, any>> = App['meta'] extends {
|
|
5
|
-
exposed: infer Schema extends Record<string, any>;
|
|
6
|
-
} ? EdenFn.Compose<Schema> : 'Please install Elysia before using Eden';
|
|
7
|
-
interface Config {
|
|
8
|
-
}
|
|
9
|
-
type Compose<Exposed extends Record<string, any>> = Fn<Exposed> & {
|
|
10
|
-
$set(config: Config): void;
|
|
11
|
-
$clone(config?: Config): Compose<Exposed>;
|
|
12
|
-
};
|
|
13
|
-
type Fn<T> = T extends {
|
|
14
|
-
exposed: any;
|
|
15
|
-
value: infer Value;
|
|
16
|
-
} ? Asynctify<Value> : Asynctify<T>;
|
|
17
|
-
interface Config {
|
|
18
|
-
fn?: string;
|
|
19
|
-
fetch?: Omit<RequestInit, 'body'>;
|
|
20
|
-
fetcher?: typeof globalThis.fetch;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
type Promisify<T extends (...args: any[]) => any> = T extends (...args: infer Args) => infer Return ? Return extends Promise<any> ? T : (...args: Args) => Promise<Return> : never;
|
|
24
|
-
type Asynctify<T> = T extends infer Fn extends (...args: any) => any ? Promisify<Fn> : T extends Record<string, any> ? {
|
|
25
|
-
[K in keyof T]: EdenFn.Fn<T[K]>;
|
|
26
|
-
} : never;
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/fn/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/fn/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,yBAAiB,MAAM,CAAC;IACpB,KAAY,MAAM,CAAC,GAAG,SAAS,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS;QACnE,OAAO,EAAE,MAAM,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACpD,GACK,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GACtB,yCAAyC,CAAA;IAE/C,UAAiB,MAAM;KAAG;IAE1B,KAAY,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG;QACrE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;QAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAC5C,CAAA;IAED,KAAY,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS;QAC1B,OAAO,EAAE,GAAG,CAAA;QACZ,KAAK,EAAE,MAAM,KAAK,CAAA;KACrB,GACK,SAAS,CAAC,KAAK,CAAC,GAChB,SAAS,CAAC,CAAC,CAAC,CAAA;IAElB,UAAiB,MAAM;QACnB,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,KAAK,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QACjC,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;KACpC;CACJ;AAED,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,CAC1D,GAAG,IAAI,EAAE,MAAM,IAAI,KAClB,MAAM,MAAM,GACX,MAAM,SAAS,OAAO,CAAC,GAAG,CAAC,GACvB,CAAC,GACD,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,GACtC,KAAK,CAAA;AAEX,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,GAC9D,SAAS,CAAC,EAAE,CAAC,GACb,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B;KACK,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClC,GACD,KAAK,CAAA"}
|
package/dist/fn/utils.d.ts
DELETED
|
@@ -1,14 +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
|
-
}
|
|
14
|
-
//# sourceMappingURL=utils.d.ts.map
|
package/dist/fn/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fn/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,qBAAa,MAAM;IACf,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,QAAQ,CAAuD;IACvE,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,KAAK,CAGX;gBAEU,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAW;IAYnD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM;IAI/B,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM;IAItB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG;CAkD7C"}
|