File tree Expand file tree Collapse file tree 5 files changed +39
-38
lines changed
schemas/__tests__/src/core Expand file tree Collapse file tree 5 files changed +39
-38
lines changed Original file line number Diff line number Diff line change 11import { domain } from '@palmares/core' ;
22import { Response , path , serverDomainModifier } from '@palmares/server' ;
3- import { getAdapters } from 'packages/auth/dist/src/conf' ;
43
54export 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} ) ;
Original file line number Diff line number Diff line change @@ -8,7 +8,13 @@ import { dirname, resolve } from 'path';
88
99import PasswordAuthAdapter , { passwordAdapter } from '@palmares/password-auth' ;
1010import 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
1319export 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 >
Original file line number Diff line number Diff line change 11import { getAdapters } from './conf' ;
22
3+ import type { AuthAdapters } from '.' ;
34import 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
912const 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+ }
Original file line number Diff line number Diff line change 11import { defineAuthDomain } from './domain' ;
22
3+ import type { AuthAdapter } from './adapter' ;
4+
35export { authAdapter , AuthAdapter , type AdapterMethods } from './adapter' ;
46export {
57 AuthenticationFailedException ,
@@ -14,7 +16,11 @@ export {
1416} from './exceptions' ;
1517export type { AuthConfigurationType , AuthAdapterType } from './types' ;
1618
17- export { Auth } from './auth' ;
19+ export { Auth , getAuth } from './auth' ;
1820export { defineAuthDomain as default } ;
1921
22+ export interface AuthAdapters < TAdapters extends readonly ( AuthAdapter | unknown ) [ ] = unknown [ ] > {
23+ adapters : TAdapters ;
24+ }
25+
2026export { getAdapters } from './conf' ;
Original file line number Diff line number Diff line change 1- import type { ZodSchemaAdapter } from '@palmares/zod-schema' ;
2-
31import * as p from '@palmares/schemas' ;
42import { describe } from '@palmares/tests' ;
3+
54import type JestTestAdapter from '@palmares/jest-tests' ;
5+ import type { ZodSchemaAdapter } from '@palmares/zod-schema' ;
66
77declare global {
88 namespace Palmares {
99 interface PSchemaAdapter extends ZodSchemaAdapter { }
1010 }
11- } ;
12-
11+ }
1312
1413describe < 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 } ) => {
You can’t perform that action at this time.
0 commit comments