Skip to content

Commit 6151fc3

Browse files
chore(types): export common set of types for supabase server (#78)
* chore(types): export common set of types for supabase server * fix: moving peer dep type re-export to its own module path * docs: docummenting peer deps types * fix: creating export entry * fix: not renaming 'AuthError' * docs(types): improving 'supabase-js' peer description * fix: regression, exporting 'AuthError' --------- Co-authored-by: Kalleby Santos <kalleby_santos@hotmail.com>
1 parent 5ac7ccf commit 6151fc3

4 files changed

Lines changed: 58 additions & 0 deletions

File tree

docs/api-reference.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,23 @@ interface JsonWebKeySet {
310310
}
311311
```
312312

313+
### Peer Dependencies
314+
315+
Some peer dependencies types are available from `@supabase/server/peer/*` export
316+
317+
#### supabase-js
318+
319+
Only a curated set of types are available to importIt means that may be missing types from the original lib.
320+
321+
```ts
322+
import type {
323+
SupabaseClient,
324+
PostgrestError,
325+
AuthError as SupabaseAuthError, // Avoid clashing with this SDK's own `AuthError` class.
326+
// ...
327+
} from '@supabase/server/peer/supabase-js'
328+
```
329+
313330
---
314331

315332
## Error Classes

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@
2929
"import": "./dist/core/index.mjs",
3030
"require": "./dist/core/index.cjs"
3131
},
32+
"./peer/supabase-js": {
33+
"types": "./dist/peer/supabase-js/index.d.mts",
34+
"import": "./dist/peer/supabase-js/index.mjs",
35+
"require": "./dist/peer/supabase-js/index.cjs"
36+
},
3237
"./adapters/hono": {
3338
"types": "./dist/adapters/hono/index.d.mts",
3439
"import": "./dist/adapters/hono/index.mjs",

src/peer/supabase-js/index.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* Curated re-exports of the most commonly needed types from
3+
* `@supabase/supabase-js`.
4+
*
5+
* `@supabase/supabase-js` is a required peer dependency, so these are always
6+
* resolvable at the consumer's install site. Re-exporting them here lets users
7+
* type their own helpers (`function f(client: SupabaseClient) {}`), narrow
8+
* Postgrest responses, and reference auth objects without reaching into a
9+
* second package — `@supabase/server` becomes a single import surface.
10+
*
11+
*
12+
* @packageDocumentation
13+
*/
14+
15+
export type {
16+
// Client
17+
SupabaseClient,
18+
SupabaseClientOptions,
19+
20+
// Postgrest (querying)
21+
PostgrestError,
22+
PostgrestResponse,
23+
PostgrestSingleResponse,
24+
PostgrestMaybeSingleResponse,
25+
QueryData,
26+
QueryError,
27+
QueryResult,
28+
29+
// Auth identity
30+
User,
31+
Session,
32+
UserResponse,
33+
AuthResponse,
34+
AuthError,
35+
} from '@supabase/supabase-js'

tsdown.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ export default defineConfig({
44
entry: [
55
'src/index.ts',
66
'src/core/index.ts',
7+
'src/peer/supabase-js/index.ts',
78
'src/adapters/hono/index.ts',
89
'src/adapters/h3/index.ts',
910
'src/adapters/elysia/index.ts',

0 commit comments

Comments
 (0)