2
2
3
3
const transport = { } ;
4
4
5
- transport . http = ( url ) => ( structure ) => {
5
+ transport . http = url => structure => {
6
6
const api = { } ;
7
7
const services = Object . keys ( structure ) ;
8
8
for ( const name of services ) {
@@ -11,21 +11,22 @@ transport.http = (url) => (structure) => {
11
11
const methods = Object . keys ( service ) ;
12
12
for ( const method of methods ) {
13
13
api [ name ] [ method ] = ( ...args ) => new Promise ( ( resolve , reject ) => {
14
- fetch ( `${ url } /api/ ${ name } /${ method } ` , {
14
+ fetch ( `${ url } /${ name } /${ method } / ${ args } ` , {
15
15
method : 'POST' ,
16
16
headers : { 'Content-Type' : 'application/json' } ,
17
17
body : JSON . stringify ( { args } ) ,
18
- } ) . then ( ( res ) => {
18
+ } ) . then ( res => {
19
19
if ( res . status === 200 ) resolve ( res . json ( ) ) ;
20
20
else reject ( new Error ( `Status Code: ${ res . status } ` ) ) ;
21
21
} ) ;
22
22
} ) ;
23
23
}
24
24
}
25
+ console . log ( api ) ;
25
26
return Promise . resolve ( api ) ;
26
27
} ;
27
28
28
- transport . ws = ( url ) => ( structure ) => {
29
+ transport . ws = url => structure => {
29
30
const socket = new WebSocket ( url ) ;
30
31
const api = { } ;
31
32
const services = Object . keys ( structure ) ;
@@ -34,28 +35,28 @@ transport.ws = (url) => (structure) => {
34
35
const service = structure [ name ] ;
35
36
const methods = Object . keys ( service ) ;
36
37
for ( const method of methods ) {
37
- api [ name ] [ method ] = ( ...args ) => new Promise ( ( resolve ) => {
38
+ api [ name ] [ method ] = ( ...args ) => new Promise ( resolve => {
38
39
const packet = { name, method, args } ;
39
40
socket . send ( JSON . stringify ( packet ) ) ;
40
- socket . onmessage = ( event ) => {
41
+ socket . onmessage = event => {
41
42
const data = JSON . parse ( event . data ) ;
42
43
resolve ( data ) ;
43
44
} ;
44
45
} ) ;
45
46
}
46
47
}
47
- return new Promise ( ( resolve ) => {
48
+ return new Promise ( resolve => {
48
49
socket . addEventListener ( 'open' , ( ) => resolve ( api ) ) ;
49
50
} ) ;
50
51
} ;
51
52
52
- const scaffold = ( url ) => {
53
+ const scaffold = url => {
53
54
const protocol = url . startsWith ( 'ws:' ) ? 'ws' : 'http' ;
54
55
return transport [ protocol ] ( url ) ;
55
56
} ;
56
57
57
58
( async ( ) => {
58
- const api = await scaffold ( 'http ://localhost:8001' ) ( {
59
+ const api = await scaffold ( 'ws ://localhost:8001' ) ( {
59
60
user : {
60
61
create : [ 'record' ] ,
61
62
read : [ 'id' ] ,
@@ -72,6 +73,6 @@ const scaffold = (url) => {
72
73
say : [ 'message' ] ,
73
74
}
74
75
} ) ;
75
- const data = await api . talks . say ( 'hello' ) ;
76
+ const data = await api . user . read ( 3 ) ;
76
77
console . dir ( { data } ) ;
77
78
} ) ( ) ;
0 commit comments