Skip to content

Commit 6d4b2f6

Browse files
committed
fix typings
1 parent e0926bf commit 6d4b2f6

File tree

5 files changed

+39
-38
lines changed

5 files changed

+39
-38
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import { domain } from '@palmares/core';
22
import { Response, path, serverDomainModifier } from '@palmares/server';
3-
import { getAdapters } from 'packages/auth/dist/src/conf';
43

54
export default domain('core', import.meta.dirname, {
65
modifiers: [serverDomainModifier],
6+
77
getRoutes: () =>
88
path('/test').get(async () => {
9-
return getAdapters();
9+
return Response.json({ message: 'hello' });
1010
})
1111
});

examples/with-auth/src/settings.ts

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@ import { dirname, resolve } from 'path';
88

99
import PasswordAuthAdapter, { passwordAdapter } from '@palmares/password-auth';
1010
import CoreDomain from './core';
11-
import defineAuthDomain, { Auth, AuthAdapter } from '@palmares/auth';
11+
import defineAuthDomain, { AuthAdapters, getAuth } from '@palmares/auth';
12+
13+
declare global {
14+
namespace Palmares {
15+
interface PAuth extends AuthAdapters<[ReturnType<typeof PasswordAuthAdapter.new>]> {}
16+
}
17+
}
1218

1319
export default defineSettings({
1420
basePath: dirname(resolve(import.meta.dirname)),
@@ -32,7 +38,7 @@ export default defineSettings({
3238
[
3339
ServerDomain,
3440
{
35-
servers: {
41+
servers: {
3642
default: {
3743
server: ExpressServerAdapter,
3844
debug: true,
@@ -57,25 +63,13 @@ export default defineSettings({
5763
}
5864
],
5965
defineAuthDomain({
60-
adapters: [passwordAdapter.new({
61-
prefix: 'my-prefix',
62-
suffix: 'my-suffix'
63-
})]
66+
adapters: [
67+
passwordAdapter.new({
68+
prefix: 'my-prefix',
69+
suffix: 'my-suffix'
70+
})
71+
]
6472
}),
6573
CoreDomain
6674
]
6775
});
68-
69-
declare global {
70-
namespace Palmares {
71-
interface PAuth {
72-
adapters: [ReturnType<typeof PasswordAuthAdapter.new>]
73-
}
74-
}
75-
}
76-
77-
const auth = Auth
78-
79-
type test2 = Palmares.PAuth['adapters'][number]
80-
81-
type test3 = ReturnType<typeof PasswordAuthAdapter.new>

packages/auth/src/auth.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import { getAdapters } from './conf';
22

3+
import type { AuthAdapters } from '.';
34
import type { AdapterMethods, AuthAdapter } from './adapter';
45

5-
type AuthProxy<TAdapters> = {
6-
// [KAdapter in TAdapters[number] as KAdapter['name']]: KAdapter['methods'];
6+
type AuthProxy<TAdapters extends readonly (AuthAdapter | unknown)[]> = {
7+
[KAdapter in TAdapters[number] as KAdapter extends AuthAdapter
8+
? KAdapter['name']
9+
: never]: KAdapter extends AuthAdapter ? KAdapter['methods'] : never;
710
};
811

912
const createAdapterProxy = <TMethods extends AdapterMethods>(methods: TMethods): TMethods =>
@@ -16,13 +19,14 @@ const createAdapterProxy = <TMethods extends AdapterMethods>(methods: TMethods):
1619
}
1720
});
1821

19-
type GetAdapters = ReturnType<typeof getAdapters>;
20-
21-
const createAuthProxy = <TAdapters = Palmares.PAuth extends { adapters: any } ? true : false>(adapters: GetAdapters) =>
22-
new Proxy(
22+
export function getAuth<TAdapters extends AuthAdapters & Palmares.PAuth = AuthAdapters & Palmares.PAuth>(): AuthProxy<
23+
TAdapters['adapters']
24+
> {
25+
return new Proxy(
2326
{},
2427
{
2528
get(_, adapterName: string) {
29+
const adapters = getAdapters();
2630
const adapter = adapters.find((a) => a.name === adapterName);
2731

2832
if (adapter) {
@@ -32,6 +36,5 @@ const createAuthProxy = <TAdapters = Palmares.PAuth extends { adapters: any } ?
3236
throw new Error(`Adapter "${adapterName}" not found`);
3337
}
3438
}
35-
) as AuthProxy<TAdapters>;
36-
37-
export const Auth = createAuthProxy(getAdapters());
39+
) as any;
40+
}

packages/auth/src/index.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { defineAuthDomain } from './domain';
22

3+
import type { AuthAdapter } from './adapter';
4+
35
export { authAdapter, AuthAdapter, type AdapterMethods } from './adapter';
46
export {
57
AuthenticationFailedException,
@@ -14,7 +16,11 @@ export {
1416
} from './exceptions';
1517
export type { AuthConfigurationType, AuthAdapterType } from './types';
1618

17-
export { Auth } from './auth';
19+
export { Auth, getAuth } from './auth';
1820
export { defineAuthDomain as default };
1921

22+
export interface AuthAdapters<TAdapters extends readonly (AuthAdapter | unknown)[] = unknown[]> {
23+
adapters: TAdapters;
24+
}
25+
2026
export { getAdapters } from './conf';

packages/schemas/__tests__/src/core/array.test.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
1-
import type { ZodSchemaAdapter } from '@palmares/zod-schema';
2-
31
import * as p from '@palmares/schemas';
42
import { describe } from '@palmares/tests';
3+
54
import type JestTestAdapter from '@palmares/jest-tests';
5+
import type { ZodSchemaAdapter } from '@palmares/zod-schema';
66

77
declare global {
88
namespace Palmares {
99
interface PSchemaAdapter extends ZodSchemaAdapter {}
1010
}
11-
};
12-
11+
}
1312

1413
describe<JestTestAdapter>('Array Tests', ({ test }) => {
1514
test('optional', async ({ expect }) => {
1615
const arraySchema = p.array([p.number()]);
1716
const tupleSchema = p.array(p.number(), p.string());
1817
const arraySchemaWithCustomMessage = p.array([p.number()]).nonOptional({ message: 'hello' });
1918
const tupleSchemaWithCustomMessage = p.array(p.number(), p.string()).nonOptional({ message: 'hello' });
20-
2119
const [
2220
{ errors: errorsArrayOnFail },
2321
{ errors: errorsTupleOnFail },
@@ -91,7 +89,7 @@ describe<JestTestAdapter>('Array Tests', ({ test }) => {
9189

9290
console.log(data);
9391
expect(data[0]).toBe('hey');
94-
expect(data[1]).toBe(1)
92+
expect(data[1]).toBe(1);
9593
});
9694

9795
test('min length', async ({ expect }) => {

0 commit comments

Comments
 (0)