tspace-spear 1.1.3 → 1.1.5
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/README.md +227 -150
- package/build/lib/core/decorators/headers.d.ts +1 -0
- package/build/lib/core/server/index.d.ts +15 -1
- package/build/lib/core/server/index.js +48 -15
- package/build/lib/core/server/index.js.map +1 -1
- package/build/lib/core/server/parser-factory.d.ts +9 -11
- package/build/lib/core/server/parser-factory.js +74 -38
- package/build/lib/core/server/parser-factory.js.map +1 -1
- package/build/lib/core/types/index.d.ts +8 -2
- package/build/tests/benchmark.test.js +1 -10
- package/build/tests/benchmark.test.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -15,18 +15,27 @@ npm install tspace-spear --save
|
|
|
15
15
|
|
|
16
16
|
```
|
|
17
17
|
## Basic Usage
|
|
18
|
-
- [
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
- [Start Server](#start-server)
|
|
19
|
+
- [Cluster](#cluster)
|
|
20
|
+
- [Global Prefix](#global-prefix)
|
|
21
|
+
- [Logger](#logger)
|
|
22
|
+
- [Format Response](#format-response)
|
|
23
|
+
- [Notfound](#notfound)
|
|
24
|
+
- [Response](#response)
|
|
25
|
+
- [Catch](#catch)
|
|
26
|
+
- [Cors](#cors)
|
|
27
|
+
- [Body](#body)
|
|
28
|
+
- [File Upload](#file-upload)
|
|
29
|
+
- [Cookie](#cookie)
|
|
21
30
|
- [Middleware](#middleware)
|
|
22
31
|
- [Controller](#controller)
|
|
23
32
|
- [Router](#router)
|
|
24
33
|
- [Swagger](#swagger)
|
|
25
|
-
- [
|
|
34
|
+
- [Example CRUD](#example-crud)
|
|
26
35
|
|
|
27
|
-
##
|
|
36
|
+
## Start Server
|
|
28
37
|
```js
|
|
29
|
-
import Spear from "tspace-spear";
|
|
38
|
+
import { Spear } from "tspace-spear";
|
|
30
39
|
|
|
31
40
|
new Spear()
|
|
32
41
|
.get('/' , () => 'Hello world!')
|
|
@@ -35,97 +44,195 @@ new Spear()
|
|
|
35
44
|
message : 'Hello world!'
|
|
36
45
|
}
|
|
37
46
|
})
|
|
38
|
-
.listen(3000 , (
|
|
39
|
-
console.log(`server listening on : http://localhost:${port}`)
|
|
40
|
-
)
|
|
47
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
41
48
|
|
|
42
49
|
```
|
|
43
50
|
|
|
44
|
-
|
|
51
|
+
## Cluster
|
|
45
52
|
```js
|
|
46
|
-
import Spear from "tspace-spear";
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
id : 2,
|
|
55
|
-
damage : 75
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
id : 3,
|
|
59
|
-
damage : 50
|
|
53
|
+
import { Spear } from "tspace-spear";
|
|
54
|
+
new Spear({
|
|
55
|
+
cluster : 3
|
|
56
|
+
})
|
|
57
|
+
.get('/' , () => 'Hello world!')
|
|
58
|
+
.get('/json' , () => {
|
|
59
|
+
return {
|
|
60
|
+
message : 'Hello world!'
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
+
})
|
|
63
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
.useBodyParser()
|
|
65
|
-
.get('/' , () => spears)
|
|
66
|
-
.get('/:id' , ({ params }) => spears.find(spear => spear.id === Number(params.id ?? 0)))
|
|
67
|
-
.post('/' , ({ body }) => {
|
|
68
|
-
// please validation the your body
|
|
69
|
-
const damage = Number(body.damage ?? (Math.random() * 100).toFixed(0))
|
|
65
|
+
```
|
|
70
66
|
|
|
71
|
-
|
|
67
|
+
## Global Prefix
|
|
68
|
+
```js
|
|
69
|
+
const app = new Spear({
|
|
70
|
+
globalPrefix : '/api' // prefix all routes
|
|
71
|
+
})
|
|
72
|
+
.get('/' , () => 'Hello world!')
|
|
73
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
72
74
|
|
|
73
|
-
|
|
75
|
+
// http://localhost:3000/api => 'Hello world!'
|
|
76
|
+
```
|
|
74
77
|
|
|
75
|
-
|
|
78
|
+
## Logger
|
|
79
|
+
```js
|
|
80
|
+
const app = new Spear({
|
|
81
|
+
logger : true
|
|
76
82
|
})
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
83
|
+
// or use this for logging
|
|
84
|
+
.useLogger({
|
|
85
|
+
methods : ['GET','POST'],
|
|
86
|
+
exceptPath : /\/benchmark(\/|$)|\/favicon\.ico(\/|$)/ // or use Array ['/']
|
|
87
|
+
})
|
|
88
|
+
.get('/' , () => 'Hello world!')
|
|
89
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
80
90
|
|
|
81
|
-
|
|
91
|
+
```
|
|
82
92
|
|
|
83
|
-
|
|
93
|
+
## Format Response
|
|
84
94
|
|
|
85
|
-
|
|
95
|
+
### Notfound
|
|
96
|
+
```js
|
|
97
|
+
const app = new Spear()
|
|
98
|
+
.get('/' , () => {
|
|
99
|
+
return {
|
|
100
|
+
message: 'Hello world'
|
|
101
|
+
}
|
|
102
|
+
})
|
|
103
|
+
.notfound(({ res } : TContext) => {
|
|
104
|
+
return res.notFound('Not found!')
|
|
105
|
+
})
|
|
106
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
107
|
+
// http://localhost:3000/notfound => { success: false , message : 'Not found!' , statusCode: 404 }
|
|
86
108
|
|
|
87
|
-
|
|
109
|
+
```
|
|
88
110
|
|
|
89
|
-
|
|
111
|
+
### Response
|
|
112
|
+
```js
|
|
113
|
+
const app = new Spear()
|
|
114
|
+
.get('/' , () => {
|
|
115
|
+
return {
|
|
116
|
+
message: 'Hello world'
|
|
117
|
+
}
|
|
90
118
|
})
|
|
91
|
-
.
|
|
119
|
+
.response((results, statusCode) => {
|
|
92
120
|
|
|
93
|
-
|
|
121
|
+
if(typeof results === 'string') return results
|
|
122
|
+
|
|
123
|
+
/// ...
|
|
124
|
+
return {
|
|
125
|
+
success : statusCode < 400,
|
|
126
|
+
...results,
|
|
127
|
+
statusCode
|
|
128
|
+
}
|
|
129
|
+
})
|
|
130
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
131
|
+
// http://localhost:3000 => { success: true , message : 'Hello World' , statusCode: 200 }
|
|
94
132
|
|
|
95
|
-
|
|
133
|
+
```
|
|
96
134
|
|
|
97
|
-
|
|
135
|
+
### Catch
|
|
136
|
+
```js
|
|
137
|
+
const app = new Spear()
|
|
138
|
+
.get('/' , () => {
|
|
139
|
+
throw new Error('Catching failed')
|
|
140
|
+
})
|
|
141
|
+
.catch((err : Error , { res } : TContext) => {
|
|
98
142
|
|
|
99
|
-
|
|
143
|
+
return res
|
|
144
|
+
.status(500)
|
|
145
|
+
.json({
|
|
146
|
+
success : false,
|
|
147
|
+
message : err?.message,
|
|
148
|
+
statusCode : 500
|
|
149
|
+
});
|
|
150
|
+
})
|
|
151
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
152
|
+
// http://localhost:3000 => { success: false , message : 'Catching failed' , statusCode: 500 }
|
|
100
153
|
|
|
101
|
-
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Cors
|
|
157
|
+
|
|
158
|
+
```js
|
|
159
|
+
const app = new Spear()
|
|
160
|
+
.cors({
|
|
161
|
+
origins: [
|
|
162
|
+
/^http:\/\/localhost:\d+$/
|
|
163
|
+
],
|
|
164
|
+
credentials: true
|
|
102
165
|
})
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
166
|
+
//.cors() allow *
|
|
167
|
+
.listen(port , () => console.log(`Server is now allow cors localhost:* `))
|
|
168
|
+
|
|
106
169
|
```
|
|
107
170
|
|
|
108
|
-
##
|
|
171
|
+
## Body
|
|
109
172
|
```js
|
|
110
|
-
|
|
111
|
-
new Spear(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
173
|
+
|
|
174
|
+
new Spear()
|
|
175
|
+
// enable body payload
|
|
176
|
+
.useBodyParser()
|
|
177
|
+
.post('/' , ({ body }) => {
|
|
178
|
+
return {
|
|
179
|
+
yourBody : body
|
|
115
180
|
}
|
|
116
181
|
})
|
|
117
|
-
.
|
|
118
|
-
|
|
182
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## File Upload
|
|
187
|
+
|
|
188
|
+
```js
|
|
189
|
+
|
|
190
|
+
import { Spear } from 'tspace-spear';
|
|
191
|
+
import path from 'path'
|
|
192
|
+
|
|
193
|
+
new Spear()
|
|
194
|
+
// use this for enable file upload
|
|
195
|
+
.useFileUpload({
|
|
196
|
+
limit : 1000 * 1000, // limit for file upload 1_000_000 bytes by default Infinity
|
|
197
|
+
tempFileDir : 'temp', // folder temporary directory by default tmp
|
|
198
|
+
removeTempFile : {
|
|
199
|
+
remove : true, // remove temporary files by default false
|
|
200
|
+
ms : 1000 * 60 // remove file temporary after 60 seconds
|
|
201
|
+
}
|
|
202
|
+
})
|
|
203
|
+
.post('/' , ({ files } : TContext) => {
|
|
204
|
+
|
|
205
|
+
// you can move the file from temporary to other folder
|
|
206
|
+
// for example please validate the your input file
|
|
207
|
+
const file = files.file[0]
|
|
208
|
+
const folder = 'uploads'
|
|
209
|
+
|
|
210
|
+
await file.write(path.join(path.resolve(),`${folder}/${+new Date()}.${file.extension}`))
|
|
211
|
+
|
|
212
|
+
// after writed the file you should remove the temporary file
|
|
213
|
+
await file.remove()
|
|
214
|
+
|
|
119
215
|
return {
|
|
120
|
-
|
|
216
|
+
files
|
|
121
217
|
}
|
|
122
218
|
})
|
|
123
|
-
.listen(3000 , (
|
|
124
|
-
console.log(`server listening on : http://localhost:${port}`)
|
|
125
|
-
)
|
|
219
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
126
220
|
|
|
127
221
|
```
|
|
128
222
|
|
|
223
|
+
## Cookie
|
|
224
|
+
```js
|
|
225
|
+
|
|
226
|
+
new Spear()
|
|
227
|
+
.useCookiesParser()
|
|
228
|
+
.post('/' , ({ cookies }) => {
|
|
229
|
+
return {
|
|
230
|
+
yourCookies : cookies
|
|
231
|
+
}
|
|
232
|
+
})
|
|
233
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
234
|
+
```
|
|
235
|
+
|
|
129
236
|
## Middleware
|
|
130
237
|
```js
|
|
131
238
|
// file cat-middleware.ts
|
|
@@ -160,7 +267,7 @@ import CatMiddleware from './cat-middleware.ts'
|
|
|
160
267
|
});
|
|
161
268
|
})
|
|
162
269
|
|
|
163
|
-
app.listen(port , () => console.log(`Server is now listening http://localhost
|
|
270
|
+
app.listen(port , () => console.log(`Server is now listening http://localhost:3000`))
|
|
164
271
|
|
|
165
272
|
// localhost:3000
|
|
166
273
|
|
|
@@ -256,7 +363,7 @@ class CatController {
|
|
|
256
363
|
}
|
|
257
364
|
}
|
|
258
365
|
|
|
259
|
-
import Spear , { Router, TContext, TNextFunction } from "tspace-spear";
|
|
366
|
+
import { Spear } , { Router, TContext, TNextFunction } from "tspace-spear";
|
|
260
367
|
|
|
261
368
|
import CatController from './cat-controller.ts'
|
|
262
369
|
|
|
@@ -281,9 +388,7 @@ import CatController from './cat-controller.ts'
|
|
|
281
388
|
});
|
|
282
389
|
})
|
|
283
390
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
app.listen(port , () => console.log(`Server is now listening http://localhost:${port}`))
|
|
391
|
+
app.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
287
392
|
|
|
288
393
|
// localhost:3000/cats
|
|
289
394
|
// localhost:3000/cats/41
|
|
@@ -294,7 +399,7 @@ import CatController from './cat-controller.ts'
|
|
|
294
399
|
## Router
|
|
295
400
|
|
|
296
401
|
```js
|
|
297
|
-
import Spear , { Router, TContext, TNextFunction } from "tspace-spear";
|
|
402
|
+
import { Spear } , { Router, TContext, TNextFunction } from "tspace-spear";
|
|
298
403
|
|
|
299
404
|
const app = new Spear()
|
|
300
405
|
|
|
@@ -328,7 +433,7 @@ app.get('/' , ({ res } : TContext) => {
|
|
|
328
433
|
|
|
329
434
|
let port = 3000
|
|
330
435
|
|
|
331
|
-
app.listen(port , () => console.log(`Server is now listening http://localhost
|
|
436
|
+
app.listen(port , () => console.log(`Server is now listening http://localhost:3000`))
|
|
332
437
|
|
|
333
438
|
// localhost:3000/my/cats
|
|
334
439
|
// localhost:3000/cats
|
|
@@ -503,10 +608,10 @@ class CatController {
|
|
|
503
608
|
await new Spear({
|
|
504
609
|
controllers: [ CatController ]
|
|
505
610
|
})
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
611
|
+
.get('/' , ({ res } : TContext) => {
|
|
612
|
+
return res.json({
|
|
613
|
+
message : 'hello world!'
|
|
614
|
+
});
|
|
510
615
|
})
|
|
511
616
|
// .useSwagger() // by default path is "/api/docs"
|
|
512
617
|
.useSwagger({
|
|
@@ -524,97 +629,69 @@ class CatController {
|
|
|
524
629
|
|
|
525
630
|
// localhost:3000/docs
|
|
526
631
|
})()
|
|
527
|
-
```
|
|
528
632
|
|
|
529
|
-
|
|
633
|
+
```
|
|
530
634
|
|
|
635
|
+
## Example CRUD
|
|
531
636
|
```js
|
|
637
|
+
import { Spear } from "tspace-spear";
|
|
532
638
|
|
|
533
|
-
const
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
}
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
/^http:\/\/localhost:\d+$/
|
|
546
|
-
],
|
|
547
|
-
credentials: true
|
|
548
|
-
})
|
|
549
|
-
|
|
550
|
-
app.useFileUpload({
|
|
551
|
-
limit : 1000 * 1000, // limit for file upload 1_000_000 bytes
|
|
552
|
-
tempFileDir : 'tmp', // folder temporary directory
|
|
553
|
-
removeTempFile : {
|
|
554
|
-
remove : true, // remove temporary files
|
|
555
|
-
ms : 1000 * 60 // remove temporary after 60 seconds
|
|
639
|
+
const spears = [
|
|
640
|
+
{
|
|
641
|
+
id : 1,
|
|
642
|
+
damage : 100
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
id : 2,
|
|
646
|
+
damage : 75
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
id : 3,
|
|
650
|
+
damage : 50
|
|
556
651
|
}
|
|
557
|
-
|
|
652
|
+
]
|
|
558
653
|
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
})
|
|
654
|
+
new Spear()
|
|
655
|
+
// enable body payload
|
|
656
|
+
.useBodyParser()
|
|
657
|
+
.get('/' , () => spears)
|
|
658
|
+
.get('/:id' , ({ params }) => spears.find(spear => spear.id === Number(params.id ?? 0)))
|
|
659
|
+
.post('/' , ({ body }) => {
|
|
660
|
+
// please validation the your body
|
|
661
|
+
const damage = Number(body.damage ?? (Math.random() * 100).toFixed(0))
|
|
564
662
|
|
|
565
|
-
|
|
566
|
-
return res.status(400).json({
|
|
567
|
-
message : 'hello but bad request'
|
|
568
|
-
});
|
|
569
|
-
})
|
|
663
|
+
const id = spears.reduce((max, spear) => spear.id > max ? spear.id : max, 0) + 1
|
|
570
664
|
|
|
571
|
-
|
|
572
|
-
return res.status(404).json({
|
|
573
|
-
message : 'hello but not found the world!'
|
|
574
|
-
});
|
|
575
|
-
})
|
|
665
|
+
spears.push({ id , damage })
|
|
576
666
|
|
|
577
|
-
|
|
578
|
-
throw new Error('testing Error handler')
|
|
667
|
+
return spears.find(spear => spear.id === id)
|
|
579
668
|
})
|
|
669
|
+
.patch('/:id' , ({ params , body , res }) => {
|
|
580
670
|
|
|
581
|
-
|
|
582
|
-
app.response((results : unknown , statusCode : number) => {
|
|
671
|
+
const damage = Number(body.damage ?? (Math.random() * 100).toFixed(0))
|
|
583
672
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
/// ...
|
|
673
|
+
const id = Number(params.id)
|
|
587
674
|
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
// every notfound page should returns following this format response
|
|
596
|
-
app.notfound(({ res } : TContext) => {
|
|
597
|
-
return res.notFound();
|
|
675
|
+
const spear = spears.find(spear => spear.id === id)
|
|
676
|
+
|
|
677
|
+
if (spear == null) return res.status(404).json({ message : 'Spear not found'})
|
|
678
|
+
|
|
679
|
+
spear.damage = damage;
|
|
680
|
+
|
|
681
|
+
return spears.find(spear => spear.id === id)
|
|
598
682
|
})
|
|
599
|
-
|
|
600
|
-
// every errors page should returns following this format response
|
|
601
|
-
app.catch((err : Error , { res } : TContext) => {
|
|
683
|
+
.delete('/:id', ({ params , res }) => {
|
|
602
684
|
|
|
603
|
-
|
|
604
|
-
.status(500)
|
|
605
|
-
.json({
|
|
606
|
-
success : false,
|
|
607
|
-
message : err?.message,
|
|
608
|
-
statusCode : 500
|
|
609
|
-
});
|
|
610
|
-
})
|
|
611
|
-
|
|
612
|
-
const port = 3000
|
|
685
|
+
const id = Number(params.id)
|
|
613
686
|
|
|
614
|
-
|
|
687
|
+
const spear = spears.find(spear => spear.id === id)
|
|
688
|
+
|
|
689
|
+
if (spear == null) return res.status(404).json({ message : 'Spear not found'})
|
|
615
690
|
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
691
|
+
spears.splice(spears.findIndex(spear => spear.id === Number(params.id ?? 0)), 1)
|
|
692
|
+
|
|
693
|
+
return res.status(204).json()
|
|
694
|
+
})
|
|
695
|
+
.listen(3000 , () => console.log(`Server is now listening http://localhost:3000`))
|
|
619
696
|
|
|
620
697
|
```
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { Server, ServerResponse } from 'http';
|
|
2
3
|
import findMyWayRouter, { Instance } from 'find-my-way';
|
|
3
4
|
import { Router } from './router';
|
|
@@ -25,6 +26,7 @@ declare class Spear {
|
|
|
25
26
|
private readonly _cluster?;
|
|
26
27
|
private readonly _router;
|
|
27
28
|
private readonly _parser;
|
|
29
|
+
private _cors?;
|
|
28
30
|
private _swagger;
|
|
29
31
|
private _swaggerAdditional;
|
|
30
32
|
private _errorHandler;
|
|
@@ -138,10 +140,22 @@ declare class Spear {
|
|
|
138
140
|
* @param {function} callback
|
|
139
141
|
* @returns
|
|
140
142
|
*/
|
|
141
|
-
listen(port:
|
|
143
|
+
listen(port: number | (() => ServerResponse) | undefined, callback: (callback: {
|
|
142
144
|
server: Server;
|
|
143
145
|
port: number;
|
|
144
146
|
}) => void): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* The 'cors' is used to enable the cors origins on the server.
|
|
149
|
+
*
|
|
150
|
+
* @params {Object}
|
|
151
|
+
* @property {(string | RegExp)[]} origins
|
|
152
|
+
* @property {boolean} credentials
|
|
153
|
+
* @returns
|
|
154
|
+
*/
|
|
155
|
+
cors({ origins, credentials }?: {
|
|
156
|
+
origins?: (string | RegExp)[];
|
|
157
|
+
credentials?: boolean;
|
|
158
|
+
}): this;
|
|
145
159
|
/**
|
|
146
160
|
* The 'enableCors' is used to enable the cors origins on the server.
|
|
147
161
|
*
|
|
@@ -59,6 +59,7 @@ class Spear {
|
|
|
59
59
|
_cluster;
|
|
60
60
|
_router = (0, find_my_way_1.default)();
|
|
61
61
|
_parser = new parser_factory_1.ParserFactory();
|
|
62
|
+
_cors;
|
|
62
63
|
_swagger = {
|
|
63
64
|
use: false,
|
|
64
65
|
path: '/api/docs',
|
|
@@ -178,7 +179,8 @@ class Spear {
|
|
|
178
179
|
* @returns {this}
|
|
179
180
|
*/
|
|
180
181
|
useBodyParser({ except } = {}) {
|
|
181
|
-
this._globalMiddlewares.push((
|
|
182
|
+
this._globalMiddlewares.push((ctx, next) => {
|
|
183
|
+
const { req } = ctx;
|
|
182
184
|
const contentType = req?.headers['content-type'];
|
|
183
185
|
const isFileUpload = contentType && contentType.startsWith('multipart/form-data');
|
|
184
186
|
if (except != null && Array.isArray(except)) {
|
|
@@ -195,7 +197,9 @@ class Spear {
|
|
|
195
197
|
req.body = r;
|
|
196
198
|
return next();
|
|
197
199
|
})
|
|
198
|
-
.catch(
|
|
200
|
+
.catch(err => {
|
|
201
|
+
return this._nextFunction(ctx)(err);
|
|
202
|
+
});
|
|
199
203
|
});
|
|
200
204
|
return this;
|
|
201
205
|
}
|
|
@@ -220,7 +224,8 @@ class Spear {
|
|
|
220
224
|
if (removeTempFile != null) {
|
|
221
225
|
this._fileUploadOptions.removeTempFile = removeTempFile;
|
|
222
226
|
}
|
|
223
|
-
this._globalMiddlewares.push((
|
|
227
|
+
this._globalMiddlewares.push((ctx, next) => {
|
|
228
|
+
const { req } = ctx;
|
|
224
229
|
const contentType = req?.headers['content-type'];
|
|
225
230
|
const isFileUpload = contentType && contentType.startsWith('multipart/form-data');
|
|
226
231
|
if (req.method === 'GET') {
|
|
@@ -230,13 +235,16 @@ class Spear {
|
|
|
230
235
|
return next();
|
|
231
236
|
if (req?.files != null)
|
|
232
237
|
return next();
|
|
233
|
-
Promise
|
|
238
|
+
Promise
|
|
239
|
+
.resolve(this._parser.files(req, this._fileUploadOptions))
|
|
234
240
|
.then(r => {
|
|
235
241
|
req.files = r.files;
|
|
236
242
|
req.body = r.body;
|
|
237
243
|
return next();
|
|
238
244
|
})
|
|
239
|
-
.catch(
|
|
245
|
+
.catch(err => {
|
|
246
|
+
return this._nextFunction(ctx)(err);
|
|
247
|
+
});
|
|
240
248
|
});
|
|
241
249
|
return this;
|
|
242
250
|
}
|
|
@@ -323,35 +331,57 @@ class Spear {
|
|
|
323
331
|
return;
|
|
324
332
|
}
|
|
325
333
|
/**
|
|
326
|
-
* The '
|
|
334
|
+
* The 'cors' is used to enable the cors origins on the server.
|
|
327
335
|
*
|
|
328
336
|
* @params {Object}
|
|
329
337
|
* @property {(string | RegExp)[]} origins
|
|
330
338
|
* @property {boolean} credentials
|
|
331
339
|
* @returns
|
|
332
340
|
*/
|
|
333
|
-
|
|
334
|
-
this.
|
|
341
|
+
cors({ origins, credentials } = {}) {
|
|
342
|
+
this._cors = ((req, res) => {
|
|
335
343
|
const origin = req.headers?.origin;
|
|
336
344
|
if (origin == null)
|
|
337
|
-
return
|
|
345
|
+
return;
|
|
338
346
|
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE, OPTIONS');
|
|
339
347
|
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
|
|
340
348
|
if (origins == null) {
|
|
341
349
|
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
342
350
|
}
|
|
343
351
|
if (Array.isArray(origins) && origins.length) {
|
|
344
|
-
|
|
345
|
-
|
|
352
|
+
for (const o of origins) {
|
|
353
|
+
if (typeof o === 'string' && (o === origin || o === '*')) {
|
|
354
|
+
res.setHeader('Access-Control-Allow-Origin', origin);
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
if (o instanceof RegExp && o.test(origin)) {
|
|
358
|
+
res.setHeader('Access-Control-Allow-Origin', origin);
|
|
359
|
+
}
|
|
346
360
|
}
|
|
347
361
|
}
|
|
348
362
|
if (credentials) {
|
|
349
363
|
res.setHeader('Access-Control-Allow-Credentials', 'true');
|
|
350
364
|
}
|
|
351
|
-
|
|
365
|
+
if (req.method === 'OPTIONS') {
|
|
366
|
+
res.writeHead(204);
|
|
367
|
+
res.end();
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
370
|
+
return;
|
|
352
371
|
});
|
|
353
372
|
return this;
|
|
354
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* The 'enableCors' is used to enable the cors origins on the server.
|
|
376
|
+
*
|
|
377
|
+
* @params {Object}
|
|
378
|
+
* @property {(string | RegExp)[]} origins
|
|
379
|
+
* @property {boolean} credentials
|
|
380
|
+
* @returns
|
|
381
|
+
*/
|
|
382
|
+
enableCors({ origins, credentials } = {}) {
|
|
383
|
+
return this.cors({ origins, credentials });
|
|
384
|
+
}
|
|
355
385
|
/**
|
|
356
386
|
* The 'formatResponse' method is used to format the response
|
|
357
387
|
*
|
|
@@ -852,6 +882,7 @@ class Spear {
|
|
|
852
882
|
const runHandler = (index = 0) => {
|
|
853
883
|
const response = this._customizeResponse(req, res);
|
|
854
884
|
const request = req;
|
|
885
|
+
request.params = params;
|
|
855
886
|
const body = request.body;
|
|
856
887
|
const files = request.files;
|
|
857
888
|
const cookies = request.cookies;
|
|
@@ -863,7 +894,7 @@ class Spear {
|
|
|
863
894
|
return Object.keys(data).length ? data : {};
|
|
864
895
|
};
|
|
865
896
|
const ctx = {
|
|
866
|
-
req,
|
|
897
|
+
req: request,
|
|
867
898
|
res: response,
|
|
868
899
|
headers: RecordOrEmptyRecord(headers),
|
|
869
900
|
params: RecordOrEmptyRecord(params),
|
|
@@ -933,13 +964,13 @@ class Spear {
|
|
|
933
964
|
ctx.res.end(result == null ? undefined : JSON.stringify(result, null, 2));
|
|
934
965
|
return;
|
|
935
966
|
})
|
|
936
|
-
.catch(
|
|
967
|
+
.catch(err => {
|
|
937
968
|
if (ctx.res.writableEnded)
|
|
938
969
|
return;
|
|
939
970
|
if (!ctx.res.headersSent) {
|
|
940
971
|
ctx.res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
941
972
|
}
|
|
942
|
-
ctx.res.end(JSON.stringify({
|
|
973
|
+
ctx.res.end(JSON.stringify({ message: err?.message || 'Internal Server Error' }));
|
|
943
974
|
return;
|
|
944
975
|
});
|
|
945
976
|
};
|
|
@@ -948,6 +979,8 @@ class Spear {
|
|
|
948
979
|
await this._registerMiddlewares();
|
|
949
980
|
await this._registerControllers();
|
|
950
981
|
const server = http_1.default.createServer((req, res) => {
|
|
982
|
+
if (this._cors)
|
|
983
|
+
this._cors(req, res);
|
|
951
984
|
return this._router.lookup(req, res);
|
|
952
985
|
});
|
|
953
986
|
server.timeout = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/core/server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/core/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { IncomingMessage, ServerResponse } from "http";
|
|
2
|
-
import type
|
|
3
|
+
import { type TBody, type TFiles, type TSwaggerDoc } from '../types';
|
|
3
4
|
export declare class ParserFactory {
|
|
4
|
-
files(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
remove: boolean;
|
|
11
|
-
ms: number;
|
|
12
|
-
};
|
|
5
|
+
files(req: IncomingMessage, options: {
|
|
6
|
+
limit: number;
|
|
7
|
+
tempFileDir: string;
|
|
8
|
+
removeTempFile: {
|
|
9
|
+
remove: boolean;
|
|
10
|
+
ms: number;
|
|
13
11
|
};
|
|
14
12
|
}): Promise<{
|
|
15
13
|
body: TBody;
|
|
@@ -20,7 +18,7 @@ export declare class ParserFactory {
|
|
|
20
18
|
swagger(doc: TSwaggerDoc): {
|
|
21
19
|
path: `/${string}` | undefined;
|
|
22
20
|
staticUrl: string;
|
|
23
|
-
staticSwaggerHandler: (req: IncomingMessage, res: ServerResponse, params: Record<string, any>) =>
|
|
21
|
+
staticSwaggerHandler: (req: IncomingMessage, res: ServerResponse, params: Record<string, any>) => void;
|
|
24
22
|
html: string;
|
|
25
23
|
};
|
|
26
24
|
}
|
|
@@ -7,13 +7,13 @@ exports.ParserFactory = void 0;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const mime_types_1 = __importDefault(require("mime-types"));
|
|
10
|
-
const busboy_1 = __importDefault(require("busboy"));
|
|
11
10
|
const crypto_1 = __importDefault(require("crypto"));
|
|
12
11
|
const swagger_ui_dist_1 = __importDefault(require("swagger-ui-dist"));
|
|
13
12
|
const querystring_1 = __importDefault(require("querystring"));
|
|
14
13
|
const string_decoder_1 = require("string_decoder");
|
|
14
|
+
const busboy_1 = __importDefault(require("busboy"));
|
|
15
15
|
class ParserFactory {
|
|
16
|
-
async files(
|
|
16
|
+
async files(req, options) {
|
|
17
17
|
const temp = options.tempFileDir;
|
|
18
18
|
if (!fs_1.default.existsSync(temp)) {
|
|
19
19
|
try {
|
|
@@ -24,56 +24,92 @@ class ParserFactory {
|
|
|
24
24
|
return new Promise((resolve, reject) => {
|
|
25
25
|
const body = {};
|
|
26
26
|
const files = {};
|
|
27
|
+
const fileWritePromises = [];
|
|
27
28
|
const bb = (0, busboy_1.default)({ headers: req.headers });
|
|
29
|
+
const removeTemp = (fileTemp, ms) => {
|
|
30
|
+
const remove = () => {
|
|
31
|
+
try {
|
|
32
|
+
fs_1.default.unlinkSync(fileTemp);
|
|
33
|
+
}
|
|
34
|
+
catch (err) { }
|
|
35
|
+
};
|
|
36
|
+
setTimeout(remove, ms);
|
|
37
|
+
};
|
|
28
38
|
bb.on('file', (fieldName, fileData, info) => {
|
|
29
39
|
const { filename, mimeType } = info;
|
|
30
40
|
const tempFilename = crypto_1.default.randomBytes(16).toString('hex');
|
|
31
41
|
const filePath = path_1.default.join(path_1.default.resolve(), `${temp}/${tempFilename}`);
|
|
42
|
+
const writeStream = fs_1.default.createWriteStream(filePath);
|
|
32
43
|
let fileSize = 0;
|
|
33
44
|
fileData.on('data', (data) => {
|
|
34
45
|
fileSize += data.length;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
originalFilename: filename,
|
|
40
|
-
filepath: filePath,
|
|
41
|
-
newFilename: tempFilename,
|
|
42
|
-
mimetype: mimeType,
|
|
43
|
-
extension: String(mime_types_1.default.extension(String(mimeType))),
|
|
44
|
-
size: fileSize
|
|
45
|
-
};
|
|
46
|
-
if (file.size > options.limit) {
|
|
47
|
-
fs_1.default.unlinkSync(file.filepath);
|
|
48
|
-
throw new Error(`The file '${fieldName}' is too large to be uploaded. The limit is '${options.limit}' bytes.`);
|
|
49
|
-
}
|
|
50
|
-
if (!files[fieldName]) {
|
|
51
|
-
files[fieldName] = [];
|
|
46
|
+
if (fileSize > options.limit) {
|
|
47
|
+
fileData.unpipe(writeStream);
|
|
48
|
+
writeStream.destroy();
|
|
49
|
+
return reject(new Error(`The file '${fieldName}' is too large to be uploaded. The limit is '${options.limit}' bytes.`));
|
|
52
50
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
});
|
|
52
|
+
const fileWritePromise = new Promise((resolve, reject) => {
|
|
53
|
+
fileData.pipe(writeStream);
|
|
54
|
+
writeStream.on('finish', () => {
|
|
55
|
+
const file = {
|
|
56
|
+
name: filename,
|
|
57
|
+
tempFilePath: filePath,
|
|
58
|
+
tempFileName: tempFilename,
|
|
59
|
+
mimetype: mimeType,
|
|
60
|
+
extension: String(mime_types_1.default.extension(String(mimeType))),
|
|
61
|
+
size: fileSize,
|
|
62
|
+
sizes: {
|
|
63
|
+
bytes: fileSize,
|
|
64
|
+
kb: fileSize / 1024,
|
|
65
|
+
mb: fileSize / 1024 / 1024,
|
|
66
|
+
gb: fileSize / 1024 / 1024 / 1024
|
|
67
|
+
},
|
|
68
|
+
write: (to) => {
|
|
69
|
+
return new Promise((resolve, reject) => {
|
|
70
|
+
fs_1.default.createReadStream(filePath)
|
|
71
|
+
.pipe(fs_1.default.createWriteStream(to))
|
|
72
|
+
.on('finish', () => {
|
|
73
|
+
return resolve(null);
|
|
74
|
+
})
|
|
75
|
+
.on('error', (err) => {
|
|
76
|
+
return reject(err);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
remove: () => {
|
|
81
|
+
return new Promise(resolve => setTimeout(() => {
|
|
82
|
+
fs_1.default.unlinkSync(filePath);
|
|
83
|
+
return resolve(null);
|
|
84
|
+
}, 100));
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
if (files[fieldName] == null) {
|
|
88
|
+
files[fieldName] = [];
|
|
89
|
+
}
|
|
90
|
+
files[fieldName].push(file);
|
|
91
|
+
if (options.removeTempFile.remove) {
|
|
92
|
+
removeTemp(filePath, options.removeTempFile.ms);
|
|
93
|
+
}
|
|
94
|
+
return resolve(null);
|
|
67
95
|
});
|
|
96
|
+
writeStream.on('error', reject);
|
|
68
97
|
});
|
|
98
|
+
fileWritePromises.push(fileWritePromise);
|
|
69
99
|
});
|
|
70
100
|
bb.on('field', (name, value) => {
|
|
71
101
|
body[name] = value;
|
|
72
102
|
});
|
|
73
|
-
bb.on('
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
103
|
+
bb.on('finish', () => {
|
|
104
|
+
Promise.all(fileWritePromises)
|
|
105
|
+
.then(() => {
|
|
106
|
+
return resolve({
|
|
107
|
+
files,
|
|
108
|
+
body
|
|
109
|
+
});
|
|
110
|
+
})
|
|
111
|
+
.catch((err) => {
|
|
112
|
+
return reject(err);
|
|
77
113
|
});
|
|
78
114
|
});
|
|
79
115
|
bb.on('error', (err) => {
|
|
@@ -332,7 +368,7 @@ class ParserFactory {
|
|
|
332
368
|
spec.tags = [
|
|
333
369
|
tags == null || tags === '' || /^:[^:]*$/.test(tags) ? 'default' : tags
|
|
334
370
|
];
|
|
335
|
-
if (Array.from(r.params).length) {
|
|
371
|
+
if (Array.isArray(r.params) && Array.from(r.params).length) {
|
|
336
372
|
spec.parameters = Array.from(r.params).map(p => {
|
|
337
373
|
return {
|
|
338
374
|
name: p,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser-factory.js","sourceRoot":"","sources":["../../../../src/lib/core/server/parser-factory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser-factory.js","sourceRoot":"","sources":["../../../../src/lib/core/server/parser-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { IncomingMessage, ServerResponse } from "http";
|
|
2
3
|
export type TContext = {
|
|
3
4
|
req: TRequest;
|
|
@@ -24,11 +25,11 @@ export type TFiles<T = Record<string, {
|
|
|
24
25
|
};
|
|
25
26
|
tempFilePath: string;
|
|
26
27
|
tempFileName: string;
|
|
27
|
-
tempName: string;
|
|
28
28
|
mimetype: string;
|
|
29
29
|
extension: string;
|
|
30
30
|
name: string;
|
|
31
|
-
|
|
31
|
+
write: (to: string) => Promise<void>;
|
|
32
|
+
remove: () => Promise<void>;
|
|
32
33
|
}[]>> = T;
|
|
33
34
|
export type TNextFunction<T = any> = (err?: Error) => T | Promise<T>;
|
|
34
35
|
export type TRequest<T = any> = IncomingMessage & Partial<T>;
|
|
@@ -122,6 +123,11 @@ export type TSwagger = {
|
|
|
122
123
|
description?: string;
|
|
123
124
|
bearerToken?: boolean;
|
|
124
125
|
tags?: string[];
|
|
126
|
+
params?: Record<string, {
|
|
127
|
+
description?: string;
|
|
128
|
+
type?: TSwaggerType;
|
|
129
|
+
example?: any;
|
|
130
|
+
}>;
|
|
125
131
|
query?: Record<string, {
|
|
126
132
|
required?: boolean;
|
|
127
133
|
description?: string;
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const autocannon_1 = __importDefault(require("autocannon"));
|
|
7
7
|
const fastify_1 = __importDefault(require("fastify"));
|
|
8
8
|
const express_1 = __importDefault(require("express"));
|
|
9
|
-
const tspace_0spear_1 = __importDefault(require("tspace-0spear"));
|
|
10
9
|
const http_1 = __importDefault(require("http"));
|
|
11
10
|
const yargs_1 = __importDefault(require("yargs"));
|
|
12
11
|
const lib_1 = __importDefault(require("../lib"));
|
|
@@ -54,12 +53,6 @@ function runFastify() {
|
|
|
54
53
|
console.log(`server 'Fastify' running at : http://localhost:${port}`);
|
|
55
54
|
});
|
|
56
55
|
}
|
|
57
|
-
function runZeroSpear() {
|
|
58
|
-
const port = 3003;
|
|
59
|
-
new tspace_0spear_1.default()
|
|
60
|
-
.get('/', () => MESSAGE)
|
|
61
|
-
.listen(port, () => console.log(`server '0Spear' running at : http://localhost:${port}`));
|
|
62
|
-
}
|
|
63
56
|
function runSpear() {
|
|
64
57
|
const port = 3999;
|
|
65
58
|
new lib_1.default()
|
|
@@ -71,11 +64,10 @@ const urls = [
|
|
|
71
64
|
{ name: 'express', url: url(3000) },
|
|
72
65
|
{ name: 'http', url: url(3001) },
|
|
73
66
|
{ name: 'fastify', url: url(3002) },
|
|
74
|
-
{ name: 'tspace-0spear', url: url(3003) },
|
|
75
67
|
{ name: 'tspace-spear', url: url(3999) }
|
|
76
68
|
];
|
|
77
69
|
const sleep = (ms) => {
|
|
78
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
70
|
+
return new Promise(resolve => setTimeout(resolve, ms, null));
|
|
79
71
|
};
|
|
80
72
|
const runBenchmark = async () => {
|
|
81
73
|
const results = [];
|
|
@@ -110,7 +102,6 @@ const runBenchmark = async () => {
|
|
|
110
102
|
async function runApps() {
|
|
111
103
|
await Promise.all([
|
|
112
104
|
runSpear,
|
|
113
|
-
runZeroSpear,
|
|
114
105
|
runFastify,
|
|
115
106
|
runExpress,
|
|
116
107
|
runHttp
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.test.js","sourceRoot":"","sources":["../../src/tests/benchmark.test.ts"],"names":[],"mappings":";;;;;AAAA,4DAAgD;AAChD,sDAA6B;AAC7B,sDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"benchmark.test.js","sourceRoot":"","sources":["../../src/tests/benchmark.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tspace-spear",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"description": "tspace-spear is a lightweight API framework for Node.js that is fast and highly focused on providing the best developer experience. It utilizes the native HTTP server",
|
|
5
5
|
"main": "./build/lib/index.js",
|
|
6
6
|
"types": "./build/lib/index.d.ts",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"tspace-spear",
|
|
18
18
|
"api",
|
|
19
19
|
"rest api",
|
|
20
|
-
"
|
|
20
|
+
"fast",
|
|
21
|
+
"low overhead"
|
|
21
22
|
],
|
|
22
23
|
"author": "Thanathip (https://github.com/thanathip41)",
|
|
23
24
|
"license": "MIT",
|
|
@@ -35,7 +36,7 @@
|
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
38
|
"busboy": "1.6.0",
|
|
38
|
-
"find-my-way": "7.
|
|
39
|
+
"find-my-way": "7.7.0",
|
|
39
40
|
"mime-types": "2.1.35",
|
|
40
41
|
"on-finished": "2.4.1",
|
|
41
42
|
"reflect-metadata": "0.1.14",
|
|
@@ -54,7 +55,6 @@
|
|
|
54
55
|
"express": "4.19.2",
|
|
55
56
|
"fastify": "4.28.1",
|
|
56
57
|
"ts-node": "10.9.2",
|
|
57
|
-
"tspace-0spear": "1.0.0",
|
|
58
58
|
"typescript": "5.4.5",
|
|
59
59
|
"yargs": "17.7.2"
|
|
60
60
|
}
|